From 3cdd42ac995cb92159865df889288907e16db22d Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 27 Sep 2014 00:26:50 +0800 Subject: [PATCH 1/6] remove useless md files in pace, cause we do not serve it --- ajax/libs/pace/0.4.18/README.md | 26 ---- ajax/libs/pace/0.4.9/docs/intro.md | 201 ----------------------------- 2 files changed, 227 deletions(-) delete mode 100644 ajax/libs/pace/0.4.18/README.md delete mode 100644 ajax/libs/pace/0.4.9/docs/intro.md diff --git a/ajax/libs/pace/0.4.18/README.md b/ajax/libs/pace/0.4.18/README.md deleted file mode 100644 index b72eaae50..000000000 --- a/ajax/libs/pace/0.4.18/README.md +++ /dev/null @@ -1,26 +0,0 @@ -pace -==== - -An automatic web page progress bar. - -Include [pace.js](https://raw.github.com/HubSpot/pace/v0.4.14/pace.min.js) and a [theme](http://github.hubspot.com/pace/docs/welcome/) of your choice to your page and you are done! - -Pace will automatically monitor your Ajax requests, event loop lag, document ready state and elements on your page to decide on the progress. - -If you use AMD or Browserify, require pace.js and call `pace.start()` as early in the loading process as is possible. - -### [Demo](http://github.hubspot.com/pace/docs/welcome/) - -### [Documentation](http://github.hubspot.com/pace/) - -### Example - -```html - - - - -``` - -![Analytics](https://ga-beacon.appspot.com/UA-45159009-2/pace/readme?pixel) - diff --git a/ajax/libs/pace/0.4.9/docs/intro.md b/ajax/libs/pace/0.4.9/docs/intro.md deleted file mode 100644 index e22f7c483..000000000 --- a/ajax/libs/pace/0.4.9/docs/intro.md +++ /dev/null @@ -1,201 +0,0 @@ -pace -==== - -Include [pace.js](https://raw.github.com/HubSpot/pace/v0.4.9/pace.min.js) and the -[theme](http://github.hubspot.com/pace/docs/welcome/) css of your choice on your page -(as early as is possible), and you're done! - -Pace will automatically monitor your ajax requests, event loop lag, document -ready state, and elements on your page to decide the progress. On ajax navigation -it will begin again! - -If you use AMD or Browserify, require in pace.js and call `pace.start()` as early in -the loading process as is possible. - -Example -------- - -```html - - - - -``` - -Configuration -------------- - -Pace is fully automatic, no configuration is necessary to get started. - -If you would like to make some tweaks, here's how: - -You can set `window.paceOptions` before bringing in the file: - -```javascript -paceOptions = { - // Disable the 'elements' source - elements: false -} -``` - -You can also put options on the script tag: - -```html - -``` - -If you're using AMD or Browserify, you can pass your options to `start`: - -```javascript -define(['pace'], function(pace){ - pace.start({ - document: false - }); -}); -``` - -Themes ------- - -Pace includes a bunch of [themes](http://github.hubspot.com/pace/docs/welcome/) -to get you started. Just include the appropriate css file. Send us a PR with -any interesting themes you create. - -Collectors ----------- - -Collectors are the bits of code which gather progress information. Pace includes four default collectors: - -- Ajax - - Monitors all ajax requests on the page - -- Elements - - Checks for the existance of specific elements on the page - -- Document - - Checks the document readyState - -- Event Lag - - Checks for event loop lag signaling that javascript is being executed - -They can each be configured or disabled through configuration options of the same name. - -```javascript -paceOptions = { - ajax: false, // disabled - document: false, // disabled - eventLag: false, // disabled - elements: { - selectors: ['.my-page'] - } -}; -``` - -Add your own classes to `paceOptions.extraSources` to add more sources. Each source should either -have a `.progress` property, or a `.elements` property which is a list of objects with -`.progress` properties. Pace will automatically handle all scaling to make the progress -changes look smooth to the user. - -Elements --------- - -Elements being rendered to the screen is one way for us to decide that the page has been -rendered. If you would like to use that source of information (not required at all), -specify one or more selectors. You can comma seperate the selectors to propertly handle -error states, where the progress bar should disappear, but the element were looking for -may never apper: - -```javascript -paceOptions = { - elements: { - selectors: ['.timeline,.timeline-error', '.user-profile,.profile-error'] - } -} -``` - -Pace will consider the elements test successful when each selector matches something. For -this example, when either `.timeline` or `.timeline-error` exist, and either `.user-profile` -or `.profile-error` exist. - -Restart Rules -------------- - -Most users want the progress bar to automatically restart when a pushState event occurs -(generally means ajax navigation is occuring). You can disable this: - -```javascript -paceOptions: { - restartOnPushState: false -} -``` - -You can always trigger a restart manually by calling `Pace.restart()` - -See [the source](https://github.com/HubSpot/pace/blob/master/pace.coffee) for a full list of all options. - -API ---- - -Pace exposes the following methods: - -- `Pace.start`: Show the progress bar and start updating. Called automatically if you don't use AMD or CommonJS. - -- `Pace.restart`: Show the progress bar if it's hidden and start reporting the progress from scratch. Called automatically -whenever `pushState` or `replaceState` is called by default. - -- `Pace.stop`: Hide the progress bar and stop updating it. - -Dependencies ------------- - -None! - -Support -------- - -Pace is designed to support IE8+ (standards mode), FF 3.5+, Chrome, Safari 4+, Opera 10.5+, and all modern -mobile browsers. If you run into a compatibility issue, or can make a case for supporting something else, -please create an issue. - -Size ----- - -pace.js is 4kb minified and gzipped. The themes vary between 0.5 and 4kb. - -Issues ------- - -We have obviously not tested this on every website. If you run into an issue, or find a way the automatic -detection could be better, please create an Issue. If you can include a test case, that's even better. - -Contributing ------------- - -PRs Welcome! - -Building requires node.js. - -```bash -npm install -grunt -``` - -You can also run `grunt watch` to have it automatically build as you make changes. - -There is no need to include compiled files in PRs. - -Credits -------- - -[HubSpot](http://dev.hubspot.com) - -Javascript by [Zack Bloom](http://twitter.com/zackbloom) -CSS by [Adam Schwartz](http://twitter.com/adamfschwartz) - -Themes inspired by [Mary Lou](http://tympanus.net/codrops/2013/09/18/creative-loading-effects/) - -Project inspired by [nprogress](http://ricostacruz.com/nprogress/) From 551899d59e1bbe13bd87719741400cc4076aad59 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 27 Sep 2014 00:27:09 +0800 Subject: [PATCH 2/6] remove useless md files in pickadate.js v3.5.3, cause we do not serve it --- .../3.5.3/translations/FORMATTING.md | 7 ------- .../pickadate.js/3.5.3/translations/NAMING.md | 21 ------------------- 2 files changed, 28 deletions(-) delete mode 100644 ajax/libs/pickadate.js/3.5.3/translations/FORMATTING.md delete mode 100644 ajax/libs/pickadate.js/3.5.3/translations/NAMING.md diff --git a/ajax/libs/pickadate.js/3.5.3/translations/FORMATTING.md b/ajax/libs/pickadate.js/3.5.3/translations/FORMATTING.md deleted file mode 100644 index 3efb84a6e..000000000 --- a/ajax/libs/pickadate.js/3.5.3/translations/FORMATTING.md +++ /dev/null @@ -1,7 +0,0 @@ -### The following convention is used for choosing a format for the translation files: - -1. Google for “Microsoft Style Guide LANGUAGE COUNTRY”. -2. Check the standard suggestions for Long Date Formats. -3. Set this as the `format` option using [pickadate’s formatting rules](http://amsul.ca/pickadate.js/date.htm#formatting-rules). - -Make sure `formatSubmit` is always `yyyy/mm/dd` to ensure our servers always get the value formatted the same. \ No newline at end of file diff --git a/ajax/libs/pickadate.js/3.5.3/translations/NAMING.md b/ajax/libs/pickadate.js/3.5.3/translations/NAMING.md deleted file mode 100644 index 2376d6f7a..000000000 --- a/ajax/libs/pickadate.js/3.5.3/translations/NAMING.md +++ /dev/null @@ -1,21 +0,0 @@ -### The following convention is used for naming the translation files: - -``` -LANGUAGE_COUNTRY.js -``` - -#### Where: - -``` -LANGUAGE = The lowercase ISO 639-1 language code. -``` - -> See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes - -``` -COUNTRY = The uppercase ISO 3166-1 country code. -``` - -> See http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements - -When there is no `COUNTRY` in the filename, it is assumed the generic language is used in multiple countries. From e3a47fea6cd9fed8ae3e938dd2037fc7529e86db Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 27 Sep 2014 00:35:38 +0800 Subject: [PATCH 3/6] add cutjs v0.2.1 --- ajax/libs/cutjs/0.2.1/cut.cordova.js | 2595 ++++++++++++++++++++++ ajax/libs/cutjs/0.2.1/cut.cordova.min.js | 8 + ajax/libs/cutjs/0.2.1/cut.fc.js | 2595 ++++++++++++++++++++++ ajax/libs/cutjs/0.2.1/cut.fc.min.js | 8 + ajax/libs/cutjs/0.2.1/cut.web.js | 2595 ++++++++++++++++++++++ ajax/libs/cutjs/0.2.1/cut.web.min.js | 8 + ajax/libs/cutjs/package.json | 2 +- 7 files changed, 7810 insertions(+), 1 deletion(-) create mode 100644 ajax/libs/cutjs/0.2.1/cut.cordova.js create mode 100644 ajax/libs/cutjs/0.2.1/cut.cordova.min.js create mode 100644 ajax/libs/cutjs/0.2.1/cut.fc.js create mode 100644 ajax/libs/cutjs/0.2.1/cut.fc.min.js create mode 100644 ajax/libs/cutjs/0.2.1/cut.web.js create mode 100644 ajax/libs/cutjs/0.2.1/cut.web.min.js diff --git a/ajax/libs/cutjs/0.2.1/cut.cordova.js b/ajax/libs/cutjs/0.2.1/cut.cordova.js new file mode 100644 index 000000000..2e5e848d0 --- /dev/null +++ b/ajax/libs/cutjs/0.2.1/cut.cordova.js @@ -0,0 +1,2595 @@ +/* + * CutJS 0.2.1 + * Copyright (c) 2013-2014 Ali Shakiba, Piqnt LLC and other contributors + * Available under the MIT license + * @license + */ + +DEBUG = (typeof DEBUG === "undefined" || DEBUG) && console; + +function Cut() { + if (!(this instanceof Cut)) { + if (typeof arguments[0] === "function") { + return Cut.Loader.load.apply(Cut.Loader, arguments); + } else if (typeof arguments[0] === "object") { + return Cut.Texture.add.apply(Cut.Texture, arguments); + } + } + Cut._stats.create++; + this._id = ""; + this._visible = true; + this._parent = null; + this._next = null; + this._prev = null; + this._first = null; + this._last = null; + this._pin = new Cut.Pin(this); + this._cutouts = []; + this._tickBefore = []; + this._tickAfter = []; + this._alpha = 1; +} + +Cut._create = function() { + if (typeof Object.create == "function") { + return function() { + return Object.create.apply(null, arguments); + }; + } else { + var F = function() {}; + return function(proto) { + if (arguments.length > 1) { + throw Error("Second argument is not supported!"); + } + if (proto === null || typeof proto != "object") { + throw Error("Invalid prototype!"); + } + F.prototype = proto; + return new F(); + }; + } +}(); + +Cut._stats = { + create: 0, + tick: 0, + paint: 0, + paste: 0 +}; + +Cut.create = function() { + return new Cut(); +}; + +Cut.prototype.render = function(context) { + Cut._stats.tick = Cut._stats.paint = Cut._stats.paste = 0; + var now = Cut._now(); + var elapsed = this._lastTime ? now - this._lastTime : 0; + this._lastTime = now; + this._tick(elapsed); + this._paint(context); + Cut._stats.fps = 1e3 / (Cut._now() - now); +}; + +Cut.prototype.MAX_ELAPSE = Infinity; + +Cut.prototype._tick = function(elapsed) { + if (!this._visible) { + return; + } + if (elapsed > this.MAX_ELAPSE) { + elapsed = this.MAX_ELAPSE; + } + this._pin.tick(); + var length = this._tickBefore.length; + for (var i = 0; i < length; i++) { + Cut._stats.tick++; + this._tickBefore[i].call(this, elapsed); + } + var child, next = this._first; + while (child = next) { + next = child._next; + child._tick(elapsed); + } + var length = this._tickAfter.length; + for (var i = 0; i < length; i++) { + Cut._stats.tick++; + this._tickAfter[i].call(this, elapsed); + } +}; + +Cut.prototype.tick = function(ticker, before) { + if (before) { + this._tickBefore.push(ticker); + } else { + this._tickAfter.push(ticker); + } +}; + +Cut.prototype.untick = function(ticker) { + var i; + if (!ticker) {} else if ((i = this._tickBefore.indexOf(ticker)) >= 0) { + this._tickBefore.splice(i, 1); + } else if ((i = this._tickAfter.indexOf(ticker)) >= 0) { + this._tickAfter.splice(i, 1); + } +}; + +Cut.prototype._paint = function(context) { + if (!this._visible) { + return; + } + Cut._stats.paint++; + var m = this._pin.absoluteMatrix(); + context.setTransform(m.a, m.b, m.c, m.d, m.e, m.f); + this._alpha = this._pin._alpha * (this._parent ? this._parent._alpha : 1); + var alpha = this._pin._textureAlpha * this._alpha; + if (context.globalAlpha != alpha) { + context.globalAlpha = alpha; + } + var length = this._cutouts.length; + for (var i = 0; i < length; i++) { + this._cutouts[i].paste(context); + } + if (context.globalAlpha != this._alpha) { + context.globalAlpha = this._alpha; + } + var child, next = this._first; + while (child = next) { + next = child._next; + child._paint(context); + } +}; + +Cut.prototype.toString = function() { + return "[" + this._id + "]"; +}; + +Cut.prototype.id = function(id) { + if (!arguments.length) { + return this._id; + } + this._id = id; + return this; +}; + +Cut.prototype.attr = function(name, value) { + if (arguments.length < 2) { + return this._attrs ? this._attrs[name] : undefined; + } + (this._attrs ? this._attrs : this._attrs = {})[name] = value; + return this; +}; + +Cut.prototype.on = Cut.prototype.listen = function(types, listener) { + if (typeof listener !== "function") { + return this; + } + types = (Cut._isArray(types) ? types.join(" ") : types).split(/\s+/); + for (var i = 0; i < types.length; i++) { + var type = types[i]; + if (type) { + this._listeners = this._listeners || {}; + this._listeners[type] = this._listeners[type] || []; + this._listeners[type].push(listener); + this._listenOn(type); + } + } + return this; +}; + +Cut.prototype.listeners = function(type) { + return this._listeners && this._listeners[type]; +}; + +Cut.prototype.publish = function(name, args) { + var listeners = this.listeners(name); + if (!listeners || !listeners.length) { + return 0; + } + for (var l = 0; l < listeners.length; l++) { + listeners[l].apply(this, args); + } + return listeners.length; +}; + +Cut.prototype.trigger = function(name, args) { + this.publish(name, args); + return this; +}; + +Cut.prototype.visit = function(visitor) { + var reverse = visitor.reverse; + var visible = visitor.visible; + if (visitor.start && visitor.start(this)) { + return; + } + var child, next = reverse ? this.last(visible) : this.first(visible); + while (child = next) { + next = reverse ? child.prev(visible) : child.next(visible); + if (child.visit(visitor, reverse)) { + return true; + } + } + return visitor.end && visitor.end(this); +}; + +Cut.prototype.visible = function(visible) { + if (!arguments.length) { + return this._visible; + } + this._visible = visible; + this._parent && (this._parent._ts_children = Cut._TS++); + this._ts_pin = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype.hide = function() { + return this.visible(false); +}; + +Cut.prototype.show = function() { + return this.visible(true); +}; + +Cut.prototype.parent = function() { + return this._parent; +}; + +Cut.prototype.next = function(visible) { + var next = this._next; + while (next && visible && !next._visible) { + next = next._next; + } + return next; +}; + +Cut.prototype.prev = function(visible) { + var prev = this._prev; + while (prev && visible && !prev._visible) { + prev = prev._prev; + } + return prev; +}; + +Cut.prototype.first = function(visible) { + var next = this._first; + while (next && visible && !next._visible) { + next = next._next; + } + return next; +}; + +Cut.prototype.last = function(visible) { + var prev = this._last; + while (prev && visible && !prev._visible) { + prev = prev._prev; + } + return prev; +}; + +Cut.prototype.append = function() { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i].appendTo(this); + } + return this; +}; + +Cut.prototype.prepend = function() { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i].prependTo(this); + } + return this; +}; + +Cut.prototype.appendTo = function(parent) { + if (!parent) { + throw "Parent is null!"; + } + if (!Cut._isCut(parent)) { + throw "It is not a Cut node!"; + } + this.remove(); + if (parent._last) { + parent._last._next = this; + this._prev = parent._last; + } + this._parent = parent; + parent._last = this; + if (!parent._first) { + parent._first = this; + } + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + parent._ts_children = Cut._TS++; + parent.touch(); + return this; +}; + +Cut.prototype.prependTo = function(parent) { + if (!parent) { + throw "Parent is null!"; + } + if (!Cut._isCut(parent)) { + throw "It is not a Cut node!"; + } + this.remove(); + if (parent._first) { + parent._first._prev = this; + this._next = parent._first; + } + this._parent = parent; + parent._first = this; + if (!parent._last) { + parent._last = this; + } + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + parent._ts_children = Cut._TS++; + parent.touch(); + return this; +}; + +Cut.prototype.insertNext = function() { + if (arguments.length) { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i] && arguments[i].insertAfter(this); + } + } + return this; +}; + +Cut.prototype.insertPrev = function() { + if (arguments.length) { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i] && arguments[i].insertBefore(this); + } + } + return this; +}; + +Cut.prototype.insertBefore = function(next) { + if (!next) { + throw "Next is null!"; + } + if (!Cut._isCut(next)) { + throw "It is not a Cut node!"; + } + this.remove(); + var parent = next._parent; + var prev = next._prev; + next._prev = this; + prev && (prev._next = this) || parent && (parent._first = this); + this._parent = parent; + this._prev = prev; + this._next = next; + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype.insertAfter = function(prev) { + if (!prev) { + throw "Prev is null!"; + } + if (!Cut._isCut(prev)) { + throw "It is not a Cut node!"; + } + this.remove(); + var parent = prev._parent; + var next = prev._next; + prev._next = this; + next && (next._prev = this) || parent && (parent._last = this); + this._parent = parent; + this._prev = prev; + this._next = next; + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype.remove = function() { + if (arguments.length) { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i] && arguments[i].remove(); + } + return this; + } + if (this._prev) { + this._prev._next = this._next; + } + if (this._next) { + this._next._prev = this._prev; + } + if (this._parent) { + if (this._parent._first === this) { + this._parent._first = this._next; + } + if (this._parent._last === this) { + this._parent._last = this._prev; + } + this._parent._listenOff(this); + this._parent._ts_children = Cut._TS++; + this._parent.touch(); + } + this._prev = this._next = this._parent = null; + this._ts_parent = Cut._TS++; + // this._parent.touch(); + return this; +}; + +Cut.prototype.empty = function() { + var child, next = this._first; + while (child = next) { + next = child._next; + child._prev = child._next = child._parent = null; + this._listenOff(child); + } + this._first = this._last = null; + this._ts_children = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype._listenOn = function(obj) { + if (typeof obj === "string") { + this._listenersCount = this._listenersCount || {}; + if (!this._listenersCount[obj] && this._parent) { + this._parent._listenOn(obj); + } + this._listenersCount[obj] = (this._listenersCount[obj] || 0) + 1; + } else if (typeof obj === "object") { + if (obj._listenersCount) { + for (var type in obj._listenersCount) { + if (obj._listenersCount[type] > 0) { + this._listenOn(type); + } + } + } + } +}; + +Cut.prototype._listenOff = function(obj) { + if (typeof obj === "string") { + this._listenersCount = this._listenersCount || {}; + if (this._listenersCount[obj] == 1 && this._parent) { + this._parent._listenOff(obj); + } + this._listenersCount[obj] = Math.max((this._listenersCount[obj] || 0) - 1, 0); + } else if (typeof obj === "object") { + if (obj._listenersCount) { + for (var type in obj._listenersCount) { + if (obj._listenersCount[type] > 0) { + this._listenOff(type); + } + } + } + } +}; + +Cut.prototype._listens = function(type) { + return this._listenersCount && this._listenersCount[type] || 0; +}; + +Cut.prototype.touch = function() { + this._ts_touch = Cut._TS++; + this._parent && this._parent.touch(); + return this; +}; + +Cut.prototype.pin = function() { + if (!arguments.length) { + return this._pin; + } + var obj = this._pin.update.apply(this._pin, arguments); + return obj === this._pin ? this : obj; +}; + +Cut.prototype.matrix = function() { + return this._pin.absoluteMatrix(this, this._parent ? this._parent._pin : null); +}; + +Cut.prototype.tween = function(duration, delay) { + return (this._tween || (this._tween = new Cut.Tween(this))).tween(duration, delay); +}; + +Cut.Tween = function(cut) { + var tween = this; + this._owner = cut; + this._queue = []; + this._next = null; + cut.tick(function(elapsed) { + if (!tween._queue.length) { + return; + } + this.touch(); + var head = tween._queue[0]; + if (!head.time) { + head.time = 1; + } else { + head.time += elapsed; + } + if (head.time < head.delay) { + return; + } + if (!head.start) { + head.start = {}; + head.keys = {}; + for (var key in head.end) { + if (typeof (start = cut.pin(key)) === "number") { + head.start[key] = start; + head.keys[key] = key; + } else if (typeof (startX = cut.pin(key + "X")) === "number" && typeof (startY = cut.pin(key + "Y")) === "number") { + head.start[key + "X"] = startX; + head.keys[key + "X"] = key; + head.start[key + "Y"] = startY; + head.keys[key + "Y"] = key; + } + } + } + var p = (head.time - head.delay) / head.duration; + var over = p >= 1; + p = p > 1 ? 1 : p; + p = typeof head.easing == "function" ? head.easing(p) : p; + var q = 1 - p; + for (var key in head.keys) { + cut.pin(key, head.start[key] * q + head.end[head.keys[key]] * p); + } + if (over) { + tween._queue.shift(); + head.then && head.then.call(cut); + } + }, true); +}; + +Cut.Tween.prototype.tween = function(duration, delay) { + this._next = { + id: Cut._TS++, + end: {}, + duration: duration || 400, + delay: delay || 0 + }; + return this; +}; + +Cut.Tween.prototype.pin = function(pin) { + if (this._next !== this._queue[this._queue.length - 1]) { + this._owner.touch(); + this._queue.push(this._next); + } + var end = this._next.end; + if (arguments.length === 1) { + Cut._extend(end, arguments[0]); + } else if (arguments.length === 2) { + end[arguments[0]] = arguments[1]; + } + return this; +}; + +Cut.Tween.prototype.clear = function(forward) { + var tween; + while (tween = this._queue.shift()) { + forward && this._owner.pin(tween.end); + } + return this; +}; + +Cut.Tween.prototype.then = function(then) { + this._next.then = then; + return this; +}; + +Cut.Tween.prototype.ease = function(easing) { + this._next.easing = Cut.Easing(easing); + return this; +}; + +Cut.root = function(request, render) { + return new Cut.Root(request, render); +}; + +Cut.Root = function(request, render) { + Cut.String.prototype._super.apply(this, arguments); + this._paused = true; + this._render = render; + this._request = request; + var self = this; + var requestCallback = function() { + if (self._paused === true) { + return; + } + self._mo_touch = self._ts_touch; + self._render(); + self.request(); + self._mo_touch == self._ts_touch && self.pause(); + }; + this.request = function() { + this._request.call(null, requestCallback); + }; + this.on("viewport", function(viewport) { + this._size = { + width: viewport.width, + height: viewport.height + }; + this._updateViewbox(); + return true; + }); +}; + +Cut.Root.prototype = Cut._create(Cut.prototype); + +Cut.Root.prototype._super = Cut; + +Cut.Root.prototype.constructor = Cut.Root; + +Cut.Root.prototype.viewbox = function(width, height, mode) { + this._viewbox = { + width: width, + height: height, + mode: /^(in|out)$/.test(mode) ? mode : "in" + }; + this._updateViewbox(); + return this; +}; + +Cut.Root.prototype._updateViewbox = function() { + var viewbox = this._viewbox; + var size = this._size; + if (!size) {} else if (viewbox) { + this.pin({ + width: viewbox.width, + height: viewbox.height, + resizeMode: viewbox.mode, + resizeWidth: size.width, + resizeHeight: size.height + }); + } else { + this.pin({ + width: size.width, + height: size.height + }); + } +}; + +Cut.Root.prototype.start = function() { + return this.resume(); +}; + +Cut.Root.prototype.resume = function(force) { + if (this._paused || force) { + this._paused = false; + this.request(); + } + return this; +}; + +Cut.Root.prototype.pause = function() { + this._paused = true; + return this; +}; + +Cut.Root.prototype.touch = function() { + this.resume(); + return Cut.prototype.touch.apply(this, arguments); +}; + +Cut.Root.prototype.resize = function(width, height, ratio) { + this._ratio = ratio || 1; + var data = {}; + data.width = width; + data.height = height; + data.ratio = ratio; + this.visit({ + start: function(cut) { + if (!cut._listens("viewport")) { + return true; + } + cut.publish("viewport", [ data ]); + } + }); + return this; +}; + +Cut.image = function(cutout) { + var image = new Cut.Image(); + cutout && image.image(cutout); + return image; +}; + +Cut.Image = function() { + Cut.Image.prototype._super.apply(this, arguments); +}; + +Cut.Image.prototype = Cut._create(Cut.prototype); + +Cut.Image.prototype._super = Cut; + +Cut.Image.prototype.constructor = Cut.Image; + +/** + * @deprecated Use image + */ +Cut.Image.prototype.setImage = function() { + this.image.apply(this, arguments); +}; + +Cut.Image.prototype.image = function(cutout) { + this._cutouts[0] = Cut.Out.select(cutout); + this._cutouts.length = 1; + this.pin({ + width: this._cutouts[0] ? this._cutouts[0].dWidth() : 0, + height: this._cutouts[0] ? this._cutouts[0].dHeight() : 0 + }); + this._cutout = this._cutouts[0].clone(); + return this; +}; + +Cut.Image.prototype.cropX = function(w, x) { + return this.image(this._cutouts[0].cropX(w, x)); +}; + +Cut.Image.prototype.cropY = function(h, y) { + return this.image(this._cutouts[0].cropY(h, y)); +}; + +Cut.Image.prototype._slice = function(i) { + return this._cutouts[i] || (this._cutouts[i] = this._cutout.clone()); +}; + +Cut.Image.prototype.tile = function(inner) { + this.untick(this._repeatTicker); + this._repeatTicker = function() { + if (this._mo_tile == this._ts_touch) { + return; + } + this._mo_tile = this._ts_touch; + var bleft = this._cutout._left, bright = this._cutout._right; + var btop = this._cutout._top, bbottom = this._cutout._bottom; + var bwidth = this._cutout.dWidth() - bleft - bright; + var bheight = this._cutout.dHeight() - btop - bbottom; + var width = this.pin("width"); + width = inner ? width : width - bleft - bright; + var height = this.pin("height"); + height = inner ? height : height - btop - bbottom; + var left = inner ? -bleft : 0; + var top = inner ? -btop : 0; + var c = 0; + // top, left + if (btop && bleft) { + this._slice(c++).cropX(bleft, 0).cropY(btop, 0).offset(left, top); + } + // bottom, left + if (bbottom && bleft) { + this._slice(c++).cropX(bleft, 0).cropY(bbottom, bheight + btop).offset(left, top + height + btop); + } + // top, right + if (btop && bright) { + this._slice(c++).cropX(bright, bwidth + bleft).cropY(btop, 0).offset(left + width + bleft, top); + } + // bottom, right + if (bbottom && bright) { + this._slice(c++).cropX(bright, bwidth + bleft).cropY(bbottom, bheight + btop).offset(left + width + bleft, top + height + btop); + } + var x = left + bleft; + var r = width; + while (r > 0) { + var w = Math.min(bwidth, r); + r -= bwidth; + var y = top + btop; + var b = height; + while (b > 0) { + var h = Math.min(bheight, b); + b -= bheight; + this._slice(c++).cropX(w, bleft).cropY(h, btop).offset(x, y); + if (r <= 0) { + // left + if (bleft) { + this._slice(c++).cropX(bleft, 0).cropY(h, btop).offset(left, y); + } + // right + if (bright) { + this._slice(c++).cropX(bright, bwidth + bleft).cropY(h, btop).offset(x + w, y); + } + } + y += h; + } + // top + if (btop) { + this._slice(c++).cropX(w, bleft).cropY(btop, 0).offset(x, top); + } + // bottom + if (bbottom) { + this._slice(c++).cropX(w, bleft).cropY(bbottom, bheight + btop).offset(x, y); + } + x += w; + } + this._cutouts.length = c; + }; + this.tick(this._repeatTicker); + return this; +}; + +Cut.Image.prototype.stretch = function(inner) { + this.untick(this._repeatTicker); + this._repeatTicker = function() { + if (this._mo_stretch == this._pin._ts_transform) { + return; + } + this._mo_stretch = this._pin._ts_transform; + var oleft = this._cutout._left, oright = this._cutout._right; + var otop = this._cutout._top, obottom = this._cutout._bottom; + var owidth = this._cutout.dWidth(), oheight = this._cutout.dHeight(); + var width = this.pin("width"), height = this.pin("height"); + width = inner ? width + oleft + oright : Math.max(width, oleft + oright); + height = inner ? height + otop + obottom : Math.max(height, otop + obottom); + var c = 0; + // top, left + if (otop && oleft) { + this._slice(c++).cropX(oleft, 0).cropY(otop, 0).offset(0, 0); + } + // bottom, left + if (obottom && oleft) { + this._slice(c++).cropX(oleft, 0).cropY(obottom, oheight - obottom).offset(0, height - obottom); + } + // top, right + if (otop && oright) { + this._slice(c++).cropX(oright, owidth - oright).cropY(otop, 0).offset(width - oright, 0); + } + // bottom, right + if (obottom && oright) { + this._slice(c++).cropX(oright, owidth - oright).cropY(obottom, oheight - obottom).offset(width - oright, height - obottom); + } + // top + if (otop) { + this._slice(c++).cropX(owidth - oleft - oright, oleft).cropY(otop, 0).offset(oleft, 0).dWidth(width - oleft - oright); + } + // bottom + if (obottom) { + this._slice(c++).cropX(owidth - oleft - oright, oleft).cropY(obottom, oheight - obottom).offset(oleft, height - obottom).dWidth(width - oleft - oright); + } + // left + if (oleft) { + this._slice(c++).cropX(oleft, 0).cropY(oheight - otop - obottom, otop).offset(0, otop).dHeight(height - otop - obottom); + } + // right + if (oright) { + this._slice(c++).cropX(oright, owidth - oright).cropY(oheight - otop - obottom, otop).offset(width - oright, otop).dHeight(height - otop - obottom); + } + // center + this._slice(c++).cropX(owidth - oleft - oright, oleft).cropY(oheight - otop - obottom, otop).offset(oleft, otop).dWidth(width - oleft - oright).dHeight(height - otop - obottom); + this._cutouts.length = c; + }; + this.tick(this._repeatTicker); + return this; +}; + +Cut.anim = function(frames, fps) { + var anim = new Cut.Anim().frames(frames).gotoFrame(0); + fps && anim.fps(fps); + return anim; +}; + +Cut.Anim = function() { + Cut.Anim.prototype._super.apply(this, arguments); + this._fps = Cut.Anim.FPS; + this._ft = 1e3 / this._fps; + this._time = 0; + this._frame = 0; + this._frames = []; + this._labels = {}; + this.tick(function() { + if (this._time && this._frames.length > 1) { + var t = Cut._now() - this._time; + if (t >= this._ft) { + var n = t < 2 * this._ft ? 1 : Math.floor(t / this._ft); + this._time += n * this._ft; + this.moveFrame(n); + if (this._repeat && (this._repeat -= n) <= 0) { + this.stop(); + this._callback && this._callback(); + } + } + this.touch(); + } + }, false); +}; + +Cut.Anim.prototype = Cut._create(Cut.prototype); + +Cut.Anim.prototype._super = Cut; + +Cut.Anim.prototype.constructor = Cut.Anim; + +Cut.Anim.FPS = 22; + +Cut.Anim.prototype.fps = function(fps) { + if (!arguments.length) { + return this._fps; + } + this._fps = fps || Cut.Anim.FPS; + this._ft = 1e3 / this._fps; + return this; +}; + +/** + * @deprecated Use frames + */ +Cut.Anim.prototype.setFrames = function() { + this.frames.apply(this, arguments); +}; + +Cut.Anim.prototype.frames = function(frames) { + this._time = this._time || 0; + this._frame = 0; + this._frames = []; + this._labels = {}; + frames = Cut.Out.select(frames, true); + if (frames && frames.length) { + for (var i = 0; i < frames.length; i++) { + var cutout = frames[i]; + this._frames.push(cutout); + this._labels[cutout._name] = i; + } + } + return this; +}; + +Cut.Anim.prototype.length = function() { + return this._frames ? this._frames.length : 0; +}; + +Cut.Anim.prototype.gotoFrame = function(frame, resize) { + frame = Cut.Math.rotate(frame, this._frames.length) | 0; + this._frame = frame; + resize = resize || !this._cutouts[0]; + this._cutouts[0] = this._frames[this._frame]; + if (resize) { + this.pin({ + width: this._cutouts[0].dWidth(), + height: this._cutouts[0].dHeight() + }); + } + this._ts_frame = Cut._TS++; + this.touch(); + return this; +}; + +Cut.Anim.prototype.moveFrame = function(move) { + return this.gotoFrame(this._frame + move); +}; + +Cut.Anim.prototype.gotoLabel = function(label, resize) { + return this.gotoFrame(this._labels[label] || 0, resize); +}; + +Cut.Anim.prototype.repeat = function(repeat, callback) { + this._repeat = repeat * this._frames.length - 1; + this._callback = callback; + this.play(); + return this; +}; + +Cut.Anim.prototype.play = function(frame) { + if (arguments.length) { + this.gotoFrame(frame); + this._time = Cut._now(); + } else if (!this._time) { + this._time = Cut._now(); + } + return this; +}; + +Cut.Anim.prototype.stop = function(frame) { + this._time = null; + if (arguments.length) { + this.gotoFrame(frame); + } + return this; +}; + +Cut.string = function(frames) { + return new Cut.String().frames(frames); +}; + +Cut.String = function() { + Cut.String.prototype._super.apply(this, arguments); + this.row(); +}; + +Cut.String.prototype = Cut._create(Cut.prototype); + +Cut.String.prototype._super = Cut; + +Cut.String.prototype.constructor = Cut.String; + +/** + * @deprecated Use frames + */ +Cut.String.prototype.setFont = function() { + this.frames.apply(this, arguments); +}; + +Cut.String.prototype.frames = function(frames) { + if (typeof frames == "string") { + this._frames = function(value) { + return frames + value; + }; + } else if (Cut._isFunc(frames)) { + this._frames = frames; + } + return this; +}; + +/** + * @deprecated Use value + */ +Cut.String.prototype.setValue = function() { + this.value.apply(this, arguments); +}; + +Cut.String.prototype.value = function(value) { + if (this._value === value) return this; + this._value = value; + if (typeof value !== "string" && !Cut._isArray(value)) { + value = value + ""; + } + var child = this._first; + for (var i = 0; i < value.length; i++) { + var selector = this._frames(value[i]); + if (child) { + child.image(selector).show(); + } else { + child = Cut.image(selector).appendTo(this); + } + child = child._next; + } + while (child) { + child.hide(); + child = child._next; + } + return this; +}; + +Cut.row = function(align) { + return Cut.create().row(align); +}; + +Cut.prototype.row = function(align) { + this.sequence("row", align); + return this; +}; + +Cut.column = function(align) { + return Cut.create().column(align); +}; + +Cut.prototype.column = function(align) { + this.sequence("column", align); + return this; +}; + +Cut.sequence = function(type, align) { + return new Cut.create().sequence(type, align); +}; + +Cut.prototype.sequence = function(type, align) { + this.untick(this._layoutTicker); + this._layoutTicker = function() { + if (this._mo_seq == this._ts_touch) { + return; + } + this._mo_seq = this._ts_touch; + var alignChildren = this._mo_seqAlign != this._ts_children; + this._mo_seqAlign = this._ts_children; + var width = 0, height = 0; + var child, next = this.first(true); + var first = true; + while (child = next) { + next = child.next(true); + child._pin.relativeMatrix(); + var w = child._pin._boxWidth; + var h = child._pin._boxHeight; + if (type == "column") { + !first && (height += this._spacing || 0); + child.pin("offsetY") != height && child.pin("offsetY", height); + width = Math.max(width, w); + height = height + h; + alignChildren && child.pin("alignX", align); + } else if (type == "row") { + !first && (width += this._spacing || 0); + child.pin("offsetX") != width && child.pin("offsetX", width); + width = width + w; + height = Math.max(height, h); + alignChildren && child.pin("alignY", align); + } + first = false; + } + width += 2 * this._padding || 0; + height += 2 * this._padding || 0; + this.pin("width") != width && this.pin("width", width); + this.pin("height") != height && this.pin("height", height); + }; + this.tick(this._layoutTicker); + return this; +}; + +Cut.box = function() { + return new Cut.create().box(); +}; + +Cut.prototype.box = function() { + if (this._boxTicker) return this; + this._boxTicker = function() { + if (this._mo_box == this._ts_touch) { + return; + } + this._mo_box = this._ts_touch; + var width = 0, height = 0; + var child, next = this.first(true); + while (child = next) { + next = child.next(true); + child._pin.relativeMatrix(); + var w = child._pin._boxWidth; + var h = child._pin._boxHeight; + width = Math.max(width, w); + height = Math.max(height, h); + } + width += 2 * this._padding || 0; + height += 2 * this._padding || 0; + this.pin("width") != width && this.pin("width", width); + this.pin("height") != height && this.pin("height", height); + }; + this.tick(this._boxTicker); + return this; +}; + +Cut.prototype.padding = function(pad) { + this._padding = pad; + return this; +}; + +Cut.prototype.spacing = function(space) { + this._spacing = space; + return this; +}; + +// TODO use prototype +Cut.Loader = function() { + var queue = []; + var roots = []; + var images = {}; + var started = false; + function loadImages(loader, callback) { + var loading = 0; + var noimage = true; + var textures = Cut.Texture._list; + for (var texture in textures) { + if (textures[texture].getImagePath()) { + loading++; + var src = textures[texture].getImagePath(); + var image = loader(src, complete, error); + Cut.Loader.addImage(image, src); + noimage = false; + } + } + if (noimage) { + DEBUG && console.log("No image to load."); + callback && callback(); + } + function complete() { + DEBUG && console.log("Image loaded."); + done(); + } + function error(msg) { + DEBUG && console.log("Error loading image: " + msg); + done(); + } + function done() { + if (--loading <= 0) { + callback && callback(); + } + } + } + return { + load: function(app, configs) { + if (!started) { + queue.push(arguments); + return; + } + DEBUG && console.log("Init..."); + var root = this.init(function(root, canvas) { + DEBUG && console.log("Loading app..."); + app(root, canvas); + }, configs); + roots.push(root); + DEBUG && console.log("Loading images..."); + loadImages(this.loadImage, function() { + DEBUG && console.log("Images loaded."); + DEBUG && console.log("Start playing..."); + root.start(); + }); + }, + start: function() { + started = true; + var args; + while (args = queue.shift()) { + this.load.apply(this, args); + } + }, + pause: function() { + for (var i = queue.length - 1; i >= 0; i--) { + roots[i].pause(); + } + }, + resume: function() { + for (var i = queue.length - 1; i >= 0; i--) { + roots[i].resume(); + } + }, + getImage: function(src) { + return images[src]; + }, + addImage: function(image, src) { + images[src] = image; + return this; + } + }; +}(); + +// TODO use prototype +Cut.Texture = function(texture) { + texture.cutouts = texture.cutouts || []; + var selectionCache = {}; + var imageCache = null; + this.getImagePath = function() { + return texture.imagePath; + }; + function image() { + if (!imageCache) { + imageCache = Cut.Loader.getImage(texture.imagePath); + } + return imageCache; + } + for (var i = 0; i < texture.cutouts.length; i++) { + map(texture.cutouts[i]); + } + function map(cutout) { + if (!cutout || cutout.isCutout) { + return cutout; + } + if (typeof texture.map === "function") { + cutout = texture.map(cutout); + } else if (typeof texture.filter === "function") { + cutout = texture.filter(cutout); + } + var ratio = texture.ratio || 1; + if (ratio != 1) { + cutout.x *= ratio, cutout.y *= ratio; + cutout.width *= ratio, cutout.height *= ratio; + cutout.top *= ratio, cutout.bottom *= ratio; + cutout.left *= ratio, cutout.right *= ratio; + } + var trim = texture.trim || 0; + if (trim) { + cutout.x += trim, cutout.y += trim; + cutout.width -= 2 * trim, cutout.height -= 2 * trim; + cutout.top -= trim, cutout.bottom -= trim; + cutout.left -= trim, cutout.right -= trim; + } + return cutout; + } + function wrap(cutout) { + if (!cutout.isCutout) { + cutout = new Cut.Out(cutout, image, texture.imageRatio); + } + return cutout; + } + this.select = function(selector, prefix) { + if (!prefix) { + // one + var id = selector + "?"; + var result = selectionCache[id]; + if (typeof result === "undefined") { + for (var i = 0; i < texture.cutouts.length; i++) { + var item = texture.cutouts[i]; + var name = item._name || item.name; + if (name == selector) { + result = item; + break; + } + } + if (!result && texture.factory) { + result = map(texture.factory(selector)); + } + selectionCache[id] = result; + } + if (!result) { + throw "Cutout not found: '" + texture.name + ":" + selector + "'"; + } + return wrap(result); + } else { + // many + var id = selector + "*"; + var results = selectionCache[id]; + if (typeof results === "undefined") { + results = []; + var length = selector.length; + for (var i = 0; i < texture.cutouts.length; i++) { + var item = texture.cutouts[i]; + var name = item._name || item.name; + if (name && name.substring(0, length) == selector) { + results.push(texture.cutouts[i]); + } + } + selectionCache[id] = results; + } + if (!results.length) { + throw "Cutouts not found: '" + texture.name + ":" + selector + "'"; + } + for (var i = 0; i < results.length; i++) { + results[i] = wrap(results[i]); + } + return results; + } + }; +}; + +Cut.Texture._list = {}; + +Cut.Texture.add = function() { + for (var i = 0; i < arguments.length; i++) { + var texture = arguments[i]; + Cut.Texture._list[texture.name] = new Cut.Texture(texture); + } + return this; +}; + +/** + * @deprecated Use Cut(); + */ +Cut.addTexture = function() { + return Cut.Texture.add.apply(Cut.Texture, arguments); +}; + +Cut.Out = function(def, image, ratio) { + this.isCutout = true; + this._image = image; + this._ratio = ratio || 1; + this._name = def.name; + this._x = def.x; + this._y = def.y; + this._width = def.width; + this._height = def.height; + this._top = def.top || 0; + this._bottom = def.bottom || 0; + this._left = def.left || 0; + this._right = def.right || 0; + this._reset(); + return this; +}; + +Cut.Out.prototype._reset = function() { + this._sx = this._x * this._ratio; + this._sy = this._y * this._ratio; + this._sw = this._width * this._ratio; + this._sh = this._height * this._ratio; + this._dx = 0; + this._dy = 0; + this._dw = this._width; + this._dh = this._height; +}; + +Cut.Out.prototype.clone = function() { + var clone = Cut._create(Cut.Out.prototype); + for (var attr in this) if (this.hasOwnProperty(attr)) clone[attr] = this[attr]; + clone._reset(); + return clone; +}; + +Cut.Out.prototype.dWidth = function(width) { + if (arguments.length) { + this._dw = width; + return this; + } + return this._dw; +}; + +Cut.Out.prototype.dHeight = function(height) { + if (arguments.length) { + this._dh = height; + return this; + } + return this._dh; +}; + +Cut.Out.prototype.cropX = function(w, x) { + x = x || 0; + w = Math.min(w, this._width - x); + this._dw = w; + this._sw = w * this._ratio; + this._sx = (this._x + x) * this._ratio; + return this; +}; + +Cut.Out.prototype.cropY = function(h, y) { + y = y || 0; + h = Math.min(h, this._height - y); + this._dh = h; + this._sh = h * this._ratio; + this._sy = (this._y + y) * this._ratio; + return this; +}; + +Cut.Out.prototype.offset = function(x, y) { + this._dx = x; + this._dy = y; + return this; +}; + +Cut.Out.prototype.paste = function(context) { + Cut._stats.paste++; + var img = typeof this._image === "function" ? this._image() : this._image; + try { + img && context.drawImage(img, // source + this._sx, this._sy, this._sw, this._sh, // cut + this._dx, this._dy, this._dw, this._dh); + } catch (e) { + if (!this._failed) { + console.log("Unable to paste: " + this, img); + this._failed = true; + } + } +}; + +Cut.Out.prototype.toString = function() { + return "[" + this._name + ": " + this._sx + "x" + this._sy + "-" + this._sw + "x" + this._sh + "" + this._dx + "x" + this._dy + "-" + this._dw + "x" + this._dh + "]"; +}; + +Cut.Out.select = function(selector, prefix) { + if (typeof selector === "function") { + return Cut.Out.select(selector()); + } + if (typeof selector !== "string") { + return selector; + } + var i = selector.indexOf(":"); + if (i < 0) { + throw "Invalid selector: '" + selector + "'"; + return null; + } + var split = [ selector.slice(0, i), selector.slice(i + 1) ]; + var texture = Cut.Texture._list[split[0]]; + if (texture == null) { + throw "Texture not found: '" + selector + "'"; + return !prefix ? null : []; + } + return texture.select(split[1], prefix); +}; + +Cut.drawing = function() { + return Cut.image(Cut.Out.drawing.apply(Cut.Out, arguments)); +}; + +// [name], width, height, [ratio], [draw] +// def, [draw] +Cut.Out.drawing = function() { + var canvas = document.createElement("canvas"); + var context = canvas.getContext("2d"); + var def = {}; + var ai = 0; + if (typeof arguments[ai] === "object") { + def = arguments[ai++]; + } else { + if (typeof arguments[ai] === "string") { + def.name = arguments[ai++]; + } + def.width = arguments[ai++]; + def.height = arguments[ai++]; + if (typeof arguments[ai] === "number") { + def.ratio = arguments[ai++]; + } + def.x = 0; + def.y = 0; + } + def.ratio = def.ratio || 1; + def.name = def.name || Math.random() * 1e3 | 0; + canvas.width = Math.ceil(def.width * def.ratio); + canvas.height = Math.ceil(def.height * def.ratio); + var cut = new Cut.Out(def, canvas, def.ratio); + if (typeof arguments[arguments.length - 1] === "function") { + arguments[arguments.length - 1].call(cut, context, def.ratio); + } + return cut; +}; + +Cut.Pin = function(owner) { + this._owner = owner; + this._parent = null; + // relative to parent + this._relativeMatrix = new Cut.Matrix(); + // relative to root + this._absoluteMatrix = new Cut.Matrix(); + this.reset(); +}; + +Cut.Pin.prototype.reset = function() { + this._textureAlpha = 1; + this._alpha = 1; + this._width = 0; + this._height = 0; + this._scaleX = 1; + this._scaleY = 1; + this._skewX = 0; + this._skewY = 0; + this._rotation = 0; + // scale/skew/rotate center + this._pivoted = false; + this._pivotX = null; + this._pivotY = null; + // self pin point + this._handled = false; + this._handleX = 0; + this._handleY = 0; + // parent pin point + this._aligned = false; + this._alignX = 0; + this._alignY = 0; + // as seen by parent px + this._offsetX = 0; + this._offsetY = 0; + this._boxX = 0; + this._boxY = 0; + this._boxWidth = this._width; + this._boxHeight = this._height; + this._ts_translate = Cut._TS++; + this._ts_transform = Cut._TS++; + this._ts_matrix = Cut._TS++; +}; + +Cut.Pin.prototype.tick = function() { + this._parent = this._owner._parent && this._owner._parent._pin; + if (this._handled && this._mo_handle != this._ts_transform) { + this._mo_handle = this._ts_transform; + this._ts_translate = Cut._TS++; + } + if (this._aligned && this._parent && this._mo_align != this._parent._ts_transform) { + this._mo_align = this._parent._ts_transform; + this._ts_translate = Cut._TS++; + } + return this; +}; + +Cut.Pin.prototype.toString = function() { + return this._owner.id() + " [" + this._alignX + ", " + this._alignY + "] [" + this._handleX + ", " + this._handleY + "] [" + (this._parent ? this._parent._owner.id() : null) + "]"; +}; + +Cut.Pin.prototype.absoluteMatrix = function() { + var ts = Math.max(this._ts_transform, this._ts_translate, this._parent ? this._parent._ts_matrix : 0); + if (this._mo_abs == ts) { + return this._absoluteMatrix; + } + this._mo_abs = ts; + var abs = this._absoluteMatrix; + abs.copyFrom(this.relativeMatrix()); + this._parent && abs.concat(this._parent._absoluteMatrix); + this._ts_matrix = Cut._TS++; + return abs; +}; + +Cut.Pin.prototype.relativeMatrix = function() { + var ts = Math.max(this._ts_transform, this._ts_translate, this._parent ? this._parent._ts_transform : 0); + if (this._mo_rel == ts) { + return this._relativeMatrix; + } + this._mo_rel = ts; + var rel = this._relativeMatrix; + rel.identity(); + if (this._pivoted) { + rel.translate(-this._pivotX * this._width, -this._pivotY * this._height); + } + rel.scale(this._scaleX, this._scaleY); + rel.skew(this._skewX, this._skewY); + rel.rotate(this._rotation); + if (this._pivoted) { + rel.translate(this._pivotX * this._width, this._pivotY * this._height); + } + if (this._pivoted) { + // set handle on origin + this._boxX = 0; + this._boxY = 0; + this._boxWidth = this._width; + this._boxHeight = this._height; + } else { + // set handle on aabb + var p, q, m = rel; + if (m.a > 0 && m.c > 0 || m.a < 0 && m.c < 0) { + p = 0, q = m.a * this._width + m.c * this._height; + } else { + p = m.a * this._width, q = m.c * this._height; + } + if (p > q) { + this._boxX = q; + this._boxWidth = p - q; + } else { + this._boxX = p; + this._boxWidth = q - p; + } + if (m.b > 0 && m.d > 0 || m.b < 0 && m.d < 0) { + p = 0, q = m.b * this._width + m.d * this._height; + } else { + p = m.b * this._width, q = m.d * this._height; + } + if (p > q) { + this._boxY = q; + this._boxHeight = p - q; + } else { + this._boxY = p; + this._boxHeight = q - p; + } + } + this._x = this._offsetX; + this._y = this._offsetY; + this._x -= this._boxX + this._handleX * this._boxWidth; + this._y -= this._boxY + this._handleY * this._boxHeight; + if (this._aligned && this._parent) { + this._parent.relativeMatrix(); + this._x += this._alignX * this._parent._width; + this._y += this._alignY * this._parent._height; + } + rel.translate(this._x, this._y); + return this._relativeMatrix; +}; + +Cut.Pin._SINGLE = {}; + +Cut.Pin.prototype.update = function() { + if (arguments.length == 1 && typeof arguments[0] === "string") { + return this["_" + arguments[0]]; + } + this._transform_flag = false; + this._translate_flag = false; + var pin = null, key = null, value = null; + if (arguments.length == 2 && typeof arguments[0] === "string") { + for (key in Cut.Pin._SINGLE) { + delete Cut.Pin._SINGLE[key]; + } + (pin = Cut.Pin._SINGLE)[arguments[0]] = arguments[1]; + } else if (arguments.length == 1 && typeof arguments[0] === "object") { + pin = arguments[0]; + } + // TODO: map write only keys to read/write keys + if (pin) { + for (key in pin) { + if (typeof (value = pin[key]) !== "undefined") { + if (setter = Cut.Pin._setters[key]) { + setter.call(Cut.Pin._setters, this, value, pin); + } + } + } + } + if (this._translate_flag) { + this._translate_flag = false; + this._ts_translate = Cut._TS++; + } + if (this._transform_flag) { + this._transform_flag = false; + this._ts_transform = Cut._TS++; + } + if (this._owner) { + this._owner._ts_pin = Cut._TS++; + this._owner.touch(); + } + return this; +}; + +Cut.Pin._setters = { + alpha: function(pin, value, set) { + pin._alpha = value; + }, + textureAlpha: function(pin, value, set) { + pin._textureAlpha = value; + }, + width: function(pin, value, set) { + pin._width_ = value; + pin._width = value; + pin._transform_flag = true; + }, + height: function(pin, value, set) { + pin._height_ = value; + pin._height = value; + pin._transform_flag = true; + }, + scale: function(pin, value, set) { + pin._scaleX = value; + pin._scaleY = value; + pin._transform_flag = true; + }, + scaleX: function(pin, value, set) { + pin._scaleX = value; + pin._transform_flag = true; + }, + scaleY: function(pin, value, set) { + pin._scaleY = value; + pin._transform_flag = true; + }, + skew: function(pin, value, set) { + pin._skewX = value; + pin._skewY = value; + pin._transform_flag = true; + }, + skewX: function(pin, value, set) { + pin._skewX = value; + pin._transform_flag = true; + }, + skewY: function(pin, value, set) { + pin._skewY = value; + pin._transform_flag = true; + }, + rotation: function(pin, value, set) { + pin._rotation = value; + pin._transform_flag = true; + }, + pivot: function(pin, value, set) { + pin._pivotX = value; + pin._pivotY = value; + pin._pivoted = true; + pin._transform_flag = true; + }, + pivotX: function(pin, value, set) { + pin._pivotX = value; + pin._pivoted = true; + pin._transform_flag = true; + }, + pivotY: function(pin, value, set) { + pin._pivotY = value; + pin._pivoted = true; + pin._transform_flag = true; + }, + offset: function(pin, value, set) { + pin._offsetX = value; + pin._offsetY = value; + pin._translate_flag = true; + }, + offsetX: function(pin, value, set) { + pin._offsetX = value; + pin._translate_flag = true; + }, + offsetY: function(pin, value, set) { + pin._offsetY = value; + pin._translate_flag = true; + }, + align: function(pin, value, set) { + this.alignX.apply(this, arguments); + this.alignY.apply(this, arguments); + }, + alignX: function(pin, value, set) { + pin._alignX = value; + pin._aligned = true; + pin._translate_flag = true; + this.handleX(pin, value, set); + }, + alignY: function(pin, value, set) { + pin._alignY = value; + pin._aligned = true; + pin._translate_flag = true; + this.handleY(pin, value, set); + }, + handle: function(pin, value, set) { + this.handleX(pin, value, set); + this.handleY(pin, value, set); + }, + handleX: function(pin, value, set) { + pin._handleX = value; + pin._handled = true; + pin._translate_flag = true; + }, + handleY: function(pin, value, set) { + pin._handleY = value; + pin._handled = true; + pin._translate_flag = true; + }, + resizeMode: function(pin, value, set) { + if (Cut._isNum(set.resizeWidth) && Cut._isNum(set.resizeHeight)) { + this.resizeWidth(pin, set.resizeWidth, set, true); + this.resizeHeight(pin, set.resizeHeight, set, true); + if (value == "out") { + pin._scaleX = pin._scaleY = Math.max(pin._scaleX, pin._scaleY); + } else if (value == "in") { + pin._scaleX = pin._scaleY = Math.min(pin._scaleX, pin._scaleY); + } + pin._width = set.resizeWidth / pin._scaleX; + pin._height = set.resizeHeight / pin._scaleY; + } + }, + resizeWidth: function(pin, value, set, force) { + if (set.resizeMode && !force) { + return; + } + pin._scaleX = value / pin._width_; + pin._width = pin._width_; + pin._transform_flag = true; + }, + resizeHeight: function(pin, value, set, force) { + if (set.resizeMode && !force) { + return; + } + pin._scaleY = value / pin._height_; + pin._height = pin._height_; + pin._transform_flag = true; + }, + scaleMode: function(pin, value, set) { + if (Cut._isNum(set.scaleWidth) && Cut._isNum(set.scaleHeight)) { + this.scaleWidth(pin, set.scaleWidth, set, true); + this.scaleHeight(pin, set.scaleHeight, set, true); + if (value == "out") { + pin._scaleX = pin._scaleY = Math.max(pin._scaleX, pin._scaleY); + } else if (value == "in") { + pin._scaleX = pin._scaleY = Math.min(pin._scaleX, pin._scaleY); + } + } + }, + scaleWidth: function(pin, value, set, force) { + if (set.scaleMode && !force) { + return; + } + pin._scaleX = value / pin._width_; + pin._transform_flag = true; + }, + scaleHeight: function(pin, value, set, force) { + if (set.scaleMode && !force) { + return; + } + pin._scaleY = value / pin._height_; + pin._transform_flag = true; + }, + matrix: function(pin, value, set) { + this.scaleX(pin, value.a, set); + this.skewX(pin, value.c / value.d, set); + this.skewY(pin, value.b / value.a, set); + this.scaleY(pin, value.d, set); + this.offsetX(pin, value.e, set); + this.offsetY(pin, value.f, set); + this.rotation(pin, 0, set); + } +}; + +Cut.Matrix = function(a, b, c, d, e, f) { + this.changed = true; + this.a = a || 1; + this.b = b || 0; + this.c = c || 0; + this.d = d || 1; + this.e = e || 0; + this.f = f || 0; +}; + +Cut.Matrix.prototype.toString = function() { + return "[" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.e + ", " + this.f + "]"; +}; + +Cut.Matrix.prototype.clone = function() { + return new Cut.Matrix(this.a, this.b, this.c, this.d, this.e, this.f); +}; + +Cut.Matrix.prototype.copyTo = function(m) { + m.copyFrom(this); + return this; +}; + +Cut.Matrix.prototype.copyFrom = function(m) { + this.changed = true; + this.a = m.a; + this.b = m.b; + this.c = m.c; + this.d = m.d; + this.e = m.e; + this.f = m.f; + return this; +}; + +Cut.Matrix.prototype.identity = function() { + this.changed = true; + this.a = 1; + this.b = 0; + this.c = 0; + this.d = 1; + this.e = 0; + this.f = 0; + return this; +}; + +Cut.Matrix.prototype.rotate = function(angle) { + if (!angle) { + return this; + } + this.changed = true; + var u = angle ? Math.cos(angle) : 1; + // android bug may give bad 0 values + var v = angle ? Math.sin(angle) : 0; + var a = u * this.a - v * this.b; + var b = u * this.b + v * this.a; + var c = u * this.c - v * this.d; + var d = u * this.d + v * this.c; + var e = u * this.e - v * this.f; + var f = u * this.f + v * this.e; + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + return this; +}; + +Cut.Matrix.prototype.translate = function(x, y) { + if (!x && !y) { + return this; + } + this.changed = true; + this.e += x; + this.f += y; + return this; +}; + +Cut.Matrix.prototype.scale = function(x, y) { + if (!(x - 1) && !(y - 1)) { + return this; + } + this.changed = true; + this.a *= x; + this.b *= y; + this.c *= x; + this.d *= y; + this.e *= x; + this.f *= y; + return this; +}; + +Cut.Matrix.prototype.skew = function(x, y) { + if (!x && !y) { + return this; + } + this.changed = true; + var a = this.a + this.b * x; + var b = this.b + this.a * y; + var c = this.c + this.d * x; + var d = this.d + this.c * y; + var e = this.e + this.f * x; + var f = this.f + this.e * y; + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + return this; +}; + +Cut.Matrix.prototype.concat = function(m) { + this.changed = true; + var n = this; + var a = n.a * m.a + n.b * m.c; + var b = n.b * m.d + n.a * m.b; + var c = n.c * m.a + n.d * m.c; + var d = n.d * m.d + n.c * m.b; + var e = n.e * m.a + m.e + n.f * m.c; + var f = n.f * m.d + m.f + n.e * m.b; + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + return this; +}; + +Cut.Matrix.prototype.reverse = function() { + if (this.changed) { + this.changed = false; + this.reversed = this.reversed || new Cut.Matrix(); + var z = this.a * this.d - this.b * this.c; + this.reversed.a = this.d / z; + this.reversed.b = -this.b / z; + this.reversed.c = -this.c / z; + this.reversed.d = this.a / z; + this.reversed.e = (this.c * this.f - this.e * this.d) / z; + this.reversed.f = (this.e * this.b - this.a * this.f) / z; + } + return this.reversed; +}; + +Cut.Matrix.prototype.map = function(p, q) { + q = q || {}; + q.x = this.a * p.x + this.c * p.y + this.e; + q.y = this.b * p.x + this.d * p.y + this.f; + return q; +}; + +Cut.Matrix.prototype.mapX = function(x, y) { + return this.a * x + this.c * y + this.e; +}; + +Cut.Matrix.prototype.mapY = function(x, y) { + return this.b * x + this.d * y + this.f; +}; + +Cut.Math = {}; + +Cut.Math.random = function(min, max) { + if (arguments.length == 0) { + max = 1, min = 0; + } else if (arguments.length == 1) { + max = min, min = 0; + } + if (min == max) { + return min; + } + return Math.random() * (max - min) + min; +}; + +Cut.Math.rotate = function(num, min, max) { + if (arguments.length < 3) { + max = min || 0; + min = 0; + } + if (max > min) { + num = (num - min) % (max - min); + return num + (num < 0 ? max : min); + } else { + num = (num - max) % (min - max); + return num + (num <= 0 ? min : max); + } +}; + +Cut.Math.length = function(x, y) { + return Math.sqrt(x * x + y * y); +}; + +Cut._TS = 0; + +Cut._isCut = function(obj) { + return obj instanceof Cut; +}; + +Cut._isNum = function(x) { + return typeof x === "number"; +}; + +Cut._isFunc = function(x) { + return typeof x === "function"; +}; + +Cut._isArray = "isArray" in Array ? Array.isArray : function(value) { + return Object.prototype.toString.call(value) === "[object Array]"; +}; + +Cut._extend = function(base, extension, attribs) { + if (attribs) { + for (var i = 0; i < attribs.length; i++) { + var attr = attribs[i]; + base[attr] = extension[attr]; + } + } else { + for (var attr in extension) { + base[attr] = extension[attr]; + } + } + return base; +}; + +Cut._now = function() { + if (typeof performance !== "undefined" && performance.now) { + return function() { + return performance.now(); + }; + } else if (Date.now) { + return function() { + return Date.now(); + }; + } else { + return function() { + return +new Date(); + }; + } +}(); + +Cut._function = function(value) { + return typeof value === "function" ? value : function() { + return value; + }; +}; + +Cut._options = function(options) { + options.get = function(name) { + return typeof this[name] == "function" ? this[name]() : this[name]; + }; + options.extend = function(obj) { + obj = typeof obj === "object" ? obj : {}; + for (var name in this) { + obj[name] = name in obj ? obj[name] : this[name]; + } + return obj; + }; + options.mixin = function(obj) { + if (typeof obj === "object") { + for (var name in obj) { + this[name] = obj[name]; + } + } + return this; + }; + return options; +}; + +Cut._status = function(msg) { + if (!Cut._statusbox) { + var statusbox = Cut._statusbox = document.createElement("div"); + statusbox.style.position = "absolute"; + statusbox.style.color = "black"; + statusbox.style.background = "white"; + statusbox.style.zIndex = 999; + statusbox.style.top = "5px"; + statusbox.style.right = "5px"; + statusbox.style.padding = "1px 5px"; + document.body.appendChild(statusbox); + } + Cut._statusbox.innerHTML = msg; +}; + +Cut.Easing = function() { + function identity(t) { + return t; + } + var easings = {}, modes = {}; + function select(token) { + if (typeof token === "function") { + return token; + } + if (typeof token !== "string") { + return identity; + } + var match = /^(\w+)(-(in|out|in-out|out-in))?(\((.*)\))?$/i.exec(token); + if (!match || !match.length) { + return identity; + } + var name = match[1] || "", mode = match[3] || "in", params = match[5]; + mode = modes[mode]; + params = params ? params.replace(/\s+/, "").split(",") : []; + var easing = easings[name]; + var fn = easing ? easing.fn || easing.fc.apply(easing.fc, params) : identity; + return mode ? mode(fn) : fn; + } + select.addMode = function(mode) { + var names = mode.name.split(/\s+/); + for (var i = 0; i < names.length; i++) { + names[i] && (modes[names[i]] = mode.fn); + } + }; + select.add = function(easing) { + var names = easing.name.split(/\s+/); + for (var i = 0; i < names.length; i++) { + names[i] && (easings[names[i]] = easing); + } + }; + return select; +}(); + +Cut.Easing.addMode({ + name: "in", + fn: function(f) { + return function(t) { + return f(t); + }; + } +}); + +Cut.Easing.addMode({ + name: "out", + fn: function(f) { + return function(t) { + return 1 - f(1 - t); + }; + } +}); + +Cut.Easing.addMode({ + name: "in-out", + fn: function(f) { + return function(t) { + return t < .5 ? f(2 * t) / 2 : 1 - f(2 * (1 - t)) / 2; + }; + } +}); + +Cut.Easing.addMode({ + name: "out-in", + fn: function(f) { + return function(t) { + return t < .5 ? 1 - f(2 * (1 - t)) / 2 : f(2 * t) / 2; + }; + } +}); + +Cut.Easing.add({ + name: "linear", + fn: function(t) { + return t; + } +}); + +Cut.Easing.add({ + name: "quad", + fn: function(t) { + return t * t; + } +}); + +Cut.Easing.add({ + name: "cubic", + fn: function(t) { + return t * t * t; + } +}); + +Cut.Easing.add({ + name: "quart", + fn: function(t) { + return t * t * t * t; + } +}); + +Cut.Easing.add({ + name: "quint", + fn: function(t) { + return t * t * t * t * t; + } +}); + +Cut.Easing.add({ + name: "sin sine", + fn: function(t) { + return 1 - Math.cos(t * Math.PI / 2); + } +}); + +Cut.Easing.add({ + name: "exp", + fn: function(t) { + return t == 0 ? 0 : Math.pow(2, 10 * (t - 1)); + } +}); + +Cut.Easing.add({ + name: "circle circ", + fn: function(t) { + return 1 - Math.sqrt(1 - t * t); + } +}); + +Cut.Easing.add({ + name: "bounce", + fn: function(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; + } +}); + +Cut.Easing.add({ + name: "poly", + fc: function(e) { + return function(t) { + return Math.pow(t, e); + }; + } +}); + +Cut.Easing.add({ + name: "elastic", + fc: function(a, p) { + p = p || .45; + a = a || 1; + var s = p / (2 * Math.PI) * Math.asin(1 / a); + return function(t) { + return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p); + }; + } +}); + +Cut.Easing.add({ + name: "back", + fc: function(s) { + s = arguments.length ? s : 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; + } +}); + +if (typeof module !== "undefined") { + module.exports = Cut; +} + +if (typeof Cut === "undefined" && typeof require === "function") Cut = require("./cut-core"); + +DEBUG = (typeof DEBUG === "undefined" || DEBUG) && console; + +/** + * Default loader for web. + */ +window.addEventListener("load", function() { + DEBUG && console.log("On load."); + Cut.Loader.start(); +}, false); + +Cut.Loader.init = function(app, configs) { + configs = configs || {}; + var canvas = configs.canvas, context = null, full = false; + var width = 0, height = 0, ratio = 1; + if (typeof canvas === "string") { + canvas = document.getElementById(canvas); + } + if (!canvas) { + canvas = document.getElementById("cutjs"); + } + if (!canvas) { + full = true; + DEBUG && console.log("Creating element..."); + canvas = document.createElement("canvas"); + canvas.style.position = "absolute"; + var body = document.body; + body.insertBefore(canvas, body.firstChild); + } + context = canvas.getContext("2d"); + var devicePixelRatio = window.devicePixelRatio || 1; + var backingStoreRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1; + ratio = devicePixelRatio / backingStoreRatio; + var requestAnimationFrame = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.oRequestAnimationFrame || function(callback) { + return window.setTimeout(callback, 1e3 / 60); + }; + DEBUG && console.log("Creating root..."); + var root = Cut.root(requestAnimationFrame, function() { + context.setTransform(1, 0, 0, 1, 0, 0); + context.clearRect(0, 0, width, height); + this.render(context); + }); + app(root, canvas); + resize(); + window.addEventListener("resize", resize, false); + function resize() { + if (full) { + width = window.innerWidth > 0 ? window.innerWidth : screen.width; + height = window.innerHeight > 0 ? window.innerHeight : screen.height; + canvas.style.width = width + "px"; + canvas.style.height = height + "px"; + } else { + width = canvas.clientWidth; + height = canvas.clientHeight; + } + width *= ratio; + height *= ratio; + canvas.width = width; + canvas.height = height; + DEBUG && console.log("Resize: " + width + " x " + height + " / " + ratio); + root.resize(width, height, ratio); + } + return root; +}; + +Cut.Loader.loadImage = function(src, handleComplete, handleError) { + var image = new Image(); + DEBUG && console.log("Loading image: " + src); + image.onload = handleComplete; + image.onerror = handleError; + image.src = src; + return image; +}; + +if (typeof Cut === "undefined" && typeof require === "function") Cut = require("./cut-core"); + +DEBUG = (typeof DEBUG === "undefined" || DEBUG) && console; + +Cut.Mouse = function() { + Cut.Mouse.subscribe.apply(Cut.Mouse, arguments); +}; + +Cut.Mouse.CLICK = "click"; + +Cut.Mouse.START = "touchstart mousedown"; + +Cut.Mouse.MOVE = "touchmove mousemove"; + +Cut.Mouse.END = "touchend mouseup"; + +Cut.Mouse.subscribe = function(root, elem, move) { + elem = elem || document; + elem.addEventListener("click", mouseClick); + // TODO: with 'if' mouse doesn't work on touch screen, without 'if' two events + // on Android + if ("ontouchstart" in window) { + elem.addEventListener("touchstart", function(event) { + mouseStart(event, "touchmove"); + }); + elem.addEventListener("touchend", function(event) { + mouseEnd(event, "touchmove"); + }); + move && elem.addEventListener("touchmove", mouseMove); + } else { + elem.addEventListener("mousedown", function(event) { + mouseStart(event, "mousemove"); + }); + elem.addEventListener("mouseup", function(event) { + mouseEnd(event, "mousemove"); + }); + move && elem.addEventListener("mousemove", mouseMove); + } + var visitor = null; + var abs = { + x: 0, + y: 0, + toString: function() { + return (this.x | 0) + "x" + (this.y | 0); + } + }; + var rel = { + x: 0, + y: 0, + toString: function() { + return abs + " / " + (this.x | 0) + "x" + (this.y | 0); + } + }; + var clicked = { + x: 0, + y: 0, + state: 0 + }; + function mouseStart(event, moveName) { + update(event, elem); + DEBUG && console.log("Mouse Start: " + event.type + " " + abs); + !move && elem.addEventListener(moveName, mouseMove); + event.preventDefault(); + publish(event.type, event); + clicked.x = abs.x; + clicked.y = abs.y; + clicked.state = 1; + } + function mouseEnd(event, moveName) { + try { + // New xy is not valid/available, last xy is used instead. + DEBUG && console.log("Mouse End: " + event.type + " " + abs); + !move && elem.removeEventListener(moveName, mouseMove); + event.preventDefault(); + publish(event.type, event); + if (clicked.state == 1 && clicked.x == abs.x && clicked.y == abs.y) { + DEBUG && console.log("Mouse Click [+]"); + publish("click", event); + clicked.state = 2; + } else { + clicked.state = 0; + } + } catch (e) { + console && console.log(e); + } + } + function mouseMove(event) { + try { + update(event, elem); + // DEBUG && console.log('Mouse Move: ' + event.type + ' ' + + // abs); + event.preventDefault(); + publish(event.type, event); + } catch (e) { + console && console.log(e); + } + } + function mouseClick(event) { + try { + update(event, elem); + DEBUG && console.log("Mouse Click: " + event.type + " " + abs); + event.preventDefault(); + if (clicked.state != 2) { + publish(event.type, event); + } else { + DEBUG && console.log("Mouse Click [-]"); + } + } catch (e) { + console && console.log(e); + } + } + function publish(type, event) { + abs.type = type; + abs.event = event; + rel.x = abs.x; + rel.y = abs.y; + // visitor.count = 0; + root.visit(visitor); + } + visitor = { + reverse: true, + visible: true, + start: function(cut) { + if (!cut._listens(abs.type)) { + return true; + } + }, + end: function(cut) { + // visitor.count++; + var listeners = cut.listeners(abs.type); + if (!listeners) { + return; + } + cut.matrix().reverse().map(abs, rel); + if (cut === root || cut.attr("spy")) {} else if (rel.x < 0 || rel.x > cut._pin._width || rel.y < 0 || rel.y > cut._pin._height) { + return; + } + rel.raw = abs.event; + for (var l = 0; l < listeners.length; l++) { + if (listeners[l].call(cut, rel)) { + return; + } + } + } + }; + function update(event, elem) { + var isTouch = false; + // touch screen events + if (event.touches) { + if (event.touches.length) { + isTouch = true; + abs.x = event.touches[0].pageX; + abs.y = event.touches[0].pageY; + } else { + return; + } + } else { + // mouse events + abs.x = event.clientX; + abs.y = event.clientY; + // See http://goo.gl/JuVnF2 + if (document.body.scrollLeft || document.body.scrollTop) {} else if (document.documentElement) { + abs.x += document.documentElement.scrollLeft; + abs.y += document.documentElement.scrollTop; + } + } + // accounts for border + abs.x -= elem.clientLeft || 0; + abs.y -= elem.clientTop || 0; + var par = elem; + while (par) { + abs.x -= par.offsetLeft || 0; + abs.y -= par.offsetTop || 0; + if (!isTouch) { + // touch events offset scrolling with pageX/Y + // so scroll offset not needed for them + abs.x += par.scrollLeft || 0; + abs.y += par.scrollTop || 0; + } + par = par.offsetParent; + } + // see loader + abs.x *= root._ratio || 1; + abs.y *= root._ratio || 1; + } +}; + +if (typeof define === 'function' && define.amd) { // AMD + define('Cut', [], function() { + return Cut; + }); +} \ No newline at end of file diff --git a/ajax/libs/cutjs/0.2.1/cut.cordova.min.js b/ajax/libs/cutjs/0.2.1/cut.cordova.min.js new file mode 100644 index 000000000..4aa20c395 --- /dev/null +++ b/ajax/libs/cutjs/0.2.1/cut.cordova.min.js @@ -0,0 +1,8 @@ +/* + * CutJS 0.2.1 + * Copyright (c) 2013-2014 Ali Shakiba, Piqnt LLC and other contributors + * Available under the MIT license + * @license + */ +function Cut(){if(!(this instanceof Cut)){if("function"==typeof arguments[0])return Cut.Loader.load.apply(Cut.Loader,arguments);if("object"==typeof arguments[0])return Cut.Texture.add.apply(Cut.Texture,arguments)}Cut._stats.create++,this._id="",this._visible=!0,this._parent=null,this._next=null,this._prev=null,this._first=null,this._last=null,this._pin=new Cut.Pin(this),this._cutouts=[],this._tickBefore=[],this._tickAfter=[],this._alpha=1}DEBUG=("undefined"==typeof DEBUG||DEBUG)&&console,Cut._create=function(){if("function"==typeof Object.create)return function(){return Object.create.apply(null,arguments)};var t=function(){};return function(i){if(arguments.length>1)throw Error("Second argument is not supported!");if(null===i||"object"!=typeof i)throw Error("Invalid prototype!");return t.prototype=i,new t}}(),Cut._stats={create:0,tick:0,paint:0,paste:0},Cut.create=function(){return new Cut},Cut.prototype.render=function(t){Cut._stats.tick=Cut._stats.paint=Cut._stats.paste=0;var i=Cut._now(),e=this._lastTime?i-this._lastTime:0;this._lastTime=i,this._tick(e),this._paint(t),Cut._stats.fps=1e3/(Cut._now()-i)},Cut.prototype.MAX_ELAPSE=1/0,Cut.prototype._tick=function(t){if(this._visible){t>this.MAX_ELAPSE&&(t=this.MAX_ELAPSE),this._pin.tick();for(var i=this._tickBefore.length,e=0;i>e;e++)Cut._stats.tick++,this._tickBefore[e].call(this,t);for(var s,n=this._first;s=n;)n=s._next,s._tick(t);for(var i=this._tickAfter.length,e=0;i>e;e++)Cut._stats.tick++,this._tickAfter[e].call(this,t)}},Cut.prototype.tick=function(t,i){i?this._tickBefore.push(t):this._tickAfter.push(t)},Cut.prototype.untick=function(t){var i;t&&((i=this._tickBefore.indexOf(t))>=0?this._tickBefore.splice(i,1):(i=this._tickAfter.indexOf(t))>=0&&this._tickAfter.splice(i,1))},Cut.prototype._paint=function(t){if(this._visible){Cut._stats.paint++;var i=this._pin.absoluteMatrix();t.setTransform(i.a,i.b,i.c,i.d,i.e,i.f),this._alpha=this._pin._alpha*(this._parent?this._parent._alpha:1);var e=this._pin._textureAlpha*this._alpha;t.globalAlpha!=e&&(t.globalAlpha=e);for(var s=this._cutouts.length,n=0;s>n;n++)this._cutouts[n].paste(t);t.globalAlpha!=this._alpha&&(t.globalAlpha=this._alpha);for(var r,o=this._first;r=o;)o=r._next,r._paint(t)}},Cut.prototype.toString=function(){return"["+this._id+"]"},Cut.prototype.id=function(t){return arguments.length?(this._id=t,this):this._id},Cut.prototype.attr=function(t,i){return arguments.length<2?this._attrs?this._attrs[t]:void 0:((this._attrs?this._attrs:this._attrs={})[t]=i,this)},Cut.prototype.on=Cut.prototype.listen=function(t,i){if("function"!=typeof i)return this;t=(Cut._isArray(t)?t.join(" "):t).split(/\s+/);for(var e=0;e0&&this._listenOn(i)},Cut.prototype._listenOff=function(t){if("string"==typeof t)this._listenersCount=this._listenersCount||{},1==this._listenersCount[t]&&this._parent&&this._parent._listenOff(t),this._listenersCount[t]=Math.max((this._listenersCount[t]||0)-1,0);else if("object"==typeof t&&t._listenersCount)for(var i in t._listenersCount)t._listenersCount[i]>0&&this._listenOff(i)},Cut.prototype._listens=function(t){return this._listenersCount&&this._listenersCount[t]||0},Cut.prototype.touch=function(){return this._ts_touch=Cut._TS++,this._parent&&this._parent.touch(),this},Cut.prototype.pin=function(){if(!arguments.length)return this._pin;var t=this._pin.update.apply(this._pin,arguments);return t===this._pin?this:t},Cut.prototype.matrix=function(){return this._pin.absoluteMatrix(this,this._parent?this._parent._pin:null)},Cut.prototype.tween=function(t,i){return(this._tween||(this._tween=new Cut.Tween(this))).tween(t,i)},Cut.Tween=function(t){var i=this;this._owner=t,this._queue=[],this._next=null,t.tick(function(e){if(i._queue.length){this.touch();var s=i._queue[0];if(s.time?s.time+=e:s.time=1,!(s.time=1;r=r>1?1:r,r="function"==typeof s.easing?s.easing(r):r;var h=1-r;for(var n in s.keys)t.pin(n,s.start[n]*h+s.end[s.keys[n]]*r);o&&(i._queue.shift(),s.then&&s.then.call(t))}}},!0)},Cut.Tween.prototype.tween=function(t,i){return this._next={id:Cut._TS++,end:{},duration:t||400,delay:i||0},this},Cut.Tween.prototype.pin=function(){this._next!==this._queue[this._queue.length-1]&&(this._owner.touch(),this._queue.push(this._next));var t=this._next.end;return 1===arguments.length?Cut._extend(t,arguments[0]):2===arguments.length&&(t[arguments[0]]=arguments[1]),this},Cut.Tween.prototype.clear=function(t){for(var i;i=this._queue.shift();)t&&this._owner.pin(i.end);return this},Cut.Tween.prototype.then=function(t){return this._next.then=t,this},Cut.Tween.prototype.ease=function(t){return this._next.easing=Cut.Easing(t),this},Cut.root=function(t,i){return new Cut.Root(t,i)},Cut.Root=function(t,i){Cut.String.prototype._super.apply(this,arguments),this._paused=!0,this._render=i,this._request=t;var e=this,s=function(){e._paused!==!0&&(e._mo_touch=e._ts_touch,e._render(),e.request(),e._mo_touch==e._ts_touch&&e.pause())};this.request=function(){this._request.call(null,s)},this.on("viewport",function(t){return this._size={width:t.width,height:t.height},this._updateViewbox(),!0})},Cut.Root.prototype=Cut._create(Cut.prototype),Cut.Root.prototype._super=Cut,Cut.Root.prototype.constructor=Cut.Root,Cut.Root.prototype.viewbox=function(t,i,e){return this._viewbox={width:t,height:i,mode:/^(in|out)$/.test(e)?e:"in"},this._updateViewbox(),this},Cut.Root.prototype._updateViewbox=function(){var t=this._viewbox,i=this._size;i&&this.pin(t?{width:t.width,height:t.height,resizeMode:t.mode,resizeWidth:i.width,resizeHeight:i.height}:{width:i.width,height:i.height})},Cut.Root.prototype.start=function(){return this.resume()},Cut.Root.prototype.resume=function(t){return(this._paused||t)&&(this._paused=!1,this.request()),this},Cut.Root.prototype.pause=function(){return this._paused=!0,this},Cut.Root.prototype.touch=function(){return this.resume(),Cut.prototype.touch.apply(this,arguments)},Cut.Root.prototype.resize=function(t,i,e){this._ratio=e||1;var s={};return s.width=t,s.height=i,s.ratio=e,this.visit({start:function(t){return t._listens("viewport")?void t.publish("viewport",[s]):!0}}),this},Cut.image=function(t){var i=new Cut.Image;return t&&i.image(t),i},Cut.Image=function(){Cut.Image.prototype._super.apply(this,arguments)},Cut.Image.prototype=Cut._create(Cut.prototype),Cut.Image.prototype._super=Cut,Cut.Image.prototype.constructor=Cut.Image,Cut.Image.prototype.setImage=function(){this.image.apply(this,arguments)},Cut.Image.prototype.image=function(t){return this._cutouts[0]=Cut.Out.select(t),this._cutouts.length=1,this.pin({width:this._cutouts[0]?this._cutouts[0].dWidth():0,height:this._cutouts[0]?this._cutouts[0].dHeight():0}),this._cutout=this._cutouts[0].clone(),this},Cut.Image.prototype.cropX=function(t,i){return this.image(this._cutouts[0].cropX(t,i))},Cut.Image.prototype.cropY=function(t,i){return this.image(this._cutouts[0].cropY(t,i))},Cut.Image.prototype._slice=function(t){return this._cutouts[t]||(this._cutouts[t]=this._cutout.clone())},Cut.Image.prototype.tile=function(t){return this.untick(this._repeatTicker),this._repeatTicker=function(){if(this._mo_tile!=this._ts_touch){this._mo_tile=this._ts_touch;var i=this._cutout._left,e=this._cutout._right,s=this._cutout._top,n=this._cutout._bottom,r=this._cutout.dWidth()-i-e,o=this._cutout.dHeight()-s-n,h=this.pin("width");h=t?h:h-i-e;var u=this.pin("height");u=t?u:u-s-n;var a=t?-i:0,_=t?-s:0,c=0;s&&i&&this._slice(c++).cropX(i,0).cropY(s,0).offset(a,_),n&&i&&this._slice(c++).cropX(i,0).cropY(n,o+s).offset(a,_+u+s),s&&e&&this._slice(c++).cropX(e,r+i).cropY(s,0).offset(a+h+i,_),n&&e&&this._slice(c++).cropX(e,r+i).cropY(n,o+s).offset(a+h+i,_+u+s);for(var f=a+i,p=h;p>0;){var l=Math.min(r,p);p-=r;for(var d=_+s,g=u;g>0;){var m=Math.min(o,g);g-=o,this._slice(c++).cropX(l,i).cropY(m,s).offset(f,d),0>=p&&(i&&this._slice(c++).cropX(i,0).cropY(m,s).offset(a,d),e&&this._slice(c++).cropX(e,r+i).cropY(m,s).offset(f+l,d)),d+=m}s&&this._slice(c++).cropX(l,i).cropY(s,0).offset(f,_),n&&this._slice(c++).cropX(l,i).cropY(n,o+s).offset(f,d),f+=l}this._cutouts.length=c}},this.tick(this._repeatTicker),this},Cut.Image.prototype.stretch=function(t){return this.untick(this._repeatTicker),this._repeatTicker=function(){if(this._mo_stretch!=this._pin._ts_transform){this._mo_stretch=this._pin._ts_transform;var i=this._cutout._left,e=this._cutout._right,s=this._cutout._top,n=this._cutout._bottom,r=this._cutout.dWidth(),o=this._cutout.dHeight(),h=this.pin("width"),u=this.pin("height");h=t?h+i+e:Math.max(h,i+e),u=t?u+s+n:Math.max(u,s+n);var a=0;s&&i&&this._slice(a++).cropX(i,0).cropY(s,0).offset(0,0),n&&i&&this._slice(a++).cropX(i,0).cropY(n,o-n).offset(0,u-n),s&&e&&this._slice(a++).cropX(e,r-e).cropY(s,0).offset(h-e,0),n&&e&&this._slice(a++).cropX(e,r-e).cropY(n,o-n).offset(h-e,u-n),s&&this._slice(a++).cropX(r-i-e,i).cropY(s,0).offset(i,0).dWidth(h-i-e),n&&this._slice(a++).cropX(r-i-e,i).cropY(n,o-n).offset(i,u-n).dWidth(h-i-e),i&&this._slice(a++).cropX(i,0).cropY(o-s-n,s).offset(0,s).dHeight(u-s-n),e&&this._slice(a++).cropX(e,r-e).cropY(o-s-n,s).offset(h-e,s).dHeight(u-s-n),this._slice(a++).cropX(r-i-e,i).cropY(o-s-n,s).offset(i,s).dWidth(h-i-e).dHeight(u-s-n),this._cutouts.length=a}},this.tick(this._repeatTicker),this},Cut.anim=function(t,i){var e=(new Cut.Anim).frames(t).gotoFrame(0);return i&&e.fps(i),e},Cut.Anim=function(){Cut.Anim.prototype._super.apply(this,arguments),this._fps=Cut.Anim.FPS,this._ft=1e3/this._fps,this._time=0,this._frame=0,this._frames=[],this._labels={},this.tick(function(){if(this._time&&this._frames.length>1){var t=Cut._now()-this._time;if(t>=this._ft){var i=t<2*this._ft?1:Math.floor(t/this._ft);this._time+=i*this._ft,this.moveFrame(i),this._repeat&&(this._repeat-=i)<=0&&(this.stop(),this._callback&&this._callback())}this.touch()}},!1)},Cut.Anim.prototype=Cut._create(Cut.prototype),Cut.Anim.prototype._super=Cut,Cut.Anim.prototype.constructor=Cut.Anim,Cut.Anim.FPS=22,Cut.Anim.prototype.fps=function(t){return arguments.length?(this._fps=t||Cut.Anim.FPS,this._ft=1e3/this._fps,this):this._fps},Cut.Anim.prototype.setFrames=function(){this.frames.apply(this,arguments)},Cut.Anim.prototype.frames=function(t){if(this._time=this._time||0,this._frame=0,this._frames=[],this._labels={},t=Cut.Out.select(t,!0),t&&t.length)for(var i=0;i=0;t--)e[t].pause()},resume:function(){for(var t=i.length-1;t>=0;t--)e[t].resume()},getImage:function(t){return s[t]},addImage:function(t,i){return s[i]=t,this}}}(),Cut.Texture=function(t){function i(){return r||(r=Cut.Loader.getImage(t.imagePath)),r}function e(i){if(!i||i.isCutout)return i;"function"==typeof t.map?i=t.map(i):"function"==typeof t.filter&&(i=t.filter(i));var e=t.ratio||1;1!=e&&(i.x*=e,i.y*=e,i.width*=e,i.height*=e,i.top*=e,i.bottom*=e,i.left*=e,i.right*=e);var s=t.trim||0;return s&&(i.x+=s,i.y+=s,i.width-=2*s,i.height-=2*s,i.top-=s,i.bottom-=s,i.left-=s,i.right-=s),i}function s(e){return e.isCutout||(e=new Cut.Out(e,i,t.imageRatio)),e}t.cutouts=t.cutouts||[];var n={},r=null;this.getImagePath=function(){return t.imagePath};for(var o=0;oe)throw"Invalid selector: '"+t+"'";var s=[t.slice(0,e),t.slice(e+1)],n=Cut.Texture._list[s[0]];if(null==n)throw"Texture not found: '"+t+"'";return n.select(s[1],i)},Cut.drawing=function(){return Cut.image(Cut.Out.drawing.apply(Cut.Out,arguments))},Cut.Out.drawing=function(){var t=document.createElement("canvas"),i=t.getContext("2d"),e={},s=0;"object"==typeof arguments[s]?e=arguments[s++]:("string"==typeof arguments[s]&&(e.name=arguments[s++]),e.width=arguments[s++],e.height=arguments[s++],"number"==typeof arguments[s]&&(e.ratio=arguments[s++]),e.x=0,e.y=0),e.ratio=e.ratio||1,e.name=e.name||1e3*Math.random()|0,t.width=Math.ceil(e.width*e.ratio),t.height=Math.ceil(e.height*e.ratio);var n=new Cut.Out(e,t,e.ratio);return"function"==typeof arguments[arguments.length-1]&&arguments[arguments.length-1].call(n,i,e.ratio),n},Cut.Pin=function(t){this._owner=t,this._parent=null,this._relativeMatrix=new Cut.Matrix,this._absoluteMatrix=new Cut.Matrix,this.reset()},Cut.Pin.prototype.reset=function(){this._textureAlpha=1,this._alpha=1,this._width=0,this._height=0,this._scaleX=1,this._scaleY=1,this._skewX=0,this._skewY=0,this._rotation=0,this._pivoted=!1,this._pivotX=null,this._pivotY=null,this._handled=!1,this._handleX=0,this._handleY=0,this._aligned=!1,this._alignX=0,this._alignY=0,this._offsetX=0,this._offsetY=0,this._boxX=0,this._boxY=0,this._boxWidth=this._width,this._boxHeight=this._height,this._ts_translate=Cut._TS++,this._ts_transform=Cut._TS++,this._ts_matrix=Cut._TS++},Cut.Pin.prototype.tick=function(){return this._parent=this._owner._parent&&this._owner._parent._pin,this._handled&&this._mo_handle!=this._ts_transform&&(this._mo_handle=this._ts_transform,this._ts_translate=Cut._TS++),this._aligned&&this._parent&&this._mo_align!=this._parent._ts_transform&&(this._mo_align=this._parent._ts_transform,this._ts_translate=Cut._TS++),this},Cut.Pin.prototype.toString=function(){return this._owner.id()+" ["+this._alignX+", "+this._alignY+"] ["+this._handleX+", "+this._handleY+"] ["+(this._parent?this._parent._owner.id():null)+"]"},Cut.Pin.prototype.absoluteMatrix=function(){var t=Math.max(this._ts_transform,this._ts_translate,this._parent?this._parent._ts_matrix:0);if(this._mo_abs==t)return this._absoluteMatrix;this._mo_abs=t;var i=this._absoluteMatrix;return i.copyFrom(this.relativeMatrix()),this._parent&&i.concat(this._parent._absoluteMatrix),this._ts_matrix=Cut._TS++,i},Cut.Pin.prototype.relativeMatrix=function(){var t=Math.max(this._ts_transform,this._ts_translate,this._parent?this._parent._ts_transform:0);if(this._mo_rel==t)return this._relativeMatrix;this._mo_rel=t;var i=this._relativeMatrix;if(i.identity(),this._pivoted&&i.translate(-this._pivotX*this._width,-this._pivotY*this._height),i.scale(this._scaleX,this._scaleY),i.skew(this._skewX,this._skewY),i.rotate(this._rotation),this._pivoted&&i.translate(this._pivotX*this._width,this._pivotY*this._height),this._pivoted)this._boxX=0,this._boxY=0,this._boxWidth=this._width,this._boxHeight=this._height;else{var e,s,n=i;n.a>0&&n.c>0||n.a<0&&n.c<0?(e=0,s=n.a*this._width+n.c*this._height):(e=n.a*this._width,s=n.c*this._height),e>s?(this._boxX=s,this._boxWidth=e-s):(this._boxX=e,this._boxWidth=s-e),n.b>0&&n.d>0||n.b<0&&n.d<0?(e=0,s=n.b*this._width+n.d*this._height):(e=n.b*this._width,s=n.d*this._height),e>s?(this._boxY=s,this._boxHeight=e-s):(this._boxY=e,this._boxHeight=s-e)}return this._x=this._offsetX,this._y=this._offsetY,this._x-=this._boxX+this._handleX*this._boxWidth,this._y-=this._boxY+this._handleY*this._boxHeight,this._aligned&&this._parent&&(this._parent.relativeMatrix(),this._x+=this._alignX*this._parent._width,this._y+=this._alignY*this._parent._height),i.translate(this._x,this._y),this._relativeMatrix},Cut.Pin._SINGLE={},Cut.Pin.prototype.update=function(){if(1==arguments.length&&"string"==typeof arguments[0])return this["_"+arguments[0]];this._transform_flag=!1,this._translate_flag=!1;var t=null,i=null,e=null;if(2==arguments.length&&"string"==typeof arguments[0]){for(i in Cut.Pin._SINGLE)delete Cut.Pin._SINGLE[i];(t=Cut.Pin._SINGLE)[arguments[0]]=arguments[1]}else 1==arguments.length&&"object"==typeof arguments[0]&&(t=arguments[0]);if(t)for(i in t)"undefined"!=typeof(e=t[i])&&(setter=Cut.Pin._setters[i])&&setter.call(Cut.Pin._setters,this,e,t);return this._translate_flag&&(this._translate_flag=!1,this._ts_translate=Cut._TS++),this._transform_flag&&(this._transform_flag=!1,this._ts_transform=Cut._TS++),this._owner&&(this._owner._ts_pin=Cut._TS++,this._owner.touch()),this},Cut.Pin._setters={alpha:function(t,i){t._alpha=i},textureAlpha:function(t,i){t._textureAlpha=i},width:function(t,i){t._width_=i,t._width=i,t._transform_flag=!0},height:function(t,i){t._height_=i,t._height=i,t._transform_flag=!0},scale:function(t,i){t._scaleX=i,t._scaleY=i,t._transform_flag=!0},scaleX:function(t,i){t._scaleX=i,t._transform_flag=!0},scaleY:function(t,i){t._scaleY=i,t._transform_flag=!0},skew:function(t,i){t._skewX=i,t._skewY=i,t._transform_flag=!0},skewX:function(t,i){t._skewX=i,t._transform_flag=!0},skewY:function(t,i){t._skewY=i,t._transform_flag=!0},rotation:function(t,i){t._rotation=i,t._transform_flag=!0},pivot:function(t,i){t._pivotX=i,t._pivotY=i,t._pivoted=!0,t._transform_flag=!0},pivotX:function(t,i){t._pivotX=i,t._pivoted=!0,t._transform_flag=!0},pivotY:function(t,i){t._pivotY=i,t._pivoted=!0,t._transform_flag=!0},offset:function(t,i){t._offsetX=i,t._offsetY=i,t._translate_flag=!0},offsetX:function(t,i){t._offsetX=i,t._translate_flag=!0},offsetY:function(t,i){t._offsetY=i,t._translate_flag=!0},align:function(){this.alignX.apply(this,arguments),this.alignY.apply(this,arguments)},alignX:function(t,i,e){t._alignX=i,t._aligned=!0,t._translate_flag=!0,this.handleX(t,i,e)},alignY:function(t,i,e){t._alignY=i,t._aligned=!0,t._translate_flag=!0,this.handleY(t,i,e)},handle:function(t,i,e){this.handleX(t,i,e),this.handleY(t,i,e)},handleX:function(t,i){t._handleX=i,t._handled=!0,t._translate_flag=!0},handleY:function(t,i){t._handleY=i,t._handled=!0,t._translate_flag=!0},resizeMode:function(t,i,e){Cut._isNum(e.resizeWidth)&&Cut._isNum(e.resizeHeight)&&(this.resizeWidth(t,e.resizeWidth,e,!0),this.resizeHeight(t,e.resizeHeight,e,!0),"out"==i?t._scaleX=t._scaleY=Math.max(t._scaleX,t._scaleY):"in"==i&&(t._scaleX=t._scaleY=Math.min(t._scaleX,t._scaleY)),t._width=e.resizeWidth/t._scaleX,t._height=e.resizeHeight/t._scaleY)},resizeWidth:function(t,i,e,s){(!e.resizeMode||s)&&(t._scaleX=i/t._width_,t._width=t._width_,t._transform_flag=!0)},resizeHeight:function(t,i,e,s){(!e.resizeMode||s)&&(t._scaleY=i/t._height_,t._height=t._height_,t._transform_flag=!0)},scaleMode:function(t,i,e){Cut._isNum(e.scaleWidth)&&Cut._isNum(e.scaleHeight)&&(this.scaleWidth(t,e.scaleWidth,e,!0),this.scaleHeight(t,e.scaleHeight,e,!0),"out"==i?t._scaleX=t._scaleY=Math.max(t._scaleX,t._scaleY):"in"==i&&(t._scaleX=t._scaleY=Math.min(t._scaleX,t._scaleY)))},scaleWidth:function(t,i,e,s){(!e.scaleMode||s)&&(t._scaleX=i/t._width_,t._transform_flag=!0)},scaleHeight:function(t,i,e,s){(!e.scaleMode||s)&&(t._scaleY=i/t._height_,t._transform_flag=!0)},matrix:function(t,i,e){this.scaleX(t,i.a,e),this.skewX(t,i.c/i.d,e),this.skewY(t,i.b/i.a,e),this.scaleY(t,i.d,e),this.offsetX(t,i.e,e),this.offsetY(t,i.f,e),this.rotation(t,0,e)}},Cut.Matrix=function(t,i,e,s,n,r){this.changed=!0,this.a=t||1,this.b=i||0,this.c=e||0,this.d=s||1,this.e=n||0,this.f=r||0},Cut.Matrix.prototype.toString=function(){return"["+this.a+", "+this.b+", "+this.c+", "+this.d+", "+this.e+", "+this.f+"]"},Cut.Matrix.prototype.clone=function(){return new Cut.Matrix(this.a,this.b,this.c,this.d,this.e,this.f)},Cut.Matrix.prototype.copyTo=function(t){return t.copyFrom(this),this},Cut.Matrix.prototype.copyFrom=function(t){return this.changed=!0,this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.e=t.e,this.f=t.f,this},Cut.Matrix.prototype.identity=function(){return this.changed=!0,this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0,this},Cut.Matrix.prototype.rotate=function(t){if(!t)return this;this.changed=!0;var i=t?Math.cos(t):1,e=t?Math.sin(t):0,s=i*this.a-e*this.b,n=i*this.b+e*this.a,r=i*this.c-e*this.d,o=i*this.d+e*this.c,h=i*this.e-e*this.f,u=i*this.f+e*this.e;return this.a=s,this.b=n,this.c=r,this.d=o,this.e=h,this.f=u,this},Cut.Matrix.prototype.translate=function(t,i){return t||i?(this.changed=!0,this.e+=t,this.f+=i,this):this},Cut.Matrix.prototype.scale=function(t,i){return t-1||i-1?(this.changed=!0,this.a*=t,this.b*=i,this.c*=t,this.d*=i,this.e*=t,this.f*=i,this):this},Cut.Matrix.prototype.skew=function(t,i){if(!t&&!i)return this;this.changed=!0;var e=this.a+this.b*t,s=this.b+this.a*i,n=this.c+this.d*t,r=this.d+this.c*i,o=this.e+this.f*t,h=this.f+this.e*i;return this.a=e,this.b=s,this.c=n,this.d=r,this.e=o,this.f=h,this},Cut.Matrix.prototype.concat=function(t){this.changed=!0;var i=this,e=i.a*t.a+i.b*t.c,s=i.b*t.d+i.a*t.b,n=i.c*t.a+i.d*t.c,r=i.d*t.d+i.c*t.b,o=i.e*t.a+t.e+i.f*t.c,h=i.f*t.d+t.f+i.e*t.b;return this.a=e,this.b=s,this.c=n,this.d=r,this.e=o,this.f=h,this},Cut.Matrix.prototype.reverse=function(){if(this.changed){this.changed=!1,this.reversed=this.reversed||new Cut.Matrix; +var t=this.a*this.d-this.b*this.c;this.reversed.a=this.d/t,this.reversed.b=-this.b/t,this.reversed.c=-this.c/t,this.reversed.d=this.a/t,this.reversed.e=(this.c*this.f-this.e*this.d)/t,this.reversed.f=(this.e*this.b-this.a*this.f)/t}return this.reversed},Cut.Matrix.prototype.map=function(t,i){return i=i||{},i.x=this.a*t.x+this.c*t.y+this.e,i.y=this.b*t.x+this.d*t.y+this.f,i},Cut.Matrix.prototype.mapX=function(t,i){return this.a*t+this.c*i+this.e},Cut.Matrix.prototype.mapY=function(t,i){return this.b*t+this.d*i+this.f},Cut.Math={},Cut.Math.random=function(t,i){return 0==arguments.length?(i=1,t=0):1==arguments.length&&(i=t,t=0),t==i?t:Math.random()*(i-t)+t},Cut.Math.rotate=function(t,i,e){return arguments.length<3&&(e=i||0,i=0),e>i?(t=(t-i)%(e-i),t+(0>t?e:i)):(t=(t-e)%(i-e),t+(0>=t?i:e))},Cut.Math.length=function(t,i){return Math.sqrt(t*t+i*i)},Cut._TS=0,Cut._isCut=function(t){return t instanceof Cut},Cut._isNum=function(t){return"number"==typeof t},Cut._isFunc=function(t){return"function"==typeof t},Cut._isArray="isArray"in Array?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},Cut._extend=function(t,i,e){if(e)for(var s=0;si?t(2*i)/2:1-t(2*(1-i))/2}}}),Cut.Easing.addMode({name:"out-in",fn:function(t){return function(i){return.5>i?1-t(2*(1-i))/2:t(2*i)/2}}}),Cut.Easing.add({name:"linear",fn:function(t){return t}}),Cut.Easing.add({name:"quad",fn:function(t){return t*t}}),Cut.Easing.add({name:"cubic",fn:function(t){return t*t*t}}),Cut.Easing.add({name:"quart",fn:function(t){return t*t*t*t}}),Cut.Easing.add({name:"quint",fn:function(t){return t*t*t*t*t}}),Cut.Easing.add({name:"sin sine",fn:function(t){return 1-Math.cos(t*Math.PI/2)}}),Cut.Easing.add({name:"exp",fn:function(t){return 0==t?0:Math.pow(2,10*(t-1))}}),Cut.Easing.add({name:"circle circ",fn:function(t){return 1-Math.sqrt(1-t*t)}}),Cut.Easing.add({name:"bounce",fn:function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}}),Cut.Easing.add({name:"poly",fc:function(t){return function(i){return Math.pow(i,t)}}}),Cut.Easing.add({name:"elastic",fc:function(t,i){i=i||.45,t=t||1;var e=i/(2*Math.PI)*Math.asin(1/t);return function(s){return 1+t*Math.pow(2,-10*s)*Math.sin(2*(s-e)*Math.PI/i)}}}),Cut.Easing.add({name:"back",fc:function(t){return t=arguments.length?t:1.70158,function(i){return i*i*((t+1)*i-t)}}}),"undefined"!=typeof module&&(module.exports=Cut),"undefined"==typeof Cut&&"function"==typeof require&&(Cut=require("./cut-core")),DEBUG=("undefined"==typeof DEBUG||DEBUG)&&console,window.addEventListener("load",function(){DEBUG&&console.log("On load."),Cut.Loader.start()},!1),Cut.Loader.init=function(t,i){function e(){r?(o=window.innerWidth>0?window.innerWidth:screen.width,h=window.innerHeight>0?window.innerHeight:screen.height,s.style.width=o+"px",s.style.height=h+"px"):(o=s.clientWidth,h=s.clientHeight),o*=u,h*=u,s.width=o,s.height=h,DEBUG&&console.log("Resize: "+o+" x "+h+" / "+u),p.resize(o,h,u)}i=i||{};var s=i.canvas,n=null,r=!1,o=0,h=0,u=1;if("string"==typeof s&&(s=document.getElementById(s)),s||(s=document.getElementById("cutjs")),!s){r=!0,DEBUG&&console.log("Creating element..."),s=document.createElement("canvas"),s.style.position="absolute";var a=document.body;a.insertBefore(s,a.firstChild)}n=s.getContext("2d");var _=window.devicePixelRatio||1,c=n.webkitBackingStorePixelRatio||n.mozBackingStorePixelRatio||n.msBackingStorePixelRatio||n.oBackingStorePixelRatio||n.backingStorePixelRatio||1;u=_/c;var f=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)};DEBUG&&console.log("Creating root...");var p=Cut.root(f,function(){n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,o,h),this.render(n)});return t(p,s),e(),window.addEventListener("resize",e,!1),p},Cut.Loader.loadImage=function(t,i,e){var s=new Image;return DEBUG&&console.log("Loading image: "+t),s.onload=i,s.onerror=e,s.src=t,s},"undefined"==typeof Cut&&"function"==typeof require&&(Cut=require("./cut-core")),DEBUG=("undefined"==typeof DEBUG||DEBUG)&&console,Cut.Mouse=function(){Cut.Mouse.subscribe.apply(Cut.Mouse,arguments)},Cut.Mouse.CLICK="click",Cut.Mouse.START="touchstart mousedown",Cut.Mouse.MOVE="touchmove mousemove",Cut.Mouse.END="touchend mouseup",Cut.Mouse.subscribe=function(t,i,e){function s(t,s){u(t,i),DEBUG&&console.log("Mouse Start: "+t.type+" "+_),!e&&i.addEventListener(s,r),t.preventDefault(),h(t.type,t),f.x=_.x,f.y=_.y,f.state=1}function n(t,s){try{DEBUG&&console.log("Mouse End: "+t.type+" "+_),!e&&i.removeEventListener(s,r),t.preventDefault(),h(t.type,t),1==f.state&&f.x==_.x&&f.y==_.y?(DEBUG&&console.log("Mouse Click [+]"),h("click",t),f.state=2):f.state=0}catch(n){console&&console.log(n)}}function r(t){try{u(t,i),t.preventDefault(),h(t.type,t)}catch(e){console&&console.log(e)}}function o(t){try{u(t,i),DEBUG&&console.log("Mouse Click: "+t.type+" "+_),t.preventDefault(),2!=f.state?h(t.type,t):DEBUG&&console.log("Mouse Click [-]")}catch(e){console&&console.log(e)}}function h(i,e){_.type=i,_.event=e,c.x=_.x,c.y=_.y,t.visit(a)}function u(i,e){var s=!1;if(i.touches){if(!i.touches.length)return;s=!0,_.x=i.touches[0].pageX,_.y=i.touches[0].pageY}else _.x=i.clientX,_.y=i.clientY,document.body.scrollLeft||document.body.scrollTop||document.documentElement&&(_.x+=document.documentElement.scrollLeft,_.y+=document.documentElement.scrollTop);_.x-=e.clientLeft||0,_.y-=e.clientTop||0;for(var n=e;n;)_.x-=n.offsetLeft||0,_.y-=n.offsetTop||0,s||(_.x+=n.scrollLeft||0,_.y+=n.scrollTop||0),n=n.offsetParent;_.x*=t._ratio||1,_.y*=t._ratio||1}i=i||document,i.addEventListener("click",o),"ontouchstart"in window?(i.addEventListener("touchstart",function(t){s(t,"touchmove")}),i.addEventListener("touchend",function(t){n(t,"touchmove")}),e&&i.addEventListener("touchmove",r)):(i.addEventListener("mousedown",function(t){s(t,"mousemove")}),i.addEventListener("mouseup",function(t){n(t,"mousemove")}),e&&i.addEventListener("mousemove",r));var a=null,_={x:0,y:0,toString:function(){return(0|this.x)+"x"+(0|this.y)}},c={x:0,y:0,toString:function(){return _+" / "+(0|this.x)+"x"+(0|this.y)}},f={x:0,y:0,state:0};a={reverse:!0,visible:!0,start:function(t){return t._listens(_.type)?void 0:!0},end:function(i){var e=i.listeners(_.type);if(e){if(i.matrix().reverse().map(_,c),i===t||i.attr("spy"));else if(c.x<0||c.x>i._pin._width||c.y<0||c.y>i._pin._height)return;c.raw=_.event;for(var s=0;s 1) { + throw Error("Second argument is not supported!"); + } + if (proto === null || typeof proto != "object") { + throw Error("Invalid prototype!"); + } + F.prototype = proto; + return new F(); + }; + } +}(); + +Cut._stats = { + create: 0, + tick: 0, + paint: 0, + paste: 0 +}; + +Cut.create = function() { + return new Cut(); +}; + +Cut.prototype.render = function(context) { + Cut._stats.tick = Cut._stats.paint = Cut._stats.paste = 0; + var now = Cut._now(); + var elapsed = this._lastTime ? now - this._lastTime : 0; + this._lastTime = now; + this._tick(elapsed); + this._paint(context); + Cut._stats.fps = 1e3 / (Cut._now() - now); +}; + +Cut.prototype.MAX_ELAPSE = Infinity; + +Cut.prototype._tick = function(elapsed) { + if (!this._visible) { + return; + } + if (elapsed > this.MAX_ELAPSE) { + elapsed = this.MAX_ELAPSE; + } + this._pin.tick(); + var length = this._tickBefore.length; + for (var i = 0; i < length; i++) { + Cut._stats.tick++; + this._tickBefore[i].call(this, elapsed); + } + var child, next = this._first; + while (child = next) { + next = child._next; + child._tick(elapsed); + } + var length = this._tickAfter.length; + for (var i = 0; i < length; i++) { + Cut._stats.tick++; + this._tickAfter[i].call(this, elapsed); + } +}; + +Cut.prototype.tick = function(ticker, before) { + if (before) { + this._tickBefore.push(ticker); + } else { + this._tickAfter.push(ticker); + } +}; + +Cut.prototype.untick = function(ticker) { + var i; + if (!ticker) {} else if ((i = this._tickBefore.indexOf(ticker)) >= 0) { + this._tickBefore.splice(i, 1); + } else if ((i = this._tickAfter.indexOf(ticker)) >= 0) { + this._tickAfter.splice(i, 1); + } +}; + +Cut.prototype._paint = function(context) { + if (!this._visible) { + return; + } + Cut._stats.paint++; + var m = this._pin.absoluteMatrix(); + context.setTransform(m.a, m.b, m.c, m.d, m.e, m.f); + this._alpha = this._pin._alpha * (this._parent ? this._parent._alpha : 1); + var alpha = this._pin._textureAlpha * this._alpha; + if (context.globalAlpha != alpha) { + context.globalAlpha = alpha; + } + var length = this._cutouts.length; + for (var i = 0; i < length; i++) { + this._cutouts[i].paste(context); + } + if (context.globalAlpha != this._alpha) { + context.globalAlpha = this._alpha; + } + var child, next = this._first; + while (child = next) { + next = child._next; + child._paint(context); + } +}; + +Cut.prototype.toString = function() { + return "[" + this._id + "]"; +}; + +Cut.prototype.id = function(id) { + if (!arguments.length) { + return this._id; + } + this._id = id; + return this; +}; + +Cut.prototype.attr = function(name, value) { + if (arguments.length < 2) { + return this._attrs ? this._attrs[name] : undefined; + } + (this._attrs ? this._attrs : this._attrs = {})[name] = value; + return this; +}; + +Cut.prototype.on = Cut.prototype.listen = function(types, listener) { + if (typeof listener !== "function") { + return this; + } + types = (Cut._isArray(types) ? types.join(" ") : types).split(/\s+/); + for (var i = 0; i < types.length; i++) { + var type = types[i]; + if (type) { + this._listeners = this._listeners || {}; + this._listeners[type] = this._listeners[type] || []; + this._listeners[type].push(listener); + this._listenOn(type); + } + } + return this; +}; + +Cut.prototype.listeners = function(type) { + return this._listeners && this._listeners[type]; +}; + +Cut.prototype.publish = function(name, args) { + var listeners = this.listeners(name); + if (!listeners || !listeners.length) { + return 0; + } + for (var l = 0; l < listeners.length; l++) { + listeners[l].apply(this, args); + } + return listeners.length; +}; + +Cut.prototype.trigger = function(name, args) { + this.publish(name, args); + return this; +}; + +Cut.prototype.visit = function(visitor) { + var reverse = visitor.reverse; + var visible = visitor.visible; + if (visitor.start && visitor.start(this)) { + return; + } + var child, next = reverse ? this.last(visible) : this.first(visible); + while (child = next) { + next = reverse ? child.prev(visible) : child.next(visible); + if (child.visit(visitor, reverse)) { + return true; + } + } + return visitor.end && visitor.end(this); +}; + +Cut.prototype.visible = function(visible) { + if (!arguments.length) { + return this._visible; + } + this._visible = visible; + this._parent && (this._parent._ts_children = Cut._TS++); + this._ts_pin = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype.hide = function() { + return this.visible(false); +}; + +Cut.prototype.show = function() { + return this.visible(true); +}; + +Cut.prototype.parent = function() { + return this._parent; +}; + +Cut.prototype.next = function(visible) { + var next = this._next; + while (next && visible && !next._visible) { + next = next._next; + } + return next; +}; + +Cut.prototype.prev = function(visible) { + var prev = this._prev; + while (prev && visible && !prev._visible) { + prev = prev._prev; + } + return prev; +}; + +Cut.prototype.first = function(visible) { + var next = this._first; + while (next && visible && !next._visible) { + next = next._next; + } + return next; +}; + +Cut.prototype.last = function(visible) { + var prev = this._last; + while (prev && visible && !prev._visible) { + prev = prev._prev; + } + return prev; +}; + +Cut.prototype.append = function() { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i].appendTo(this); + } + return this; +}; + +Cut.prototype.prepend = function() { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i].prependTo(this); + } + return this; +}; + +Cut.prototype.appendTo = function(parent) { + if (!parent) { + throw "Parent is null!"; + } + if (!Cut._isCut(parent)) { + throw "It is not a Cut node!"; + } + this.remove(); + if (parent._last) { + parent._last._next = this; + this._prev = parent._last; + } + this._parent = parent; + parent._last = this; + if (!parent._first) { + parent._first = this; + } + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + parent._ts_children = Cut._TS++; + parent.touch(); + return this; +}; + +Cut.prototype.prependTo = function(parent) { + if (!parent) { + throw "Parent is null!"; + } + if (!Cut._isCut(parent)) { + throw "It is not a Cut node!"; + } + this.remove(); + if (parent._first) { + parent._first._prev = this; + this._next = parent._first; + } + this._parent = parent; + parent._first = this; + if (!parent._last) { + parent._last = this; + } + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + parent._ts_children = Cut._TS++; + parent.touch(); + return this; +}; + +Cut.prototype.insertNext = function() { + if (arguments.length) { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i] && arguments[i].insertAfter(this); + } + } + return this; +}; + +Cut.prototype.insertPrev = function() { + if (arguments.length) { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i] && arguments[i].insertBefore(this); + } + } + return this; +}; + +Cut.prototype.insertBefore = function(next) { + if (!next) { + throw "Next is null!"; + } + if (!Cut._isCut(next)) { + throw "It is not a Cut node!"; + } + this.remove(); + var parent = next._parent; + var prev = next._prev; + next._prev = this; + prev && (prev._next = this) || parent && (parent._first = this); + this._parent = parent; + this._prev = prev; + this._next = next; + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype.insertAfter = function(prev) { + if (!prev) { + throw "Prev is null!"; + } + if (!Cut._isCut(prev)) { + throw "It is not a Cut node!"; + } + this.remove(); + var parent = prev._parent; + var next = prev._next; + prev._next = this; + next && (next._prev = this) || parent && (parent._last = this); + this._parent = parent; + this._prev = prev; + this._next = next; + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype.remove = function() { + if (arguments.length) { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i] && arguments[i].remove(); + } + return this; + } + if (this._prev) { + this._prev._next = this._next; + } + if (this._next) { + this._next._prev = this._prev; + } + if (this._parent) { + if (this._parent._first === this) { + this._parent._first = this._next; + } + if (this._parent._last === this) { + this._parent._last = this._prev; + } + this._parent._listenOff(this); + this._parent._ts_children = Cut._TS++; + this._parent.touch(); + } + this._prev = this._next = this._parent = null; + this._ts_parent = Cut._TS++; + // this._parent.touch(); + return this; +}; + +Cut.prototype.empty = function() { + var child, next = this._first; + while (child = next) { + next = child._next; + child._prev = child._next = child._parent = null; + this._listenOff(child); + } + this._first = this._last = null; + this._ts_children = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype._listenOn = function(obj) { + if (typeof obj === "string") { + this._listenersCount = this._listenersCount || {}; + if (!this._listenersCount[obj] && this._parent) { + this._parent._listenOn(obj); + } + this._listenersCount[obj] = (this._listenersCount[obj] || 0) + 1; + } else if (typeof obj === "object") { + if (obj._listenersCount) { + for (var type in obj._listenersCount) { + if (obj._listenersCount[type] > 0) { + this._listenOn(type); + } + } + } + } +}; + +Cut.prototype._listenOff = function(obj) { + if (typeof obj === "string") { + this._listenersCount = this._listenersCount || {}; + if (this._listenersCount[obj] == 1 && this._parent) { + this._parent._listenOff(obj); + } + this._listenersCount[obj] = Math.max((this._listenersCount[obj] || 0) - 1, 0); + } else if (typeof obj === "object") { + if (obj._listenersCount) { + for (var type in obj._listenersCount) { + if (obj._listenersCount[type] > 0) { + this._listenOff(type); + } + } + } + } +}; + +Cut.prototype._listens = function(type) { + return this._listenersCount && this._listenersCount[type] || 0; +}; + +Cut.prototype.touch = function() { + this._ts_touch = Cut._TS++; + this._parent && this._parent.touch(); + return this; +}; + +Cut.prototype.pin = function() { + if (!arguments.length) { + return this._pin; + } + var obj = this._pin.update.apply(this._pin, arguments); + return obj === this._pin ? this : obj; +}; + +Cut.prototype.matrix = function() { + return this._pin.absoluteMatrix(this, this._parent ? this._parent._pin : null); +}; + +Cut.prototype.tween = function(duration, delay) { + return (this._tween || (this._tween = new Cut.Tween(this))).tween(duration, delay); +}; + +Cut.Tween = function(cut) { + var tween = this; + this._owner = cut; + this._queue = []; + this._next = null; + cut.tick(function(elapsed) { + if (!tween._queue.length) { + return; + } + this.touch(); + var head = tween._queue[0]; + if (!head.time) { + head.time = 1; + } else { + head.time += elapsed; + } + if (head.time < head.delay) { + return; + } + if (!head.start) { + head.start = {}; + head.keys = {}; + for (var key in head.end) { + if (typeof (start = cut.pin(key)) === "number") { + head.start[key] = start; + head.keys[key] = key; + } else if (typeof (startX = cut.pin(key + "X")) === "number" && typeof (startY = cut.pin(key + "Y")) === "number") { + head.start[key + "X"] = startX; + head.keys[key + "X"] = key; + head.start[key + "Y"] = startY; + head.keys[key + "Y"] = key; + } + } + } + var p = (head.time - head.delay) / head.duration; + var over = p >= 1; + p = p > 1 ? 1 : p; + p = typeof head.easing == "function" ? head.easing(p) : p; + var q = 1 - p; + for (var key in head.keys) { + cut.pin(key, head.start[key] * q + head.end[head.keys[key]] * p); + } + if (over) { + tween._queue.shift(); + head.then && head.then.call(cut); + } + }, true); +}; + +Cut.Tween.prototype.tween = function(duration, delay) { + this._next = { + id: Cut._TS++, + end: {}, + duration: duration || 400, + delay: delay || 0 + }; + return this; +}; + +Cut.Tween.prototype.pin = function(pin) { + if (this._next !== this._queue[this._queue.length - 1]) { + this._owner.touch(); + this._queue.push(this._next); + } + var end = this._next.end; + if (arguments.length === 1) { + Cut._extend(end, arguments[0]); + } else if (arguments.length === 2) { + end[arguments[0]] = arguments[1]; + } + return this; +}; + +Cut.Tween.prototype.clear = function(forward) { + var tween; + while (tween = this._queue.shift()) { + forward && this._owner.pin(tween.end); + } + return this; +}; + +Cut.Tween.prototype.then = function(then) { + this._next.then = then; + return this; +}; + +Cut.Tween.prototype.ease = function(easing) { + this._next.easing = Cut.Easing(easing); + return this; +}; + +Cut.root = function(request, render) { + return new Cut.Root(request, render); +}; + +Cut.Root = function(request, render) { + Cut.String.prototype._super.apply(this, arguments); + this._paused = true; + this._render = render; + this._request = request; + var self = this; + var requestCallback = function() { + if (self._paused === true) { + return; + } + self._mo_touch = self._ts_touch; + self._render(); + self.request(); + self._mo_touch == self._ts_touch && self.pause(); + }; + this.request = function() { + this._request.call(null, requestCallback); + }; + this.on("viewport", function(viewport) { + this._size = { + width: viewport.width, + height: viewport.height + }; + this._updateViewbox(); + return true; + }); +}; + +Cut.Root.prototype = Cut._create(Cut.prototype); + +Cut.Root.prototype._super = Cut; + +Cut.Root.prototype.constructor = Cut.Root; + +Cut.Root.prototype.viewbox = function(width, height, mode) { + this._viewbox = { + width: width, + height: height, + mode: /^(in|out)$/.test(mode) ? mode : "in" + }; + this._updateViewbox(); + return this; +}; + +Cut.Root.prototype._updateViewbox = function() { + var viewbox = this._viewbox; + var size = this._size; + if (!size) {} else if (viewbox) { + this.pin({ + width: viewbox.width, + height: viewbox.height, + resizeMode: viewbox.mode, + resizeWidth: size.width, + resizeHeight: size.height + }); + } else { + this.pin({ + width: size.width, + height: size.height + }); + } +}; + +Cut.Root.prototype.start = function() { + return this.resume(); +}; + +Cut.Root.prototype.resume = function(force) { + if (this._paused || force) { + this._paused = false; + this.request(); + } + return this; +}; + +Cut.Root.prototype.pause = function() { + this._paused = true; + return this; +}; + +Cut.Root.prototype.touch = function() { + this.resume(); + return Cut.prototype.touch.apply(this, arguments); +}; + +Cut.Root.prototype.resize = function(width, height, ratio) { + this._ratio = ratio || 1; + var data = {}; + data.width = width; + data.height = height; + data.ratio = ratio; + this.visit({ + start: function(cut) { + if (!cut._listens("viewport")) { + return true; + } + cut.publish("viewport", [ data ]); + } + }); + return this; +}; + +Cut.image = function(cutout) { + var image = new Cut.Image(); + cutout && image.image(cutout); + return image; +}; + +Cut.Image = function() { + Cut.Image.prototype._super.apply(this, arguments); +}; + +Cut.Image.prototype = Cut._create(Cut.prototype); + +Cut.Image.prototype._super = Cut; + +Cut.Image.prototype.constructor = Cut.Image; + +/** + * @deprecated Use image + */ +Cut.Image.prototype.setImage = function() { + this.image.apply(this, arguments); +}; + +Cut.Image.prototype.image = function(cutout) { + this._cutouts[0] = Cut.Out.select(cutout); + this._cutouts.length = 1; + this.pin({ + width: this._cutouts[0] ? this._cutouts[0].dWidth() : 0, + height: this._cutouts[0] ? this._cutouts[0].dHeight() : 0 + }); + this._cutout = this._cutouts[0].clone(); + return this; +}; + +Cut.Image.prototype.cropX = function(w, x) { + return this.image(this._cutouts[0].cropX(w, x)); +}; + +Cut.Image.prototype.cropY = function(h, y) { + return this.image(this._cutouts[0].cropY(h, y)); +}; + +Cut.Image.prototype._slice = function(i) { + return this._cutouts[i] || (this._cutouts[i] = this._cutout.clone()); +}; + +Cut.Image.prototype.tile = function(inner) { + this.untick(this._repeatTicker); + this._repeatTicker = function() { + if (this._mo_tile == this._ts_touch) { + return; + } + this._mo_tile = this._ts_touch; + var bleft = this._cutout._left, bright = this._cutout._right; + var btop = this._cutout._top, bbottom = this._cutout._bottom; + var bwidth = this._cutout.dWidth() - bleft - bright; + var bheight = this._cutout.dHeight() - btop - bbottom; + var width = this.pin("width"); + width = inner ? width : width - bleft - bright; + var height = this.pin("height"); + height = inner ? height : height - btop - bbottom; + var left = inner ? -bleft : 0; + var top = inner ? -btop : 0; + var c = 0; + // top, left + if (btop && bleft) { + this._slice(c++).cropX(bleft, 0).cropY(btop, 0).offset(left, top); + } + // bottom, left + if (bbottom && bleft) { + this._slice(c++).cropX(bleft, 0).cropY(bbottom, bheight + btop).offset(left, top + height + btop); + } + // top, right + if (btop && bright) { + this._slice(c++).cropX(bright, bwidth + bleft).cropY(btop, 0).offset(left + width + bleft, top); + } + // bottom, right + if (bbottom && bright) { + this._slice(c++).cropX(bright, bwidth + bleft).cropY(bbottom, bheight + btop).offset(left + width + bleft, top + height + btop); + } + var x = left + bleft; + var r = width; + while (r > 0) { + var w = Math.min(bwidth, r); + r -= bwidth; + var y = top + btop; + var b = height; + while (b > 0) { + var h = Math.min(bheight, b); + b -= bheight; + this._slice(c++).cropX(w, bleft).cropY(h, btop).offset(x, y); + if (r <= 0) { + // left + if (bleft) { + this._slice(c++).cropX(bleft, 0).cropY(h, btop).offset(left, y); + } + // right + if (bright) { + this._slice(c++).cropX(bright, bwidth + bleft).cropY(h, btop).offset(x + w, y); + } + } + y += h; + } + // top + if (btop) { + this._slice(c++).cropX(w, bleft).cropY(btop, 0).offset(x, top); + } + // bottom + if (bbottom) { + this._slice(c++).cropX(w, bleft).cropY(bbottom, bheight + btop).offset(x, y); + } + x += w; + } + this._cutouts.length = c; + }; + this.tick(this._repeatTicker); + return this; +}; + +Cut.Image.prototype.stretch = function(inner) { + this.untick(this._repeatTicker); + this._repeatTicker = function() { + if (this._mo_stretch == this._pin._ts_transform) { + return; + } + this._mo_stretch = this._pin._ts_transform; + var oleft = this._cutout._left, oright = this._cutout._right; + var otop = this._cutout._top, obottom = this._cutout._bottom; + var owidth = this._cutout.dWidth(), oheight = this._cutout.dHeight(); + var width = this.pin("width"), height = this.pin("height"); + width = inner ? width + oleft + oright : Math.max(width, oleft + oright); + height = inner ? height + otop + obottom : Math.max(height, otop + obottom); + var c = 0; + // top, left + if (otop && oleft) { + this._slice(c++).cropX(oleft, 0).cropY(otop, 0).offset(0, 0); + } + // bottom, left + if (obottom && oleft) { + this._slice(c++).cropX(oleft, 0).cropY(obottom, oheight - obottom).offset(0, height - obottom); + } + // top, right + if (otop && oright) { + this._slice(c++).cropX(oright, owidth - oright).cropY(otop, 0).offset(width - oright, 0); + } + // bottom, right + if (obottom && oright) { + this._slice(c++).cropX(oright, owidth - oright).cropY(obottom, oheight - obottom).offset(width - oright, height - obottom); + } + // top + if (otop) { + this._slice(c++).cropX(owidth - oleft - oright, oleft).cropY(otop, 0).offset(oleft, 0).dWidth(width - oleft - oright); + } + // bottom + if (obottom) { + this._slice(c++).cropX(owidth - oleft - oright, oleft).cropY(obottom, oheight - obottom).offset(oleft, height - obottom).dWidth(width - oleft - oright); + } + // left + if (oleft) { + this._slice(c++).cropX(oleft, 0).cropY(oheight - otop - obottom, otop).offset(0, otop).dHeight(height - otop - obottom); + } + // right + if (oright) { + this._slice(c++).cropX(oright, owidth - oright).cropY(oheight - otop - obottom, otop).offset(width - oright, otop).dHeight(height - otop - obottom); + } + // center + this._slice(c++).cropX(owidth - oleft - oright, oleft).cropY(oheight - otop - obottom, otop).offset(oleft, otop).dWidth(width - oleft - oright).dHeight(height - otop - obottom); + this._cutouts.length = c; + }; + this.tick(this._repeatTicker); + return this; +}; + +Cut.anim = function(frames, fps) { + var anim = new Cut.Anim().frames(frames).gotoFrame(0); + fps && anim.fps(fps); + return anim; +}; + +Cut.Anim = function() { + Cut.Anim.prototype._super.apply(this, arguments); + this._fps = Cut.Anim.FPS; + this._ft = 1e3 / this._fps; + this._time = 0; + this._frame = 0; + this._frames = []; + this._labels = {}; + this.tick(function() { + if (this._time && this._frames.length > 1) { + var t = Cut._now() - this._time; + if (t >= this._ft) { + var n = t < 2 * this._ft ? 1 : Math.floor(t / this._ft); + this._time += n * this._ft; + this.moveFrame(n); + if (this._repeat && (this._repeat -= n) <= 0) { + this.stop(); + this._callback && this._callback(); + } + } + this.touch(); + } + }, false); +}; + +Cut.Anim.prototype = Cut._create(Cut.prototype); + +Cut.Anim.prototype._super = Cut; + +Cut.Anim.prototype.constructor = Cut.Anim; + +Cut.Anim.FPS = 22; + +Cut.Anim.prototype.fps = function(fps) { + if (!arguments.length) { + return this._fps; + } + this._fps = fps || Cut.Anim.FPS; + this._ft = 1e3 / this._fps; + return this; +}; + +/** + * @deprecated Use frames + */ +Cut.Anim.prototype.setFrames = function() { + this.frames.apply(this, arguments); +}; + +Cut.Anim.prototype.frames = function(frames) { + this._time = this._time || 0; + this._frame = 0; + this._frames = []; + this._labels = {}; + frames = Cut.Out.select(frames, true); + if (frames && frames.length) { + for (var i = 0; i < frames.length; i++) { + var cutout = frames[i]; + this._frames.push(cutout); + this._labels[cutout._name] = i; + } + } + return this; +}; + +Cut.Anim.prototype.length = function() { + return this._frames ? this._frames.length : 0; +}; + +Cut.Anim.prototype.gotoFrame = function(frame, resize) { + frame = Cut.Math.rotate(frame, this._frames.length) | 0; + this._frame = frame; + resize = resize || !this._cutouts[0]; + this._cutouts[0] = this._frames[this._frame]; + if (resize) { + this.pin({ + width: this._cutouts[0].dWidth(), + height: this._cutouts[0].dHeight() + }); + } + this._ts_frame = Cut._TS++; + this.touch(); + return this; +}; + +Cut.Anim.prototype.moveFrame = function(move) { + return this.gotoFrame(this._frame + move); +}; + +Cut.Anim.prototype.gotoLabel = function(label, resize) { + return this.gotoFrame(this._labels[label] || 0, resize); +}; + +Cut.Anim.prototype.repeat = function(repeat, callback) { + this._repeat = repeat * this._frames.length - 1; + this._callback = callback; + this.play(); + return this; +}; + +Cut.Anim.prototype.play = function(frame) { + if (arguments.length) { + this.gotoFrame(frame); + this._time = Cut._now(); + } else if (!this._time) { + this._time = Cut._now(); + } + return this; +}; + +Cut.Anim.prototype.stop = function(frame) { + this._time = null; + if (arguments.length) { + this.gotoFrame(frame); + } + return this; +}; + +Cut.string = function(frames) { + return new Cut.String().frames(frames); +}; + +Cut.String = function() { + Cut.String.prototype._super.apply(this, arguments); + this.row(); +}; + +Cut.String.prototype = Cut._create(Cut.prototype); + +Cut.String.prototype._super = Cut; + +Cut.String.prototype.constructor = Cut.String; + +/** + * @deprecated Use frames + */ +Cut.String.prototype.setFont = function() { + this.frames.apply(this, arguments); +}; + +Cut.String.prototype.frames = function(frames) { + if (typeof frames == "string") { + this._frames = function(value) { + return frames + value; + }; + } else if (Cut._isFunc(frames)) { + this._frames = frames; + } + return this; +}; + +/** + * @deprecated Use value + */ +Cut.String.prototype.setValue = function() { + this.value.apply(this, arguments); +}; + +Cut.String.prototype.value = function(value) { + if (this._value === value) return this; + this._value = value; + if (typeof value !== "string" && !Cut._isArray(value)) { + value = value + ""; + } + var child = this._first; + for (var i = 0; i < value.length; i++) { + var selector = this._frames(value[i]); + if (child) { + child.image(selector).show(); + } else { + child = Cut.image(selector).appendTo(this); + } + child = child._next; + } + while (child) { + child.hide(); + child = child._next; + } + return this; +}; + +Cut.row = function(align) { + return Cut.create().row(align); +}; + +Cut.prototype.row = function(align) { + this.sequence("row", align); + return this; +}; + +Cut.column = function(align) { + return Cut.create().column(align); +}; + +Cut.prototype.column = function(align) { + this.sequence("column", align); + return this; +}; + +Cut.sequence = function(type, align) { + return new Cut.create().sequence(type, align); +}; + +Cut.prototype.sequence = function(type, align) { + this.untick(this._layoutTicker); + this._layoutTicker = function() { + if (this._mo_seq == this._ts_touch) { + return; + } + this._mo_seq = this._ts_touch; + var alignChildren = this._mo_seqAlign != this._ts_children; + this._mo_seqAlign = this._ts_children; + var width = 0, height = 0; + var child, next = this.first(true); + var first = true; + while (child = next) { + next = child.next(true); + child._pin.relativeMatrix(); + var w = child._pin._boxWidth; + var h = child._pin._boxHeight; + if (type == "column") { + !first && (height += this._spacing || 0); + child.pin("offsetY") != height && child.pin("offsetY", height); + width = Math.max(width, w); + height = height + h; + alignChildren && child.pin("alignX", align); + } else if (type == "row") { + !first && (width += this._spacing || 0); + child.pin("offsetX") != width && child.pin("offsetX", width); + width = width + w; + height = Math.max(height, h); + alignChildren && child.pin("alignY", align); + } + first = false; + } + width += 2 * this._padding || 0; + height += 2 * this._padding || 0; + this.pin("width") != width && this.pin("width", width); + this.pin("height") != height && this.pin("height", height); + }; + this.tick(this._layoutTicker); + return this; +}; + +Cut.box = function() { + return new Cut.create().box(); +}; + +Cut.prototype.box = function() { + if (this._boxTicker) return this; + this._boxTicker = function() { + if (this._mo_box == this._ts_touch) { + return; + } + this._mo_box = this._ts_touch; + var width = 0, height = 0; + var child, next = this.first(true); + while (child = next) { + next = child.next(true); + child._pin.relativeMatrix(); + var w = child._pin._boxWidth; + var h = child._pin._boxHeight; + width = Math.max(width, w); + height = Math.max(height, h); + } + width += 2 * this._padding || 0; + height += 2 * this._padding || 0; + this.pin("width") != width && this.pin("width", width); + this.pin("height") != height && this.pin("height", height); + }; + this.tick(this._boxTicker); + return this; +}; + +Cut.prototype.padding = function(pad) { + this._padding = pad; + return this; +}; + +Cut.prototype.spacing = function(space) { + this._spacing = space; + return this; +}; + +// TODO use prototype +Cut.Loader = function() { + var queue = []; + var roots = []; + var images = {}; + var started = false; + function loadImages(loader, callback) { + var loading = 0; + var noimage = true; + var textures = Cut.Texture._list; + for (var texture in textures) { + if (textures[texture].getImagePath()) { + loading++; + var src = textures[texture].getImagePath(); + var image = loader(src, complete, error); + Cut.Loader.addImage(image, src); + noimage = false; + } + } + if (noimage) { + DEBUG && console.log("No image to load."); + callback && callback(); + } + function complete() { + DEBUG && console.log("Image loaded."); + done(); + } + function error(msg) { + DEBUG && console.log("Error loading image: " + msg); + done(); + } + function done() { + if (--loading <= 0) { + callback && callback(); + } + } + } + return { + load: function(app, configs) { + if (!started) { + queue.push(arguments); + return; + } + DEBUG && console.log("Init..."); + var root = this.init(function(root, canvas) { + DEBUG && console.log("Loading app..."); + app(root, canvas); + }, configs); + roots.push(root); + DEBUG && console.log("Loading images..."); + loadImages(this.loadImage, function() { + DEBUG && console.log("Images loaded."); + DEBUG && console.log("Start playing..."); + root.start(); + }); + }, + start: function() { + started = true; + var args; + while (args = queue.shift()) { + this.load.apply(this, args); + } + }, + pause: function() { + for (var i = queue.length - 1; i >= 0; i--) { + roots[i].pause(); + } + }, + resume: function() { + for (var i = queue.length - 1; i >= 0; i--) { + roots[i].resume(); + } + }, + getImage: function(src) { + return images[src]; + }, + addImage: function(image, src) { + images[src] = image; + return this; + } + }; +}(); + +// TODO use prototype +Cut.Texture = function(texture) { + texture.cutouts = texture.cutouts || []; + var selectionCache = {}; + var imageCache = null; + this.getImagePath = function() { + return texture.imagePath; + }; + function image() { + if (!imageCache) { + imageCache = Cut.Loader.getImage(texture.imagePath); + } + return imageCache; + } + for (var i = 0; i < texture.cutouts.length; i++) { + map(texture.cutouts[i]); + } + function map(cutout) { + if (!cutout || cutout.isCutout) { + return cutout; + } + if (typeof texture.map === "function") { + cutout = texture.map(cutout); + } else if (typeof texture.filter === "function") { + cutout = texture.filter(cutout); + } + var ratio = texture.ratio || 1; + if (ratio != 1) { + cutout.x *= ratio, cutout.y *= ratio; + cutout.width *= ratio, cutout.height *= ratio; + cutout.top *= ratio, cutout.bottom *= ratio; + cutout.left *= ratio, cutout.right *= ratio; + } + var trim = texture.trim || 0; + if (trim) { + cutout.x += trim, cutout.y += trim; + cutout.width -= 2 * trim, cutout.height -= 2 * trim; + cutout.top -= trim, cutout.bottom -= trim; + cutout.left -= trim, cutout.right -= trim; + } + return cutout; + } + function wrap(cutout) { + if (!cutout.isCutout) { + cutout = new Cut.Out(cutout, image, texture.imageRatio); + } + return cutout; + } + this.select = function(selector, prefix) { + if (!prefix) { + // one + var id = selector + "?"; + var result = selectionCache[id]; + if (typeof result === "undefined") { + for (var i = 0; i < texture.cutouts.length; i++) { + var item = texture.cutouts[i]; + var name = item._name || item.name; + if (name == selector) { + result = item; + break; + } + } + if (!result && texture.factory) { + result = map(texture.factory(selector)); + } + selectionCache[id] = result; + } + if (!result) { + throw "Cutout not found: '" + texture.name + ":" + selector + "'"; + } + return wrap(result); + } else { + // many + var id = selector + "*"; + var results = selectionCache[id]; + if (typeof results === "undefined") { + results = []; + var length = selector.length; + for (var i = 0; i < texture.cutouts.length; i++) { + var item = texture.cutouts[i]; + var name = item._name || item.name; + if (name && name.substring(0, length) == selector) { + results.push(texture.cutouts[i]); + } + } + selectionCache[id] = results; + } + if (!results.length) { + throw "Cutouts not found: '" + texture.name + ":" + selector + "'"; + } + for (var i = 0; i < results.length; i++) { + results[i] = wrap(results[i]); + } + return results; + } + }; +}; + +Cut.Texture._list = {}; + +Cut.Texture.add = function() { + for (var i = 0; i < arguments.length; i++) { + var texture = arguments[i]; + Cut.Texture._list[texture.name] = new Cut.Texture(texture); + } + return this; +}; + +/** + * @deprecated Use Cut(); + */ +Cut.addTexture = function() { + return Cut.Texture.add.apply(Cut.Texture, arguments); +}; + +Cut.Out = function(def, image, ratio) { + this.isCutout = true; + this._image = image; + this._ratio = ratio || 1; + this._name = def.name; + this._x = def.x; + this._y = def.y; + this._width = def.width; + this._height = def.height; + this._top = def.top || 0; + this._bottom = def.bottom || 0; + this._left = def.left || 0; + this._right = def.right || 0; + this._reset(); + return this; +}; + +Cut.Out.prototype._reset = function() { + this._sx = this._x * this._ratio; + this._sy = this._y * this._ratio; + this._sw = this._width * this._ratio; + this._sh = this._height * this._ratio; + this._dx = 0; + this._dy = 0; + this._dw = this._width; + this._dh = this._height; +}; + +Cut.Out.prototype.clone = function() { + var clone = Cut._create(Cut.Out.prototype); + for (var attr in this) if (this.hasOwnProperty(attr)) clone[attr] = this[attr]; + clone._reset(); + return clone; +}; + +Cut.Out.prototype.dWidth = function(width) { + if (arguments.length) { + this._dw = width; + return this; + } + return this._dw; +}; + +Cut.Out.prototype.dHeight = function(height) { + if (arguments.length) { + this._dh = height; + return this; + } + return this._dh; +}; + +Cut.Out.prototype.cropX = function(w, x) { + x = x || 0; + w = Math.min(w, this._width - x); + this._dw = w; + this._sw = w * this._ratio; + this._sx = (this._x + x) * this._ratio; + return this; +}; + +Cut.Out.prototype.cropY = function(h, y) { + y = y || 0; + h = Math.min(h, this._height - y); + this._dh = h; + this._sh = h * this._ratio; + this._sy = (this._y + y) * this._ratio; + return this; +}; + +Cut.Out.prototype.offset = function(x, y) { + this._dx = x; + this._dy = y; + return this; +}; + +Cut.Out.prototype.paste = function(context) { + Cut._stats.paste++; + var img = typeof this._image === "function" ? this._image() : this._image; + try { + img && context.drawImage(img, // source + this._sx, this._sy, this._sw, this._sh, // cut + this._dx, this._dy, this._dw, this._dh); + } catch (e) { + if (!this._failed) { + console.log("Unable to paste: " + this, img); + this._failed = true; + } + } +}; + +Cut.Out.prototype.toString = function() { + return "[" + this._name + ": " + this._sx + "x" + this._sy + "-" + this._sw + "x" + this._sh + "" + this._dx + "x" + this._dy + "-" + this._dw + "x" + this._dh + "]"; +}; + +Cut.Out.select = function(selector, prefix) { + if (typeof selector === "function") { + return Cut.Out.select(selector()); + } + if (typeof selector !== "string") { + return selector; + } + var i = selector.indexOf(":"); + if (i < 0) { + throw "Invalid selector: '" + selector + "'"; + return null; + } + var split = [ selector.slice(0, i), selector.slice(i + 1) ]; + var texture = Cut.Texture._list[split[0]]; + if (texture == null) { + throw "Texture not found: '" + selector + "'"; + return !prefix ? null : []; + } + return texture.select(split[1], prefix); +}; + +Cut.drawing = function() { + return Cut.image(Cut.Out.drawing.apply(Cut.Out, arguments)); +}; + +// [name], width, height, [ratio], [draw] +// def, [draw] +Cut.Out.drawing = function() { + var canvas = document.createElement("canvas"); + var context = canvas.getContext("2d"); + var def = {}; + var ai = 0; + if (typeof arguments[ai] === "object") { + def = arguments[ai++]; + } else { + if (typeof arguments[ai] === "string") { + def.name = arguments[ai++]; + } + def.width = arguments[ai++]; + def.height = arguments[ai++]; + if (typeof arguments[ai] === "number") { + def.ratio = arguments[ai++]; + } + def.x = 0; + def.y = 0; + } + def.ratio = def.ratio || 1; + def.name = def.name || Math.random() * 1e3 | 0; + canvas.width = Math.ceil(def.width * def.ratio); + canvas.height = Math.ceil(def.height * def.ratio); + var cut = new Cut.Out(def, canvas, def.ratio); + if (typeof arguments[arguments.length - 1] === "function") { + arguments[arguments.length - 1].call(cut, context, def.ratio); + } + return cut; +}; + +Cut.Pin = function(owner) { + this._owner = owner; + this._parent = null; + // relative to parent + this._relativeMatrix = new Cut.Matrix(); + // relative to root + this._absoluteMatrix = new Cut.Matrix(); + this.reset(); +}; + +Cut.Pin.prototype.reset = function() { + this._textureAlpha = 1; + this._alpha = 1; + this._width = 0; + this._height = 0; + this._scaleX = 1; + this._scaleY = 1; + this._skewX = 0; + this._skewY = 0; + this._rotation = 0; + // scale/skew/rotate center + this._pivoted = false; + this._pivotX = null; + this._pivotY = null; + // self pin point + this._handled = false; + this._handleX = 0; + this._handleY = 0; + // parent pin point + this._aligned = false; + this._alignX = 0; + this._alignY = 0; + // as seen by parent px + this._offsetX = 0; + this._offsetY = 0; + this._boxX = 0; + this._boxY = 0; + this._boxWidth = this._width; + this._boxHeight = this._height; + this._ts_translate = Cut._TS++; + this._ts_transform = Cut._TS++; + this._ts_matrix = Cut._TS++; +}; + +Cut.Pin.prototype.tick = function() { + this._parent = this._owner._parent && this._owner._parent._pin; + if (this._handled && this._mo_handle != this._ts_transform) { + this._mo_handle = this._ts_transform; + this._ts_translate = Cut._TS++; + } + if (this._aligned && this._parent && this._mo_align != this._parent._ts_transform) { + this._mo_align = this._parent._ts_transform; + this._ts_translate = Cut._TS++; + } + return this; +}; + +Cut.Pin.prototype.toString = function() { + return this._owner.id() + " [" + this._alignX + ", " + this._alignY + "] [" + this._handleX + ", " + this._handleY + "] [" + (this._parent ? this._parent._owner.id() : null) + "]"; +}; + +Cut.Pin.prototype.absoluteMatrix = function() { + var ts = Math.max(this._ts_transform, this._ts_translate, this._parent ? this._parent._ts_matrix : 0); + if (this._mo_abs == ts) { + return this._absoluteMatrix; + } + this._mo_abs = ts; + var abs = this._absoluteMatrix; + abs.copyFrom(this.relativeMatrix()); + this._parent && abs.concat(this._parent._absoluteMatrix); + this._ts_matrix = Cut._TS++; + return abs; +}; + +Cut.Pin.prototype.relativeMatrix = function() { + var ts = Math.max(this._ts_transform, this._ts_translate, this._parent ? this._parent._ts_transform : 0); + if (this._mo_rel == ts) { + return this._relativeMatrix; + } + this._mo_rel = ts; + var rel = this._relativeMatrix; + rel.identity(); + if (this._pivoted) { + rel.translate(-this._pivotX * this._width, -this._pivotY * this._height); + } + rel.scale(this._scaleX, this._scaleY); + rel.skew(this._skewX, this._skewY); + rel.rotate(this._rotation); + if (this._pivoted) { + rel.translate(this._pivotX * this._width, this._pivotY * this._height); + } + if (this._pivoted) { + // set handle on origin + this._boxX = 0; + this._boxY = 0; + this._boxWidth = this._width; + this._boxHeight = this._height; + } else { + // set handle on aabb + var p, q, m = rel; + if (m.a > 0 && m.c > 0 || m.a < 0 && m.c < 0) { + p = 0, q = m.a * this._width + m.c * this._height; + } else { + p = m.a * this._width, q = m.c * this._height; + } + if (p > q) { + this._boxX = q; + this._boxWidth = p - q; + } else { + this._boxX = p; + this._boxWidth = q - p; + } + if (m.b > 0 && m.d > 0 || m.b < 0 && m.d < 0) { + p = 0, q = m.b * this._width + m.d * this._height; + } else { + p = m.b * this._width, q = m.d * this._height; + } + if (p > q) { + this._boxY = q; + this._boxHeight = p - q; + } else { + this._boxY = p; + this._boxHeight = q - p; + } + } + this._x = this._offsetX; + this._y = this._offsetY; + this._x -= this._boxX + this._handleX * this._boxWidth; + this._y -= this._boxY + this._handleY * this._boxHeight; + if (this._aligned && this._parent) { + this._parent.relativeMatrix(); + this._x += this._alignX * this._parent._width; + this._y += this._alignY * this._parent._height; + } + rel.translate(this._x, this._y); + return this._relativeMatrix; +}; + +Cut.Pin._SINGLE = {}; + +Cut.Pin.prototype.update = function() { + if (arguments.length == 1 && typeof arguments[0] === "string") { + return this["_" + arguments[0]]; + } + this._transform_flag = false; + this._translate_flag = false; + var pin = null, key = null, value = null; + if (arguments.length == 2 && typeof arguments[0] === "string") { + for (key in Cut.Pin._SINGLE) { + delete Cut.Pin._SINGLE[key]; + } + (pin = Cut.Pin._SINGLE)[arguments[0]] = arguments[1]; + } else if (arguments.length == 1 && typeof arguments[0] === "object") { + pin = arguments[0]; + } + // TODO: map write only keys to read/write keys + if (pin) { + for (key in pin) { + if (typeof (value = pin[key]) !== "undefined") { + if (setter = Cut.Pin._setters[key]) { + setter.call(Cut.Pin._setters, this, value, pin); + } + } + } + } + if (this._translate_flag) { + this._translate_flag = false; + this._ts_translate = Cut._TS++; + } + if (this._transform_flag) { + this._transform_flag = false; + this._ts_transform = Cut._TS++; + } + if (this._owner) { + this._owner._ts_pin = Cut._TS++; + this._owner.touch(); + } + return this; +}; + +Cut.Pin._setters = { + alpha: function(pin, value, set) { + pin._alpha = value; + }, + textureAlpha: function(pin, value, set) { + pin._textureAlpha = value; + }, + width: function(pin, value, set) { + pin._width_ = value; + pin._width = value; + pin._transform_flag = true; + }, + height: function(pin, value, set) { + pin._height_ = value; + pin._height = value; + pin._transform_flag = true; + }, + scale: function(pin, value, set) { + pin._scaleX = value; + pin._scaleY = value; + pin._transform_flag = true; + }, + scaleX: function(pin, value, set) { + pin._scaleX = value; + pin._transform_flag = true; + }, + scaleY: function(pin, value, set) { + pin._scaleY = value; + pin._transform_flag = true; + }, + skew: function(pin, value, set) { + pin._skewX = value; + pin._skewY = value; + pin._transform_flag = true; + }, + skewX: function(pin, value, set) { + pin._skewX = value; + pin._transform_flag = true; + }, + skewY: function(pin, value, set) { + pin._skewY = value; + pin._transform_flag = true; + }, + rotation: function(pin, value, set) { + pin._rotation = value; + pin._transform_flag = true; + }, + pivot: function(pin, value, set) { + pin._pivotX = value; + pin._pivotY = value; + pin._pivoted = true; + pin._transform_flag = true; + }, + pivotX: function(pin, value, set) { + pin._pivotX = value; + pin._pivoted = true; + pin._transform_flag = true; + }, + pivotY: function(pin, value, set) { + pin._pivotY = value; + pin._pivoted = true; + pin._transform_flag = true; + }, + offset: function(pin, value, set) { + pin._offsetX = value; + pin._offsetY = value; + pin._translate_flag = true; + }, + offsetX: function(pin, value, set) { + pin._offsetX = value; + pin._translate_flag = true; + }, + offsetY: function(pin, value, set) { + pin._offsetY = value; + pin._translate_flag = true; + }, + align: function(pin, value, set) { + this.alignX.apply(this, arguments); + this.alignY.apply(this, arguments); + }, + alignX: function(pin, value, set) { + pin._alignX = value; + pin._aligned = true; + pin._translate_flag = true; + this.handleX(pin, value, set); + }, + alignY: function(pin, value, set) { + pin._alignY = value; + pin._aligned = true; + pin._translate_flag = true; + this.handleY(pin, value, set); + }, + handle: function(pin, value, set) { + this.handleX(pin, value, set); + this.handleY(pin, value, set); + }, + handleX: function(pin, value, set) { + pin._handleX = value; + pin._handled = true; + pin._translate_flag = true; + }, + handleY: function(pin, value, set) { + pin._handleY = value; + pin._handled = true; + pin._translate_flag = true; + }, + resizeMode: function(pin, value, set) { + if (Cut._isNum(set.resizeWidth) && Cut._isNum(set.resizeHeight)) { + this.resizeWidth(pin, set.resizeWidth, set, true); + this.resizeHeight(pin, set.resizeHeight, set, true); + if (value == "out") { + pin._scaleX = pin._scaleY = Math.max(pin._scaleX, pin._scaleY); + } else if (value == "in") { + pin._scaleX = pin._scaleY = Math.min(pin._scaleX, pin._scaleY); + } + pin._width = set.resizeWidth / pin._scaleX; + pin._height = set.resizeHeight / pin._scaleY; + } + }, + resizeWidth: function(pin, value, set, force) { + if (set.resizeMode && !force) { + return; + } + pin._scaleX = value / pin._width_; + pin._width = pin._width_; + pin._transform_flag = true; + }, + resizeHeight: function(pin, value, set, force) { + if (set.resizeMode && !force) { + return; + } + pin._scaleY = value / pin._height_; + pin._height = pin._height_; + pin._transform_flag = true; + }, + scaleMode: function(pin, value, set) { + if (Cut._isNum(set.scaleWidth) && Cut._isNum(set.scaleHeight)) { + this.scaleWidth(pin, set.scaleWidth, set, true); + this.scaleHeight(pin, set.scaleHeight, set, true); + if (value == "out") { + pin._scaleX = pin._scaleY = Math.max(pin._scaleX, pin._scaleY); + } else if (value == "in") { + pin._scaleX = pin._scaleY = Math.min(pin._scaleX, pin._scaleY); + } + } + }, + scaleWidth: function(pin, value, set, force) { + if (set.scaleMode && !force) { + return; + } + pin._scaleX = value / pin._width_; + pin._transform_flag = true; + }, + scaleHeight: function(pin, value, set, force) { + if (set.scaleMode && !force) { + return; + } + pin._scaleY = value / pin._height_; + pin._transform_flag = true; + }, + matrix: function(pin, value, set) { + this.scaleX(pin, value.a, set); + this.skewX(pin, value.c / value.d, set); + this.skewY(pin, value.b / value.a, set); + this.scaleY(pin, value.d, set); + this.offsetX(pin, value.e, set); + this.offsetY(pin, value.f, set); + this.rotation(pin, 0, set); + } +}; + +Cut.Matrix = function(a, b, c, d, e, f) { + this.changed = true; + this.a = a || 1; + this.b = b || 0; + this.c = c || 0; + this.d = d || 1; + this.e = e || 0; + this.f = f || 0; +}; + +Cut.Matrix.prototype.toString = function() { + return "[" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.e + ", " + this.f + "]"; +}; + +Cut.Matrix.prototype.clone = function() { + return new Cut.Matrix(this.a, this.b, this.c, this.d, this.e, this.f); +}; + +Cut.Matrix.prototype.copyTo = function(m) { + m.copyFrom(this); + return this; +}; + +Cut.Matrix.prototype.copyFrom = function(m) { + this.changed = true; + this.a = m.a; + this.b = m.b; + this.c = m.c; + this.d = m.d; + this.e = m.e; + this.f = m.f; + return this; +}; + +Cut.Matrix.prototype.identity = function() { + this.changed = true; + this.a = 1; + this.b = 0; + this.c = 0; + this.d = 1; + this.e = 0; + this.f = 0; + return this; +}; + +Cut.Matrix.prototype.rotate = function(angle) { + if (!angle) { + return this; + } + this.changed = true; + var u = angle ? Math.cos(angle) : 1; + // android bug may give bad 0 values + var v = angle ? Math.sin(angle) : 0; + var a = u * this.a - v * this.b; + var b = u * this.b + v * this.a; + var c = u * this.c - v * this.d; + var d = u * this.d + v * this.c; + var e = u * this.e - v * this.f; + var f = u * this.f + v * this.e; + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + return this; +}; + +Cut.Matrix.prototype.translate = function(x, y) { + if (!x && !y) { + return this; + } + this.changed = true; + this.e += x; + this.f += y; + return this; +}; + +Cut.Matrix.prototype.scale = function(x, y) { + if (!(x - 1) && !(y - 1)) { + return this; + } + this.changed = true; + this.a *= x; + this.b *= y; + this.c *= x; + this.d *= y; + this.e *= x; + this.f *= y; + return this; +}; + +Cut.Matrix.prototype.skew = function(x, y) { + if (!x && !y) { + return this; + } + this.changed = true; + var a = this.a + this.b * x; + var b = this.b + this.a * y; + var c = this.c + this.d * x; + var d = this.d + this.c * y; + var e = this.e + this.f * x; + var f = this.f + this.e * y; + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + return this; +}; + +Cut.Matrix.prototype.concat = function(m) { + this.changed = true; + var n = this; + var a = n.a * m.a + n.b * m.c; + var b = n.b * m.d + n.a * m.b; + var c = n.c * m.a + n.d * m.c; + var d = n.d * m.d + n.c * m.b; + var e = n.e * m.a + m.e + n.f * m.c; + var f = n.f * m.d + m.f + n.e * m.b; + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + return this; +}; + +Cut.Matrix.prototype.reverse = function() { + if (this.changed) { + this.changed = false; + this.reversed = this.reversed || new Cut.Matrix(); + var z = this.a * this.d - this.b * this.c; + this.reversed.a = this.d / z; + this.reversed.b = -this.b / z; + this.reversed.c = -this.c / z; + this.reversed.d = this.a / z; + this.reversed.e = (this.c * this.f - this.e * this.d) / z; + this.reversed.f = (this.e * this.b - this.a * this.f) / z; + } + return this.reversed; +}; + +Cut.Matrix.prototype.map = function(p, q) { + q = q || {}; + q.x = this.a * p.x + this.c * p.y + this.e; + q.y = this.b * p.x + this.d * p.y + this.f; + return q; +}; + +Cut.Matrix.prototype.mapX = function(x, y) { + return this.a * x + this.c * y + this.e; +}; + +Cut.Matrix.prototype.mapY = function(x, y) { + return this.b * x + this.d * y + this.f; +}; + +Cut.Math = {}; + +Cut.Math.random = function(min, max) { + if (arguments.length == 0) { + max = 1, min = 0; + } else if (arguments.length == 1) { + max = min, min = 0; + } + if (min == max) { + return min; + } + return Math.random() * (max - min) + min; +}; + +Cut.Math.rotate = function(num, min, max) { + if (arguments.length < 3) { + max = min || 0; + min = 0; + } + if (max > min) { + num = (num - min) % (max - min); + return num + (num < 0 ? max : min); + } else { + num = (num - max) % (min - max); + return num + (num <= 0 ? min : max); + } +}; + +Cut.Math.length = function(x, y) { + return Math.sqrt(x * x + y * y); +}; + +Cut._TS = 0; + +Cut._isCut = function(obj) { + return obj instanceof Cut; +}; + +Cut._isNum = function(x) { + return typeof x === "number"; +}; + +Cut._isFunc = function(x) { + return typeof x === "function"; +}; + +Cut._isArray = "isArray" in Array ? Array.isArray : function(value) { + return Object.prototype.toString.call(value) === "[object Array]"; +}; + +Cut._extend = function(base, extension, attribs) { + if (attribs) { + for (var i = 0; i < attribs.length; i++) { + var attr = attribs[i]; + base[attr] = extension[attr]; + } + } else { + for (var attr in extension) { + base[attr] = extension[attr]; + } + } + return base; +}; + +Cut._now = function() { + if (typeof performance !== "undefined" && performance.now) { + return function() { + return performance.now(); + }; + } else if (Date.now) { + return function() { + return Date.now(); + }; + } else { + return function() { + return +new Date(); + }; + } +}(); + +Cut._function = function(value) { + return typeof value === "function" ? value : function() { + return value; + }; +}; + +Cut._options = function(options) { + options.get = function(name) { + return typeof this[name] == "function" ? this[name]() : this[name]; + }; + options.extend = function(obj) { + obj = typeof obj === "object" ? obj : {}; + for (var name in this) { + obj[name] = name in obj ? obj[name] : this[name]; + } + return obj; + }; + options.mixin = function(obj) { + if (typeof obj === "object") { + for (var name in obj) { + this[name] = obj[name]; + } + } + return this; + }; + return options; +}; + +Cut._status = function(msg) { + if (!Cut._statusbox) { + var statusbox = Cut._statusbox = document.createElement("div"); + statusbox.style.position = "absolute"; + statusbox.style.color = "black"; + statusbox.style.background = "white"; + statusbox.style.zIndex = 999; + statusbox.style.top = "5px"; + statusbox.style.right = "5px"; + statusbox.style.padding = "1px 5px"; + document.body.appendChild(statusbox); + } + Cut._statusbox.innerHTML = msg; +}; + +Cut.Easing = function() { + function identity(t) { + return t; + } + var easings = {}, modes = {}; + function select(token) { + if (typeof token === "function") { + return token; + } + if (typeof token !== "string") { + return identity; + } + var match = /^(\w+)(-(in|out|in-out|out-in))?(\((.*)\))?$/i.exec(token); + if (!match || !match.length) { + return identity; + } + var name = match[1] || "", mode = match[3] || "in", params = match[5]; + mode = modes[mode]; + params = params ? params.replace(/\s+/, "").split(",") : []; + var easing = easings[name]; + var fn = easing ? easing.fn || easing.fc.apply(easing.fc, params) : identity; + return mode ? mode(fn) : fn; + } + select.addMode = function(mode) { + var names = mode.name.split(/\s+/); + for (var i = 0; i < names.length; i++) { + names[i] && (modes[names[i]] = mode.fn); + } + }; + select.add = function(easing) { + var names = easing.name.split(/\s+/); + for (var i = 0; i < names.length; i++) { + names[i] && (easings[names[i]] = easing); + } + }; + return select; +}(); + +Cut.Easing.addMode({ + name: "in", + fn: function(f) { + return function(t) { + return f(t); + }; + } +}); + +Cut.Easing.addMode({ + name: "out", + fn: function(f) { + return function(t) { + return 1 - f(1 - t); + }; + } +}); + +Cut.Easing.addMode({ + name: "in-out", + fn: function(f) { + return function(t) { + return t < .5 ? f(2 * t) / 2 : 1 - f(2 * (1 - t)) / 2; + }; + } +}); + +Cut.Easing.addMode({ + name: "out-in", + fn: function(f) { + return function(t) { + return t < .5 ? 1 - f(2 * (1 - t)) / 2 : f(2 * t) / 2; + }; + } +}); + +Cut.Easing.add({ + name: "linear", + fn: function(t) { + return t; + } +}); + +Cut.Easing.add({ + name: "quad", + fn: function(t) { + return t * t; + } +}); + +Cut.Easing.add({ + name: "cubic", + fn: function(t) { + return t * t * t; + } +}); + +Cut.Easing.add({ + name: "quart", + fn: function(t) { + return t * t * t * t; + } +}); + +Cut.Easing.add({ + name: "quint", + fn: function(t) { + return t * t * t * t * t; + } +}); + +Cut.Easing.add({ + name: "sin sine", + fn: function(t) { + return 1 - Math.cos(t * Math.PI / 2); + } +}); + +Cut.Easing.add({ + name: "exp", + fn: function(t) { + return t == 0 ? 0 : Math.pow(2, 10 * (t - 1)); + } +}); + +Cut.Easing.add({ + name: "circle circ", + fn: function(t) { + return 1 - Math.sqrt(1 - t * t); + } +}); + +Cut.Easing.add({ + name: "bounce", + fn: function(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; + } +}); + +Cut.Easing.add({ + name: "poly", + fc: function(e) { + return function(t) { + return Math.pow(t, e); + }; + } +}); + +Cut.Easing.add({ + name: "elastic", + fc: function(a, p) { + p = p || .45; + a = a || 1; + var s = p / (2 * Math.PI) * Math.asin(1 / a); + return function(t) { + return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p); + }; + } +}); + +Cut.Easing.add({ + name: "back", + fc: function(s) { + s = arguments.length ? s : 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; + } +}); + +if (typeof module !== "undefined") { + module.exports = Cut; +} + +if (typeof Cut === "undefined" && typeof require === "function") Cut = require("./cut-core"); + +DEBUG = (typeof DEBUG === "undefined" || DEBUG) && console; + +/** + * Default loader for web. + */ +window.addEventListener("load", function() { + DEBUG && console.log("On load."); + Cut.Loader.start(); +}, false); + +Cut.Loader.init = function(app, configs) { + configs = configs || {}; + var canvas = configs.canvas, context = null, full = false; + var width = 0, height = 0, ratio = 1; + if (typeof canvas === "string") { + canvas = document.getElementById(canvas); + } + if (!canvas) { + canvas = document.getElementById("cutjs"); + } + if (!canvas) { + full = true; + DEBUG && console.log("Creating element..."); + canvas = document.createElement("canvas"); + canvas.style.position = "absolute"; + var body = document.body; + body.insertBefore(canvas, body.firstChild); + } + context = canvas.getContext("2d"); + var devicePixelRatio = window.devicePixelRatio || 1; + var backingStoreRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1; + ratio = devicePixelRatio / backingStoreRatio; + var requestAnimationFrame = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.oRequestAnimationFrame || function(callback) { + return window.setTimeout(callback, 1e3 / 60); + }; + DEBUG && console.log("Creating root..."); + var root = Cut.root(requestAnimationFrame, function() { + context.setTransform(1, 0, 0, 1, 0, 0); + context.clearRect(0, 0, width, height); + this.render(context); + }); + app(root, canvas); + resize(); + window.addEventListener("resize", resize, false); + function resize() { + if (full) { + width = window.innerWidth > 0 ? window.innerWidth : screen.width; + height = window.innerHeight > 0 ? window.innerHeight : screen.height; + canvas.style.width = width + "px"; + canvas.style.height = height + "px"; + } else { + width = canvas.clientWidth; + height = canvas.clientHeight; + } + width *= ratio; + height *= ratio; + canvas.width = width; + canvas.height = height; + DEBUG && console.log("Resize: " + width + " x " + height + " / " + ratio); + root.resize(width, height, ratio); + } + return root; +}; + +Cut.Loader.loadImage = function(src, handleComplete, handleError) { + var image = new Image(); + DEBUG && console.log("Loading image: " + src); + image.onload = handleComplete; + image.onerror = handleError; + image.src = src; + return image; +}; + +if (typeof Cut === "undefined" && typeof require === "function") Cut = require("./cut-core"); + +DEBUG = (typeof DEBUG === "undefined" || DEBUG) && console; + +Cut.Mouse = function() { + Cut.Mouse.subscribe.apply(Cut.Mouse, arguments); +}; + +Cut.Mouse.CLICK = "click"; + +Cut.Mouse.START = "touchstart mousedown"; + +Cut.Mouse.MOVE = "touchmove mousemove"; + +Cut.Mouse.END = "touchend mouseup"; + +Cut.Mouse.subscribe = function(root, elem, move) { + elem = elem || document; + elem.addEventListener("click", mouseClick); + // TODO: with 'if' mouse doesn't work on touch screen, without 'if' two events + // on Android + if ("ontouchstart" in window) { + elem.addEventListener("touchstart", function(event) { + mouseStart(event, "touchmove"); + }); + elem.addEventListener("touchend", function(event) { + mouseEnd(event, "touchmove"); + }); + move && elem.addEventListener("touchmove", mouseMove); + } else { + elem.addEventListener("mousedown", function(event) { + mouseStart(event, "mousemove"); + }); + elem.addEventListener("mouseup", function(event) { + mouseEnd(event, "mousemove"); + }); + move && elem.addEventListener("mousemove", mouseMove); + } + var visitor = null; + var abs = { + x: 0, + y: 0, + toString: function() { + return (this.x | 0) + "x" + (this.y | 0); + } + }; + var rel = { + x: 0, + y: 0, + toString: function() { + return abs + " / " + (this.x | 0) + "x" + (this.y | 0); + } + }; + var clicked = { + x: 0, + y: 0, + state: 0 + }; + function mouseStart(event, moveName) { + update(event, elem); + DEBUG && console.log("Mouse Start: " + event.type + " " + abs); + !move && elem.addEventListener(moveName, mouseMove); + event.preventDefault(); + publish(event.type, event); + clicked.x = abs.x; + clicked.y = abs.y; + clicked.state = 1; + } + function mouseEnd(event, moveName) { + try { + // New xy is not valid/available, last xy is used instead. + DEBUG && console.log("Mouse End: " + event.type + " " + abs); + !move && elem.removeEventListener(moveName, mouseMove); + event.preventDefault(); + publish(event.type, event); + if (clicked.state == 1 && clicked.x == abs.x && clicked.y == abs.y) { + DEBUG && console.log("Mouse Click [+]"); + publish("click", event); + clicked.state = 2; + } else { + clicked.state = 0; + } + } catch (e) { + console && console.log(e); + } + } + function mouseMove(event) { + try { + update(event, elem); + // DEBUG && console.log('Mouse Move: ' + event.type + ' ' + + // abs); + event.preventDefault(); + publish(event.type, event); + } catch (e) { + console && console.log(e); + } + } + function mouseClick(event) { + try { + update(event, elem); + DEBUG && console.log("Mouse Click: " + event.type + " " + abs); + event.preventDefault(); + if (clicked.state != 2) { + publish(event.type, event); + } else { + DEBUG && console.log("Mouse Click [-]"); + } + } catch (e) { + console && console.log(e); + } + } + function publish(type, event) { + abs.type = type; + abs.event = event; + rel.x = abs.x; + rel.y = abs.y; + // visitor.count = 0; + root.visit(visitor); + } + visitor = { + reverse: true, + visible: true, + start: function(cut) { + if (!cut._listens(abs.type)) { + return true; + } + }, + end: function(cut) { + // visitor.count++; + var listeners = cut.listeners(abs.type); + if (!listeners) { + return; + } + cut.matrix().reverse().map(abs, rel); + if (cut === root || cut.attr("spy")) {} else if (rel.x < 0 || rel.x > cut._pin._width || rel.y < 0 || rel.y > cut._pin._height) { + return; + } + rel.raw = abs.event; + for (var l = 0; l < listeners.length; l++) { + if (listeners[l].call(cut, rel)) { + return; + } + } + } + }; + function update(event, elem) { + var isTouch = false; + // touch screen events + if (event.touches) { + if (event.touches.length) { + isTouch = true; + abs.x = event.touches[0].pageX; + abs.y = event.touches[0].pageY; + } else { + return; + } + } else { + // mouse events + abs.x = event.clientX; + abs.y = event.clientY; + // See http://goo.gl/JuVnF2 + if (document.body.scrollLeft || document.body.scrollTop) {} else if (document.documentElement) { + abs.x += document.documentElement.scrollLeft; + abs.y += document.documentElement.scrollTop; + } + } + // accounts for border + abs.x -= elem.clientLeft || 0; + abs.y -= elem.clientTop || 0; + var par = elem; + while (par) { + abs.x -= par.offsetLeft || 0; + abs.y -= par.offsetTop || 0; + if (!isTouch) { + // touch events offset scrolling with pageX/Y + // so scroll offset not needed for them + abs.x += par.scrollLeft || 0; + abs.y += par.scrollTop || 0; + } + par = par.offsetParent; + } + // see loader + abs.x *= root._ratio || 1; + abs.y *= root._ratio || 1; + } +}; + +if (typeof define === 'function' && define.amd) { // AMD + define('Cut', [], function() { + return Cut; + }); +} \ No newline at end of file diff --git a/ajax/libs/cutjs/0.2.1/cut.fc.min.js b/ajax/libs/cutjs/0.2.1/cut.fc.min.js new file mode 100644 index 000000000..4aa20c395 --- /dev/null +++ b/ajax/libs/cutjs/0.2.1/cut.fc.min.js @@ -0,0 +1,8 @@ +/* + * CutJS 0.2.1 + * Copyright (c) 2013-2014 Ali Shakiba, Piqnt LLC and other contributors + * Available under the MIT license + * @license + */ +function Cut(){if(!(this instanceof Cut)){if("function"==typeof arguments[0])return Cut.Loader.load.apply(Cut.Loader,arguments);if("object"==typeof arguments[0])return Cut.Texture.add.apply(Cut.Texture,arguments)}Cut._stats.create++,this._id="",this._visible=!0,this._parent=null,this._next=null,this._prev=null,this._first=null,this._last=null,this._pin=new Cut.Pin(this),this._cutouts=[],this._tickBefore=[],this._tickAfter=[],this._alpha=1}DEBUG=("undefined"==typeof DEBUG||DEBUG)&&console,Cut._create=function(){if("function"==typeof Object.create)return function(){return Object.create.apply(null,arguments)};var t=function(){};return function(i){if(arguments.length>1)throw Error("Second argument is not supported!");if(null===i||"object"!=typeof i)throw Error("Invalid prototype!");return t.prototype=i,new t}}(),Cut._stats={create:0,tick:0,paint:0,paste:0},Cut.create=function(){return new Cut},Cut.prototype.render=function(t){Cut._stats.tick=Cut._stats.paint=Cut._stats.paste=0;var i=Cut._now(),e=this._lastTime?i-this._lastTime:0;this._lastTime=i,this._tick(e),this._paint(t),Cut._stats.fps=1e3/(Cut._now()-i)},Cut.prototype.MAX_ELAPSE=1/0,Cut.prototype._tick=function(t){if(this._visible){t>this.MAX_ELAPSE&&(t=this.MAX_ELAPSE),this._pin.tick();for(var i=this._tickBefore.length,e=0;i>e;e++)Cut._stats.tick++,this._tickBefore[e].call(this,t);for(var s,n=this._first;s=n;)n=s._next,s._tick(t);for(var i=this._tickAfter.length,e=0;i>e;e++)Cut._stats.tick++,this._tickAfter[e].call(this,t)}},Cut.prototype.tick=function(t,i){i?this._tickBefore.push(t):this._tickAfter.push(t)},Cut.prototype.untick=function(t){var i;t&&((i=this._tickBefore.indexOf(t))>=0?this._tickBefore.splice(i,1):(i=this._tickAfter.indexOf(t))>=0&&this._tickAfter.splice(i,1))},Cut.prototype._paint=function(t){if(this._visible){Cut._stats.paint++;var i=this._pin.absoluteMatrix();t.setTransform(i.a,i.b,i.c,i.d,i.e,i.f),this._alpha=this._pin._alpha*(this._parent?this._parent._alpha:1);var e=this._pin._textureAlpha*this._alpha;t.globalAlpha!=e&&(t.globalAlpha=e);for(var s=this._cutouts.length,n=0;s>n;n++)this._cutouts[n].paste(t);t.globalAlpha!=this._alpha&&(t.globalAlpha=this._alpha);for(var r,o=this._first;r=o;)o=r._next,r._paint(t)}},Cut.prototype.toString=function(){return"["+this._id+"]"},Cut.prototype.id=function(t){return arguments.length?(this._id=t,this):this._id},Cut.prototype.attr=function(t,i){return arguments.length<2?this._attrs?this._attrs[t]:void 0:((this._attrs?this._attrs:this._attrs={})[t]=i,this)},Cut.prototype.on=Cut.prototype.listen=function(t,i){if("function"!=typeof i)return this;t=(Cut._isArray(t)?t.join(" "):t).split(/\s+/);for(var e=0;e0&&this._listenOn(i)},Cut.prototype._listenOff=function(t){if("string"==typeof t)this._listenersCount=this._listenersCount||{},1==this._listenersCount[t]&&this._parent&&this._parent._listenOff(t),this._listenersCount[t]=Math.max((this._listenersCount[t]||0)-1,0);else if("object"==typeof t&&t._listenersCount)for(var i in t._listenersCount)t._listenersCount[i]>0&&this._listenOff(i)},Cut.prototype._listens=function(t){return this._listenersCount&&this._listenersCount[t]||0},Cut.prototype.touch=function(){return this._ts_touch=Cut._TS++,this._parent&&this._parent.touch(),this},Cut.prototype.pin=function(){if(!arguments.length)return this._pin;var t=this._pin.update.apply(this._pin,arguments);return t===this._pin?this:t},Cut.prototype.matrix=function(){return this._pin.absoluteMatrix(this,this._parent?this._parent._pin:null)},Cut.prototype.tween=function(t,i){return(this._tween||(this._tween=new Cut.Tween(this))).tween(t,i)},Cut.Tween=function(t){var i=this;this._owner=t,this._queue=[],this._next=null,t.tick(function(e){if(i._queue.length){this.touch();var s=i._queue[0];if(s.time?s.time+=e:s.time=1,!(s.time=1;r=r>1?1:r,r="function"==typeof s.easing?s.easing(r):r;var h=1-r;for(var n in s.keys)t.pin(n,s.start[n]*h+s.end[s.keys[n]]*r);o&&(i._queue.shift(),s.then&&s.then.call(t))}}},!0)},Cut.Tween.prototype.tween=function(t,i){return this._next={id:Cut._TS++,end:{},duration:t||400,delay:i||0},this},Cut.Tween.prototype.pin=function(){this._next!==this._queue[this._queue.length-1]&&(this._owner.touch(),this._queue.push(this._next));var t=this._next.end;return 1===arguments.length?Cut._extend(t,arguments[0]):2===arguments.length&&(t[arguments[0]]=arguments[1]),this},Cut.Tween.prototype.clear=function(t){for(var i;i=this._queue.shift();)t&&this._owner.pin(i.end);return this},Cut.Tween.prototype.then=function(t){return this._next.then=t,this},Cut.Tween.prototype.ease=function(t){return this._next.easing=Cut.Easing(t),this},Cut.root=function(t,i){return new Cut.Root(t,i)},Cut.Root=function(t,i){Cut.String.prototype._super.apply(this,arguments),this._paused=!0,this._render=i,this._request=t;var e=this,s=function(){e._paused!==!0&&(e._mo_touch=e._ts_touch,e._render(),e.request(),e._mo_touch==e._ts_touch&&e.pause())};this.request=function(){this._request.call(null,s)},this.on("viewport",function(t){return this._size={width:t.width,height:t.height},this._updateViewbox(),!0})},Cut.Root.prototype=Cut._create(Cut.prototype),Cut.Root.prototype._super=Cut,Cut.Root.prototype.constructor=Cut.Root,Cut.Root.prototype.viewbox=function(t,i,e){return this._viewbox={width:t,height:i,mode:/^(in|out)$/.test(e)?e:"in"},this._updateViewbox(),this},Cut.Root.prototype._updateViewbox=function(){var t=this._viewbox,i=this._size;i&&this.pin(t?{width:t.width,height:t.height,resizeMode:t.mode,resizeWidth:i.width,resizeHeight:i.height}:{width:i.width,height:i.height})},Cut.Root.prototype.start=function(){return this.resume()},Cut.Root.prototype.resume=function(t){return(this._paused||t)&&(this._paused=!1,this.request()),this},Cut.Root.prototype.pause=function(){return this._paused=!0,this},Cut.Root.prototype.touch=function(){return this.resume(),Cut.prototype.touch.apply(this,arguments)},Cut.Root.prototype.resize=function(t,i,e){this._ratio=e||1;var s={};return s.width=t,s.height=i,s.ratio=e,this.visit({start:function(t){return t._listens("viewport")?void t.publish("viewport",[s]):!0}}),this},Cut.image=function(t){var i=new Cut.Image;return t&&i.image(t),i},Cut.Image=function(){Cut.Image.prototype._super.apply(this,arguments)},Cut.Image.prototype=Cut._create(Cut.prototype),Cut.Image.prototype._super=Cut,Cut.Image.prototype.constructor=Cut.Image,Cut.Image.prototype.setImage=function(){this.image.apply(this,arguments)},Cut.Image.prototype.image=function(t){return this._cutouts[0]=Cut.Out.select(t),this._cutouts.length=1,this.pin({width:this._cutouts[0]?this._cutouts[0].dWidth():0,height:this._cutouts[0]?this._cutouts[0].dHeight():0}),this._cutout=this._cutouts[0].clone(),this},Cut.Image.prototype.cropX=function(t,i){return this.image(this._cutouts[0].cropX(t,i))},Cut.Image.prototype.cropY=function(t,i){return this.image(this._cutouts[0].cropY(t,i))},Cut.Image.prototype._slice=function(t){return this._cutouts[t]||(this._cutouts[t]=this._cutout.clone())},Cut.Image.prototype.tile=function(t){return this.untick(this._repeatTicker),this._repeatTicker=function(){if(this._mo_tile!=this._ts_touch){this._mo_tile=this._ts_touch;var i=this._cutout._left,e=this._cutout._right,s=this._cutout._top,n=this._cutout._bottom,r=this._cutout.dWidth()-i-e,o=this._cutout.dHeight()-s-n,h=this.pin("width");h=t?h:h-i-e;var u=this.pin("height");u=t?u:u-s-n;var a=t?-i:0,_=t?-s:0,c=0;s&&i&&this._slice(c++).cropX(i,0).cropY(s,0).offset(a,_),n&&i&&this._slice(c++).cropX(i,0).cropY(n,o+s).offset(a,_+u+s),s&&e&&this._slice(c++).cropX(e,r+i).cropY(s,0).offset(a+h+i,_),n&&e&&this._slice(c++).cropX(e,r+i).cropY(n,o+s).offset(a+h+i,_+u+s);for(var f=a+i,p=h;p>0;){var l=Math.min(r,p);p-=r;for(var d=_+s,g=u;g>0;){var m=Math.min(o,g);g-=o,this._slice(c++).cropX(l,i).cropY(m,s).offset(f,d),0>=p&&(i&&this._slice(c++).cropX(i,0).cropY(m,s).offset(a,d),e&&this._slice(c++).cropX(e,r+i).cropY(m,s).offset(f+l,d)),d+=m}s&&this._slice(c++).cropX(l,i).cropY(s,0).offset(f,_),n&&this._slice(c++).cropX(l,i).cropY(n,o+s).offset(f,d),f+=l}this._cutouts.length=c}},this.tick(this._repeatTicker),this},Cut.Image.prototype.stretch=function(t){return this.untick(this._repeatTicker),this._repeatTicker=function(){if(this._mo_stretch!=this._pin._ts_transform){this._mo_stretch=this._pin._ts_transform;var i=this._cutout._left,e=this._cutout._right,s=this._cutout._top,n=this._cutout._bottom,r=this._cutout.dWidth(),o=this._cutout.dHeight(),h=this.pin("width"),u=this.pin("height");h=t?h+i+e:Math.max(h,i+e),u=t?u+s+n:Math.max(u,s+n);var a=0;s&&i&&this._slice(a++).cropX(i,0).cropY(s,0).offset(0,0),n&&i&&this._slice(a++).cropX(i,0).cropY(n,o-n).offset(0,u-n),s&&e&&this._slice(a++).cropX(e,r-e).cropY(s,0).offset(h-e,0),n&&e&&this._slice(a++).cropX(e,r-e).cropY(n,o-n).offset(h-e,u-n),s&&this._slice(a++).cropX(r-i-e,i).cropY(s,0).offset(i,0).dWidth(h-i-e),n&&this._slice(a++).cropX(r-i-e,i).cropY(n,o-n).offset(i,u-n).dWidth(h-i-e),i&&this._slice(a++).cropX(i,0).cropY(o-s-n,s).offset(0,s).dHeight(u-s-n),e&&this._slice(a++).cropX(e,r-e).cropY(o-s-n,s).offset(h-e,s).dHeight(u-s-n),this._slice(a++).cropX(r-i-e,i).cropY(o-s-n,s).offset(i,s).dWidth(h-i-e).dHeight(u-s-n),this._cutouts.length=a}},this.tick(this._repeatTicker),this},Cut.anim=function(t,i){var e=(new Cut.Anim).frames(t).gotoFrame(0);return i&&e.fps(i),e},Cut.Anim=function(){Cut.Anim.prototype._super.apply(this,arguments),this._fps=Cut.Anim.FPS,this._ft=1e3/this._fps,this._time=0,this._frame=0,this._frames=[],this._labels={},this.tick(function(){if(this._time&&this._frames.length>1){var t=Cut._now()-this._time;if(t>=this._ft){var i=t<2*this._ft?1:Math.floor(t/this._ft);this._time+=i*this._ft,this.moveFrame(i),this._repeat&&(this._repeat-=i)<=0&&(this.stop(),this._callback&&this._callback())}this.touch()}},!1)},Cut.Anim.prototype=Cut._create(Cut.prototype),Cut.Anim.prototype._super=Cut,Cut.Anim.prototype.constructor=Cut.Anim,Cut.Anim.FPS=22,Cut.Anim.prototype.fps=function(t){return arguments.length?(this._fps=t||Cut.Anim.FPS,this._ft=1e3/this._fps,this):this._fps},Cut.Anim.prototype.setFrames=function(){this.frames.apply(this,arguments)},Cut.Anim.prototype.frames=function(t){if(this._time=this._time||0,this._frame=0,this._frames=[],this._labels={},t=Cut.Out.select(t,!0),t&&t.length)for(var i=0;i=0;t--)e[t].pause()},resume:function(){for(var t=i.length-1;t>=0;t--)e[t].resume()},getImage:function(t){return s[t]},addImage:function(t,i){return s[i]=t,this}}}(),Cut.Texture=function(t){function i(){return r||(r=Cut.Loader.getImage(t.imagePath)),r}function e(i){if(!i||i.isCutout)return i;"function"==typeof t.map?i=t.map(i):"function"==typeof t.filter&&(i=t.filter(i));var e=t.ratio||1;1!=e&&(i.x*=e,i.y*=e,i.width*=e,i.height*=e,i.top*=e,i.bottom*=e,i.left*=e,i.right*=e);var s=t.trim||0;return s&&(i.x+=s,i.y+=s,i.width-=2*s,i.height-=2*s,i.top-=s,i.bottom-=s,i.left-=s,i.right-=s),i}function s(e){return e.isCutout||(e=new Cut.Out(e,i,t.imageRatio)),e}t.cutouts=t.cutouts||[];var n={},r=null;this.getImagePath=function(){return t.imagePath};for(var o=0;oe)throw"Invalid selector: '"+t+"'";var s=[t.slice(0,e),t.slice(e+1)],n=Cut.Texture._list[s[0]];if(null==n)throw"Texture not found: '"+t+"'";return n.select(s[1],i)},Cut.drawing=function(){return Cut.image(Cut.Out.drawing.apply(Cut.Out,arguments))},Cut.Out.drawing=function(){var t=document.createElement("canvas"),i=t.getContext("2d"),e={},s=0;"object"==typeof arguments[s]?e=arguments[s++]:("string"==typeof arguments[s]&&(e.name=arguments[s++]),e.width=arguments[s++],e.height=arguments[s++],"number"==typeof arguments[s]&&(e.ratio=arguments[s++]),e.x=0,e.y=0),e.ratio=e.ratio||1,e.name=e.name||1e3*Math.random()|0,t.width=Math.ceil(e.width*e.ratio),t.height=Math.ceil(e.height*e.ratio);var n=new Cut.Out(e,t,e.ratio);return"function"==typeof arguments[arguments.length-1]&&arguments[arguments.length-1].call(n,i,e.ratio),n},Cut.Pin=function(t){this._owner=t,this._parent=null,this._relativeMatrix=new Cut.Matrix,this._absoluteMatrix=new Cut.Matrix,this.reset()},Cut.Pin.prototype.reset=function(){this._textureAlpha=1,this._alpha=1,this._width=0,this._height=0,this._scaleX=1,this._scaleY=1,this._skewX=0,this._skewY=0,this._rotation=0,this._pivoted=!1,this._pivotX=null,this._pivotY=null,this._handled=!1,this._handleX=0,this._handleY=0,this._aligned=!1,this._alignX=0,this._alignY=0,this._offsetX=0,this._offsetY=0,this._boxX=0,this._boxY=0,this._boxWidth=this._width,this._boxHeight=this._height,this._ts_translate=Cut._TS++,this._ts_transform=Cut._TS++,this._ts_matrix=Cut._TS++},Cut.Pin.prototype.tick=function(){return this._parent=this._owner._parent&&this._owner._parent._pin,this._handled&&this._mo_handle!=this._ts_transform&&(this._mo_handle=this._ts_transform,this._ts_translate=Cut._TS++),this._aligned&&this._parent&&this._mo_align!=this._parent._ts_transform&&(this._mo_align=this._parent._ts_transform,this._ts_translate=Cut._TS++),this},Cut.Pin.prototype.toString=function(){return this._owner.id()+" ["+this._alignX+", "+this._alignY+"] ["+this._handleX+", "+this._handleY+"] ["+(this._parent?this._parent._owner.id():null)+"]"},Cut.Pin.prototype.absoluteMatrix=function(){var t=Math.max(this._ts_transform,this._ts_translate,this._parent?this._parent._ts_matrix:0);if(this._mo_abs==t)return this._absoluteMatrix;this._mo_abs=t;var i=this._absoluteMatrix;return i.copyFrom(this.relativeMatrix()),this._parent&&i.concat(this._parent._absoluteMatrix),this._ts_matrix=Cut._TS++,i},Cut.Pin.prototype.relativeMatrix=function(){var t=Math.max(this._ts_transform,this._ts_translate,this._parent?this._parent._ts_transform:0);if(this._mo_rel==t)return this._relativeMatrix;this._mo_rel=t;var i=this._relativeMatrix;if(i.identity(),this._pivoted&&i.translate(-this._pivotX*this._width,-this._pivotY*this._height),i.scale(this._scaleX,this._scaleY),i.skew(this._skewX,this._skewY),i.rotate(this._rotation),this._pivoted&&i.translate(this._pivotX*this._width,this._pivotY*this._height),this._pivoted)this._boxX=0,this._boxY=0,this._boxWidth=this._width,this._boxHeight=this._height;else{var e,s,n=i;n.a>0&&n.c>0||n.a<0&&n.c<0?(e=0,s=n.a*this._width+n.c*this._height):(e=n.a*this._width,s=n.c*this._height),e>s?(this._boxX=s,this._boxWidth=e-s):(this._boxX=e,this._boxWidth=s-e),n.b>0&&n.d>0||n.b<0&&n.d<0?(e=0,s=n.b*this._width+n.d*this._height):(e=n.b*this._width,s=n.d*this._height),e>s?(this._boxY=s,this._boxHeight=e-s):(this._boxY=e,this._boxHeight=s-e)}return this._x=this._offsetX,this._y=this._offsetY,this._x-=this._boxX+this._handleX*this._boxWidth,this._y-=this._boxY+this._handleY*this._boxHeight,this._aligned&&this._parent&&(this._parent.relativeMatrix(),this._x+=this._alignX*this._parent._width,this._y+=this._alignY*this._parent._height),i.translate(this._x,this._y),this._relativeMatrix},Cut.Pin._SINGLE={},Cut.Pin.prototype.update=function(){if(1==arguments.length&&"string"==typeof arguments[0])return this["_"+arguments[0]];this._transform_flag=!1,this._translate_flag=!1;var t=null,i=null,e=null;if(2==arguments.length&&"string"==typeof arguments[0]){for(i in Cut.Pin._SINGLE)delete Cut.Pin._SINGLE[i];(t=Cut.Pin._SINGLE)[arguments[0]]=arguments[1]}else 1==arguments.length&&"object"==typeof arguments[0]&&(t=arguments[0]);if(t)for(i in t)"undefined"!=typeof(e=t[i])&&(setter=Cut.Pin._setters[i])&&setter.call(Cut.Pin._setters,this,e,t);return this._translate_flag&&(this._translate_flag=!1,this._ts_translate=Cut._TS++),this._transform_flag&&(this._transform_flag=!1,this._ts_transform=Cut._TS++),this._owner&&(this._owner._ts_pin=Cut._TS++,this._owner.touch()),this},Cut.Pin._setters={alpha:function(t,i){t._alpha=i},textureAlpha:function(t,i){t._textureAlpha=i},width:function(t,i){t._width_=i,t._width=i,t._transform_flag=!0},height:function(t,i){t._height_=i,t._height=i,t._transform_flag=!0},scale:function(t,i){t._scaleX=i,t._scaleY=i,t._transform_flag=!0},scaleX:function(t,i){t._scaleX=i,t._transform_flag=!0},scaleY:function(t,i){t._scaleY=i,t._transform_flag=!0},skew:function(t,i){t._skewX=i,t._skewY=i,t._transform_flag=!0},skewX:function(t,i){t._skewX=i,t._transform_flag=!0},skewY:function(t,i){t._skewY=i,t._transform_flag=!0},rotation:function(t,i){t._rotation=i,t._transform_flag=!0},pivot:function(t,i){t._pivotX=i,t._pivotY=i,t._pivoted=!0,t._transform_flag=!0},pivotX:function(t,i){t._pivotX=i,t._pivoted=!0,t._transform_flag=!0},pivotY:function(t,i){t._pivotY=i,t._pivoted=!0,t._transform_flag=!0},offset:function(t,i){t._offsetX=i,t._offsetY=i,t._translate_flag=!0},offsetX:function(t,i){t._offsetX=i,t._translate_flag=!0},offsetY:function(t,i){t._offsetY=i,t._translate_flag=!0},align:function(){this.alignX.apply(this,arguments),this.alignY.apply(this,arguments)},alignX:function(t,i,e){t._alignX=i,t._aligned=!0,t._translate_flag=!0,this.handleX(t,i,e)},alignY:function(t,i,e){t._alignY=i,t._aligned=!0,t._translate_flag=!0,this.handleY(t,i,e)},handle:function(t,i,e){this.handleX(t,i,e),this.handleY(t,i,e)},handleX:function(t,i){t._handleX=i,t._handled=!0,t._translate_flag=!0},handleY:function(t,i){t._handleY=i,t._handled=!0,t._translate_flag=!0},resizeMode:function(t,i,e){Cut._isNum(e.resizeWidth)&&Cut._isNum(e.resizeHeight)&&(this.resizeWidth(t,e.resizeWidth,e,!0),this.resizeHeight(t,e.resizeHeight,e,!0),"out"==i?t._scaleX=t._scaleY=Math.max(t._scaleX,t._scaleY):"in"==i&&(t._scaleX=t._scaleY=Math.min(t._scaleX,t._scaleY)),t._width=e.resizeWidth/t._scaleX,t._height=e.resizeHeight/t._scaleY)},resizeWidth:function(t,i,e,s){(!e.resizeMode||s)&&(t._scaleX=i/t._width_,t._width=t._width_,t._transform_flag=!0)},resizeHeight:function(t,i,e,s){(!e.resizeMode||s)&&(t._scaleY=i/t._height_,t._height=t._height_,t._transform_flag=!0)},scaleMode:function(t,i,e){Cut._isNum(e.scaleWidth)&&Cut._isNum(e.scaleHeight)&&(this.scaleWidth(t,e.scaleWidth,e,!0),this.scaleHeight(t,e.scaleHeight,e,!0),"out"==i?t._scaleX=t._scaleY=Math.max(t._scaleX,t._scaleY):"in"==i&&(t._scaleX=t._scaleY=Math.min(t._scaleX,t._scaleY)))},scaleWidth:function(t,i,e,s){(!e.scaleMode||s)&&(t._scaleX=i/t._width_,t._transform_flag=!0)},scaleHeight:function(t,i,e,s){(!e.scaleMode||s)&&(t._scaleY=i/t._height_,t._transform_flag=!0)},matrix:function(t,i,e){this.scaleX(t,i.a,e),this.skewX(t,i.c/i.d,e),this.skewY(t,i.b/i.a,e),this.scaleY(t,i.d,e),this.offsetX(t,i.e,e),this.offsetY(t,i.f,e),this.rotation(t,0,e)}},Cut.Matrix=function(t,i,e,s,n,r){this.changed=!0,this.a=t||1,this.b=i||0,this.c=e||0,this.d=s||1,this.e=n||0,this.f=r||0},Cut.Matrix.prototype.toString=function(){return"["+this.a+", "+this.b+", "+this.c+", "+this.d+", "+this.e+", "+this.f+"]"},Cut.Matrix.prototype.clone=function(){return new Cut.Matrix(this.a,this.b,this.c,this.d,this.e,this.f)},Cut.Matrix.prototype.copyTo=function(t){return t.copyFrom(this),this},Cut.Matrix.prototype.copyFrom=function(t){return this.changed=!0,this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.e=t.e,this.f=t.f,this},Cut.Matrix.prototype.identity=function(){return this.changed=!0,this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0,this},Cut.Matrix.prototype.rotate=function(t){if(!t)return this;this.changed=!0;var i=t?Math.cos(t):1,e=t?Math.sin(t):0,s=i*this.a-e*this.b,n=i*this.b+e*this.a,r=i*this.c-e*this.d,o=i*this.d+e*this.c,h=i*this.e-e*this.f,u=i*this.f+e*this.e;return this.a=s,this.b=n,this.c=r,this.d=o,this.e=h,this.f=u,this},Cut.Matrix.prototype.translate=function(t,i){return t||i?(this.changed=!0,this.e+=t,this.f+=i,this):this},Cut.Matrix.prototype.scale=function(t,i){return t-1||i-1?(this.changed=!0,this.a*=t,this.b*=i,this.c*=t,this.d*=i,this.e*=t,this.f*=i,this):this},Cut.Matrix.prototype.skew=function(t,i){if(!t&&!i)return this;this.changed=!0;var e=this.a+this.b*t,s=this.b+this.a*i,n=this.c+this.d*t,r=this.d+this.c*i,o=this.e+this.f*t,h=this.f+this.e*i;return this.a=e,this.b=s,this.c=n,this.d=r,this.e=o,this.f=h,this},Cut.Matrix.prototype.concat=function(t){this.changed=!0;var i=this,e=i.a*t.a+i.b*t.c,s=i.b*t.d+i.a*t.b,n=i.c*t.a+i.d*t.c,r=i.d*t.d+i.c*t.b,o=i.e*t.a+t.e+i.f*t.c,h=i.f*t.d+t.f+i.e*t.b;return this.a=e,this.b=s,this.c=n,this.d=r,this.e=o,this.f=h,this},Cut.Matrix.prototype.reverse=function(){if(this.changed){this.changed=!1,this.reversed=this.reversed||new Cut.Matrix; +var t=this.a*this.d-this.b*this.c;this.reversed.a=this.d/t,this.reversed.b=-this.b/t,this.reversed.c=-this.c/t,this.reversed.d=this.a/t,this.reversed.e=(this.c*this.f-this.e*this.d)/t,this.reversed.f=(this.e*this.b-this.a*this.f)/t}return this.reversed},Cut.Matrix.prototype.map=function(t,i){return i=i||{},i.x=this.a*t.x+this.c*t.y+this.e,i.y=this.b*t.x+this.d*t.y+this.f,i},Cut.Matrix.prototype.mapX=function(t,i){return this.a*t+this.c*i+this.e},Cut.Matrix.prototype.mapY=function(t,i){return this.b*t+this.d*i+this.f},Cut.Math={},Cut.Math.random=function(t,i){return 0==arguments.length?(i=1,t=0):1==arguments.length&&(i=t,t=0),t==i?t:Math.random()*(i-t)+t},Cut.Math.rotate=function(t,i,e){return arguments.length<3&&(e=i||0,i=0),e>i?(t=(t-i)%(e-i),t+(0>t?e:i)):(t=(t-e)%(i-e),t+(0>=t?i:e))},Cut.Math.length=function(t,i){return Math.sqrt(t*t+i*i)},Cut._TS=0,Cut._isCut=function(t){return t instanceof Cut},Cut._isNum=function(t){return"number"==typeof t},Cut._isFunc=function(t){return"function"==typeof t},Cut._isArray="isArray"in Array?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},Cut._extend=function(t,i,e){if(e)for(var s=0;si?t(2*i)/2:1-t(2*(1-i))/2}}}),Cut.Easing.addMode({name:"out-in",fn:function(t){return function(i){return.5>i?1-t(2*(1-i))/2:t(2*i)/2}}}),Cut.Easing.add({name:"linear",fn:function(t){return t}}),Cut.Easing.add({name:"quad",fn:function(t){return t*t}}),Cut.Easing.add({name:"cubic",fn:function(t){return t*t*t}}),Cut.Easing.add({name:"quart",fn:function(t){return t*t*t*t}}),Cut.Easing.add({name:"quint",fn:function(t){return t*t*t*t*t}}),Cut.Easing.add({name:"sin sine",fn:function(t){return 1-Math.cos(t*Math.PI/2)}}),Cut.Easing.add({name:"exp",fn:function(t){return 0==t?0:Math.pow(2,10*(t-1))}}),Cut.Easing.add({name:"circle circ",fn:function(t){return 1-Math.sqrt(1-t*t)}}),Cut.Easing.add({name:"bounce",fn:function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}}),Cut.Easing.add({name:"poly",fc:function(t){return function(i){return Math.pow(i,t)}}}),Cut.Easing.add({name:"elastic",fc:function(t,i){i=i||.45,t=t||1;var e=i/(2*Math.PI)*Math.asin(1/t);return function(s){return 1+t*Math.pow(2,-10*s)*Math.sin(2*(s-e)*Math.PI/i)}}}),Cut.Easing.add({name:"back",fc:function(t){return t=arguments.length?t:1.70158,function(i){return i*i*((t+1)*i-t)}}}),"undefined"!=typeof module&&(module.exports=Cut),"undefined"==typeof Cut&&"function"==typeof require&&(Cut=require("./cut-core")),DEBUG=("undefined"==typeof DEBUG||DEBUG)&&console,window.addEventListener("load",function(){DEBUG&&console.log("On load."),Cut.Loader.start()},!1),Cut.Loader.init=function(t,i){function e(){r?(o=window.innerWidth>0?window.innerWidth:screen.width,h=window.innerHeight>0?window.innerHeight:screen.height,s.style.width=o+"px",s.style.height=h+"px"):(o=s.clientWidth,h=s.clientHeight),o*=u,h*=u,s.width=o,s.height=h,DEBUG&&console.log("Resize: "+o+" x "+h+" / "+u),p.resize(o,h,u)}i=i||{};var s=i.canvas,n=null,r=!1,o=0,h=0,u=1;if("string"==typeof s&&(s=document.getElementById(s)),s||(s=document.getElementById("cutjs")),!s){r=!0,DEBUG&&console.log("Creating element..."),s=document.createElement("canvas"),s.style.position="absolute";var a=document.body;a.insertBefore(s,a.firstChild)}n=s.getContext("2d");var _=window.devicePixelRatio||1,c=n.webkitBackingStorePixelRatio||n.mozBackingStorePixelRatio||n.msBackingStorePixelRatio||n.oBackingStorePixelRatio||n.backingStorePixelRatio||1;u=_/c;var f=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)};DEBUG&&console.log("Creating root...");var p=Cut.root(f,function(){n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,o,h),this.render(n)});return t(p,s),e(),window.addEventListener("resize",e,!1),p},Cut.Loader.loadImage=function(t,i,e){var s=new Image;return DEBUG&&console.log("Loading image: "+t),s.onload=i,s.onerror=e,s.src=t,s},"undefined"==typeof Cut&&"function"==typeof require&&(Cut=require("./cut-core")),DEBUG=("undefined"==typeof DEBUG||DEBUG)&&console,Cut.Mouse=function(){Cut.Mouse.subscribe.apply(Cut.Mouse,arguments)},Cut.Mouse.CLICK="click",Cut.Mouse.START="touchstart mousedown",Cut.Mouse.MOVE="touchmove mousemove",Cut.Mouse.END="touchend mouseup",Cut.Mouse.subscribe=function(t,i,e){function s(t,s){u(t,i),DEBUG&&console.log("Mouse Start: "+t.type+" "+_),!e&&i.addEventListener(s,r),t.preventDefault(),h(t.type,t),f.x=_.x,f.y=_.y,f.state=1}function n(t,s){try{DEBUG&&console.log("Mouse End: "+t.type+" "+_),!e&&i.removeEventListener(s,r),t.preventDefault(),h(t.type,t),1==f.state&&f.x==_.x&&f.y==_.y?(DEBUG&&console.log("Mouse Click [+]"),h("click",t),f.state=2):f.state=0}catch(n){console&&console.log(n)}}function r(t){try{u(t,i),t.preventDefault(),h(t.type,t)}catch(e){console&&console.log(e)}}function o(t){try{u(t,i),DEBUG&&console.log("Mouse Click: "+t.type+" "+_),t.preventDefault(),2!=f.state?h(t.type,t):DEBUG&&console.log("Mouse Click [-]")}catch(e){console&&console.log(e)}}function h(i,e){_.type=i,_.event=e,c.x=_.x,c.y=_.y,t.visit(a)}function u(i,e){var s=!1;if(i.touches){if(!i.touches.length)return;s=!0,_.x=i.touches[0].pageX,_.y=i.touches[0].pageY}else _.x=i.clientX,_.y=i.clientY,document.body.scrollLeft||document.body.scrollTop||document.documentElement&&(_.x+=document.documentElement.scrollLeft,_.y+=document.documentElement.scrollTop);_.x-=e.clientLeft||0,_.y-=e.clientTop||0;for(var n=e;n;)_.x-=n.offsetLeft||0,_.y-=n.offsetTop||0,s||(_.x+=n.scrollLeft||0,_.y+=n.scrollTop||0),n=n.offsetParent;_.x*=t._ratio||1,_.y*=t._ratio||1}i=i||document,i.addEventListener("click",o),"ontouchstart"in window?(i.addEventListener("touchstart",function(t){s(t,"touchmove")}),i.addEventListener("touchend",function(t){n(t,"touchmove")}),e&&i.addEventListener("touchmove",r)):(i.addEventListener("mousedown",function(t){s(t,"mousemove")}),i.addEventListener("mouseup",function(t){n(t,"mousemove")}),e&&i.addEventListener("mousemove",r));var a=null,_={x:0,y:0,toString:function(){return(0|this.x)+"x"+(0|this.y)}},c={x:0,y:0,toString:function(){return _+" / "+(0|this.x)+"x"+(0|this.y)}},f={x:0,y:0,state:0};a={reverse:!0,visible:!0,start:function(t){return t._listens(_.type)?void 0:!0},end:function(i){var e=i.listeners(_.type);if(e){if(i.matrix().reverse().map(_,c),i===t||i.attr("spy"));else if(c.x<0||c.x>i._pin._width||c.y<0||c.y>i._pin._height)return;c.raw=_.event;for(var s=0;s 1) { + throw Error("Second argument is not supported!"); + } + if (proto === null || typeof proto != "object") { + throw Error("Invalid prototype!"); + } + F.prototype = proto; + return new F(); + }; + } +}(); + +Cut._stats = { + create: 0, + tick: 0, + paint: 0, + paste: 0 +}; + +Cut.create = function() { + return new Cut(); +}; + +Cut.prototype.render = function(context) { + Cut._stats.tick = Cut._stats.paint = Cut._stats.paste = 0; + var now = Cut._now(); + var elapsed = this._lastTime ? now - this._lastTime : 0; + this._lastTime = now; + this._tick(elapsed); + this._paint(context); + Cut._stats.fps = 1e3 / (Cut._now() - now); +}; + +Cut.prototype.MAX_ELAPSE = Infinity; + +Cut.prototype._tick = function(elapsed) { + if (!this._visible) { + return; + } + if (elapsed > this.MAX_ELAPSE) { + elapsed = this.MAX_ELAPSE; + } + this._pin.tick(); + var length = this._tickBefore.length; + for (var i = 0; i < length; i++) { + Cut._stats.tick++; + this._tickBefore[i].call(this, elapsed); + } + var child, next = this._first; + while (child = next) { + next = child._next; + child._tick(elapsed); + } + var length = this._tickAfter.length; + for (var i = 0; i < length; i++) { + Cut._stats.tick++; + this._tickAfter[i].call(this, elapsed); + } +}; + +Cut.prototype.tick = function(ticker, before) { + if (before) { + this._tickBefore.push(ticker); + } else { + this._tickAfter.push(ticker); + } +}; + +Cut.prototype.untick = function(ticker) { + var i; + if (!ticker) {} else if ((i = this._tickBefore.indexOf(ticker)) >= 0) { + this._tickBefore.splice(i, 1); + } else if ((i = this._tickAfter.indexOf(ticker)) >= 0) { + this._tickAfter.splice(i, 1); + } +}; + +Cut.prototype._paint = function(context) { + if (!this._visible) { + return; + } + Cut._stats.paint++; + var m = this._pin.absoluteMatrix(); + context.setTransform(m.a, m.b, m.c, m.d, m.e, m.f); + this._alpha = this._pin._alpha * (this._parent ? this._parent._alpha : 1); + var alpha = this._pin._textureAlpha * this._alpha; + if (context.globalAlpha != alpha) { + context.globalAlpha = alpha; + } + var length = this._cutouts.length; + for (var i = 0; i < length; i++) { + this._cutouts[i].paste(context); + } + if (context.globalAlpha != this._alpha) { + context.globalAlpha = this._alpha; + } + var child, next = this._first; + while (child = next) { + next = child._next; + child._paint(context); + } +}; + +Cut.prototype.toString = function() { + return "[" + this._id + "]"; +}; + +Cut.prototype.id = function(id) { + if (!arguments.length) { + return this._id; + } + this._id = id; + return this; +}; + +Cut.prototype.attr = function(name, value) { + if (arguments.length < 2) { + return this._attrs ? this._attrs[name] : undefined; + } + (this._attrs ? this._attrs : this._attrs = {})[name] = value; + return this; +}; + +Cut.prototype.on = Cut.prototype.listen = function(types, listener) { + if (typeof listener !== "function") { + return this; + } + types = (Cut._isArray(types) ? types.join(" ") : types).split(/\s+/); + for (var i = 0; i < types.length; i++) { + var type = types[i]; + if (type) { + this._listeners = this._listeners || {}; + this._listeners[type] = this._listeners[type] || []; + this._listeners[type].push(listener); + this._listenOn(type); + } + } + return this; +}; + +Cut.prototype.listeners = function(type) { + return this._listeners && this._listeners[type]; +}; + +Cut.prototype.publish = function(name, args) { + var listeners = this.listeners(name); + if (!listeners || !listeners.length) { + return 0; + } + for (var l = 0; l < listeners.length; l++) { + listeners[l].apply(this, args); + } + return listeners.length; +}; + +Cut.prototype.trigger = function(name, args) { + this.publish(name, args); + return this; +}; + +Cut.prototype.visit = function(visitor) { + var reverse = visitor.reverse; + var visible = visitor.visible; + if (visitor.start && visitor.start(this)) { + return; + } + var child, next = reverse ? this.last(visible) : this.first(visible); + while (child = next) { + next = reverse ? child.prev(visible) : child.next(visible); + if (child.visit(visitor, reverse)) { + return true; + } + } + return visitor.end && visitor.end(this); +}; + +Cut.prototype.visible = function(visible) { + if (!arguments.length) { + return this._visible; + } + this._visible = visible; + this._parent && (this._parent._ts_children = Cut._TS++); + this._ts_pin = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype.hide = function() { + return this.visible(false); +}; + +Cut.prototype.show = function() { + return this.visible(true); +}; + +Cut.prototype.parent = function() { + return this._parent; +}; + +Cut.prototype.next = function(visible) { + var next = this._next; + while (next && visible && !next._visible) { + next = next._next; + } + return next; +}; + +Cut.prototype.prev = function(visible) { + var prev = this._prev; + while (prev && visible && !prev._visible) { + prev = prev._prev; + } + return prev; +}; + +Cut.prototype.first = function(visible) { + var next = this._first; + while (next && visible && !next._visible) { + next = next._next; + } + return next; +}; + +Cut.prototype.last = function(visible) { + var prev = this._last; + while (prev && visible && !prev._visible) { + prev = prev._prev; + } + return prev; +}; + +Cut.prototype.append = function() { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i].appendTo(this); + } + return this; +}; + +Cut.prototype.prepend = function() { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i].prependTo(this); + } + return this; +}; + +Cut.prototype.appendTo = function(parent) { + if (!parent) { + throw "Parent is null!"; + } + if (!Cut._isCut(parent)) { + throw "It is not a Cut node!"; + } + this.remove(); + if (parent._last) { + parent._last._next = this; + this._prev = parent._last; + } + this._parent = parent; + parent._last = this; + if (!parent._first) { + parent._first = this; + } + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + parent._ts_children = Cut._TS++; + parent.touch(); + return this; +}; + +Cut.prototype.prependTo = function(parent) { + if (!parent) { + throw "Parent is null!"; + } + if (!Cut._isCut(parent)) { + throw "It is not a Cut node!"; + } + this.remove(); + if (parent._first) { + parent._first._prev = this; + this._next = parent._first; + } + this._parent = parent; + parent._first = this; + if (!parent._last) { + parent._last = this; + } + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + parent._ts_children = Cut._TS++; + parent.touch(); + return this; +}; + +Cut.prototype.insertNext = function() { + if (arguments.length) { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i] && arguments[i].insertAfter(this); + } + } + return this; +}; + +Cut.prototype.insertPrev = function() { + if (arguments.length) { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i] && arguments[i].insertBefore(this); + } + } + return this; +}; + +Cut.prototype.insertBefore = function(next) { + if (!next) { + throw "Next is null!"; + } + if (!Cut._isCut(next)) { + throw "It is not a Cut node!"; + } + this.remove(); + var parent = next._parent; + var prev = next._prev; + next._prev = this; + prev && (prev._next = this) || parent && (parent._first = this); + this._parent = parent; + this._prev = prev; + this._next = next; + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype.insertAfter = function(prev) { + if (!prev) { + throw "Prev is null!"; + } + if (!Cut._isCut(prev)) { + throw "It is not a Cut node!"; + } + this.remove(); + var parent = prev._parent; + var next = prev._next; + prev._next = this; + next && (next._prev = this) || parent && (parent._last = this); + this._parent = parent; + this._prev = prev; + this._next = next; + this._parent._listenOn(this); + this._ts_parent = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype.remove = function() { + if (arguments.length) { + for (var i = 0; i < arguments.length; i++) { + if (!Cut._isCut(arguments[i])) { + throw "It is not a Cut node!"; + } + arguments[i] && arguments[i].remove(); + } + return this; + } + if (this._prev) { + this._prev._next = this._next; + } + if (this._next) { + this._next._prev = this._prev; + } + if (this._parent) { + if (this._parent._first === this) { + this._parent._first = this._next; + } + if (this._parent._last === this) { + this._parent._last = this._prev; + } + this._parent._listenOff(this); + this._parent._ts_children = Cut._TS++; + this._parent.touch(); + } + this._prev = this._next = this._parent = null; + this._ts_parent = Cut._TS++; + // this._parent.touch(); + return this; +}; + +Cut.prototype.empty = function() { + var child, next = this._first; + while (child = next) { + next = child._next; + child._prev = child._next = child._parent = null; + this._listenOff(child); + } + this._first = this._last = null; + this._ts_children = Cut._TS++; + this.touch(); + return this; +}; + +Cut.prototype._listenOn = function(obj) { + if (typeof obj === "string") { + this._listenersCount = this._listenersCount || {}; + if (!this._listenersCount[obj] && this._parent) { + this._parent._listenOn(obj); + } + this._listenersCount[obj] = (this._listenersCount[obj] || 0) + 1; + } else if (typeof obj === "object") { + if (obj._listenersCount) { + for (var type in obj._listenersCount) { + if (obj._listenersCount[type] > 0) { + this._listenOn(type); + } + } + } + } +}; + +Cut.prototype._listenOff = function(obj) { + if (typeof obj === "string") { + this._listenersCount = this._listenersCount || {}; + if (this._listenersCount[obj] == 1 && this._parent) { + this._parent._listenOff(obj); + } + this._listenersCount[obj] = Math.max((this._listenersCount[obj] || 0) - 1, 0); + } else if (typeof obj === "object") { + if (obj._listenersCount) { + for (var type in obj._listenersCount) { + if (obj._listenersCount[type] > 0) { + this._listenOff(type); + } + } + } + } +}; + +Cut.prototype._listens = function(type) { + return this._listenersCount && this._listenersCount[type] || 0; +}; + +Cut.prototype.touch = function() { + this._ts_touch = Cut._TS++; + this._parent && this._parent.touch(); + return this; +}; + +Cut.prototype.pin = function() { + if (!arguments.length) { + return this._pin; + } + var obj = this._pin.update.apply(this._pin, arguments); + return obj === this._pin ? this : obj; +}; + +Cut.prototype.matrix = function() { + return this._pin.absoluteMatrix(this, this._parent ? this._parent._pin : null); +}; + +Cut.prototype.tween = function(duration, delay) { + return (this._tween || (this._tween = new Cut.Tween(this))).tween(duration, delay); +}; + +Cut.Tween = function(cut) { + var tween = this; + this._owner = cut; + this._queue = []; + this._next = null; + cut.tick(function(elapsed) { + if (!tween._queue.length) { + return; + } + this.touch(); + var head = tween._queue[0]; + if (!head.time) { + head.time = 1; + } else { + head.time += elapsed; + } + if (head.time < head.delay) { + return; + } + if (!head.start) { + head.start = {}; + head.keys = {}; + for (var key in head.end) { + if (typeof (start = cut.pin(key)) === "number") { + head.start[key] = start; + head.keys[key] = key; + } else if (typeof (startX = cut.pin(key + "X")) === "number" && typeof (startY = cut.pin(key + "Y")) === "number") { + head.start[key + "X"] = startX; + head.keys[key + "X"] = key; + head.start[key + "Y"] = startY; + head.keys[key + "Y"] = key; + } + } + } + var p = (head.time - head.delay) / head.duration; + var over = p >= 1; + p = p > 1 ? 1 : p; + p = typeof head.easing == "function" ? head.easing(p) : p; + var q = 1 - p; + for (var key in head.keys) { + cut.pin(key, head.start[key] * q + head.end[head.keys[key]] * p); + } + if (over) { + tween._queue.shift(); + head.then && head.then.call(cut); + } + }, true); +}; + +Cut.Tween.prototype.tween = function(duration, delay) { + this._next = { + id: Cut._TS++, + end: {}, + duration: duration || 400, + delay: delay || 0 + }; + return this; +}; + +Cut.Tween.prototype.pin = function(pin) { + if (this._next !== this._queue[this._queue.length - 1]) { + this._owner.touch(); + this._queue.push(this._next); + } + var end = this._next.end; + if (arguments.length === 1) { + Cut._extend(end, arguments[0]); + } else if (arguments.length === 2) { + end[arguments[0]] = arguments[1]; + } + return this; +}; + +Cut.Tween.prototype.clear = function(forward) { + var tween; + while (tween = this._queue.shift()) { + forward && this._owner.pin(tween.end); + } + return this; +}; + +Cut.Tween.prototype.then = function(then) { + this._next.then = then; + return this; +}; + +Cut.Tween.prototype.ease = function(easing) { + this._next.easing = Cut.Easing(easing); + return this; +}; + +Cut.root = function(request, render) { + return new Cut.Root(request, render); +}; + +Cut.Root = function(request, render) { + Cut.String.prototype._super.apply(this, arguments); + this._paused = true; + this._render = render; + this._request = request; + var self = this; + var requestCallback = function() { + if (self._paused === true) { + return; + } + self._mo_touch = self._ts_touch; + self._render(); + self.request(); + self._mo_touch == self._ts_touch && self.pause(); + }; + this.request = function() { + this._request.call(null, requestCallback); + }; + this.on("viewport", function(viewport) { + this._size = { + width: viewport.width, + height: viewport.height + }; + this._updateViewbox(); + return true; + }); +}; + +Cut.Root.prototype = Cut._create(Cut.prototype); + +Cut.Root.prototype._super = Cut; + +Cut.Root.prototype.constructor = Cut.Root; + +Cut.Root.prototype.viewbox = function(width, height, mode) { + this._viewbox = { + width: width, + height: height, + mode: /^(in|out)$/.test(mode) ? mode : "in" + }; + this._updateViewbox(); + return this; +}; + +Cut.Root.prototype._updateViewbox = function() { + var viewbox = this._viewbox; + var size = this._size; + if (!size) {} else if (viewbox) { + this.pin({ + width: viewbox.width, + height: viewbox.height, + resizeMode: viewbox.mode, + resizeWidth: size.width, + resizeHeight: size.height + }); + } else { + this.pin({ + width: size.width, + height: size.height + }); + } +}; + +Cut.Root.prototype.start = function() { + return this.resume(); +}; + +Cut.Root.prototype.resume = function(force) { + if (this._paused || force) { + this._paused = false; + this.request(); + } + return this; +}; + +Cut.Root.prototype.pause = function() { + this._paused = true; + return this; +}; + +Cut.Root.prototype.touch = function() { + this.resume(); + return Cut.prototype.touch.apply(this, arguments); +}; + +Cut.Root.prototype.resize = function(width, height, ratio) { + this._ratio = ratio || 1; + var data = {}; + data.width = width; + data.height = height; + data.ratio = ratio; + this.visit({ + start: function(cut) { + if (!cut._listens("viewport")) { + return true; + } + cut.publish("viewport", [ data ]); + } + }); + return this; +}; + +Cut.image = function(cutout) { + var image = new Cut.Image(); + cutout && image.image(cutout); + return image; +}; + +Cut.Image = function() { + Cut.Image.prototype._super.apply(this, arguments); +}; + +Cut.Image.prototype = Cut._create(Cut.prototype); + +Cut.Image.prototype._super = Cut; + +Cut.Image.prototype.constructor = Cut.Image; + +/** + * @deprecated Use image + */ +Cut.Image.prototype.setImage = function() { + this.image.apply(this, arguments); +}; + +Cut.Image.prototype.image = function(cutout) { + this._cutouts[0] = Cut.Out.select(cutout); + this._cutouts.length = 1; + this.pin({ + width: this._cutouts[0] ? this._cutouts[0].dWidth() : 0, + height: this._cutouts[0] ? this._cutouts[0].dHeight() : 0 + }); + this._cutout = this._cutouts[0].clone(); + return this; +}; + +Cut.Image.prototype.cropX = function(w, x) { + return this.image(this._cutouts[0].cropX(w, x)); +}; + +Cut.Image.prototype.cropY = function(h, y) { + return this.image(this._cutouts[0].cropY(h, y)); +}; + +Cut.Image.prototype._slice = function(i) { + return this._cutouts[i] || (this._cutouts[i] = this._cutout.clone()); +}; + +Cut.Image.prototype.tile = function(inner) { + this.untick(this._repeatTicker); + this._repeatTicker = function() { + if (this._mo_tile == this._ts_touch) { + return; + } + this._mo_tile = this._ts_touch; + var bleft = this._cutout._left, bright = this._cutout._right; + var btop = this._cutout._top, bbottom = this._cutout._bottom; + var bwidth = this._cutout.dWidth() - bleft - bright; + var bheight = this._cutout.dHeight() - btop - bbottom; + var width = this.pin("width"); + width = inner ? width : width - bleft - bright; + var height = this.pin("height"); + height = inner ? height : height - btop - bbottom; + var left = inner ? -bleft : 0; + var top = inner ? -btop : 0; + var c = 0; + // top, left + if (btop && bleft) { + this._slice(c++).cropX(bleft, 0).cropY(btop, 0).offset(left, top); + } + // bottom, left + if (bbottom && bleft) { + this._slice(c++).cropX(bleft, 0).cropY(bbottom, bheight + btop).offset(left, top + height + btop); + } + // top, right + if (btop && bright) { + this._slice(c++).cropX(bright, bwidth + bleft).cropY(btop, 0).offset(left + width + bleft, top); + } + // bottom, right + if (bbottom && bright) { + this._slice(c++).cropX(bright, bwidth + bleft).cropY(bbottom, bheight + btop).offset(left + width + bleft, top + height + btop); + } + var x = left + bleft; + var r = width; + while (r > 0) { + var w = Math.min(bwidth, r); + r -= bwidth; + var y = top + btop; + var b = height; + while (b > 0) { + var h = Math.min(bheight, b); + b -= bheight; + this._slice(c++).cropX(w, bleft).cropY(h, btop).offset(x, y); + if (r <= 0) { + // left + if (bleft) { + this._slice(c++).cropX(bleft, 0).cropY(h, btop).offset(left, y); + } + // right + if (bright) { + this._slice(c++).cropX(bright, bwidth + bleft).cropY(h, btop).offset(x + w, y); + } + } + y += h; + } + // top + if (btop) { + this._slice(c++).cropX(w, bleft).cropY(btop, 0).offset(x, top); + } + // bottom + if (bbottom) { + this._slice(c++).cropX(w, bleft).cropY(bbottom, bheight + btop).offset(x, y); + } + x += w; + } + this._cutouts.length = c; + }; + this.tick(this._repeatTicker); + return this; +}; + +Cut.Image.prototype.stretch = function(inner) { + this.untick(this._repeatTicker); + this._repeatTicker = function() { + if (this._mo_stretch == this._pin._ts_transform) { + return; + } + this._mo_stretch = this._pin._ts_transform; + var oleft = this._cutout._left, oright = this._cutout._right; + var otop = this._cutout._top, obottom = this._cutout._bottom; + var owidth = this._cutout.dWidth(), oheight = this._cutout.dHeight(); + var width = this.pin("width"), height = this.pin("height"); + width = inner ? width + oleft + oright : Math.max(width, oleft + oright); + height = inner ? height + otop + obottom : Math.max(height, otop + obottom); + var c = 0; + // top, left + if (otop && oleft) { + this._slice(c++).cropX(oleft, 0).cropY(otop, 0).offset(0, 0); + } + // bottom, left + if (obottom && oleft) { + this._slice(c++).cropX(oleft, 0).cropY(obottom, oheight - obottom).offset(0, height - obottom); + } + // top, right + if (otop && oright) { + this._slice(c++).cropX(oright, owidth - oright).cropY(otop, 0).offset(width - oright, 0); + } + // bottom, right + if (obottom && oright) { + this._slice(c++).cropX(oright, owidth - oright).cropY(obottom, oheight - obottom).offset(width - oright, height - obottom); + } + // top + if (otop) { + this._slice(c++).cropX(owidth - oleft - oright, oleft).cropY(otop, 0).offset(oleft, 0).dWidth(width - oleft - oright); + } + // bottom + if (obottom) { + this._slice(c++).cropX(owidth - oleft - oright, oleft).cropY(obottom, oheight - obottom).offset(oleft, height - obottom).dWidth(width - oleft - oright); + } + // left + if (oleft) { + this._slice(c++).cropX(oleft, 0).cropY(oheight - otop - obottom, otop).offset(0, otop).dHeight(height - otop - obottom); + } + // right + if (oright) { + this._slice(c++).cropX(oright, owidth - oright).cropY(oheight - otop - obottom, otop).offset(width - oright, otop).dHeight(height - otop - obottom); + } + // center + this._slice(c++).cropX(owidth - oleft - oright, oleft).cropY(oheight - otop - obottom, otop).offset(oleft, otop).dWidth(width - oleft - oright).dHeight(height - otop - obottom); + this._cutouts.length = c; + }; + this.tick(this._repeatTicker); + return this; +}; + +Cut.anim = function(frames, fps) { + var anim = new Cut.Anim().frames(frames).gotoFrame(0); + fps && anim.fps(fps); + return anim; +}; + +Cut.Anim = function() { + Cut.Anim.prototype._super.apply(this, arguments); + this._fps = Cut.Anim.FPS; + this._ft = 1e3 / this._fps; + this._time = 0; + this._frame = 0; + this._frames = []; + this._labels = {}; + this.tick(function() { + if (this._time && this._frames.length > 1) { + var t = Cut._now() - this._time; + if (t >= this._ft) { + var n = t < 2 * this._ft ? 1 : Math.floor(t / this._ft); + this._time += n * this._ft; + this.moveFrame(n); + if (this._repeat && (this._repeat -= n) <= 0) { + this.stop(); + this._callback && this._callback(); + } + } + this.touch(); + } + }, false); +}; + +Cut.Anim.prototype = Cut._create(Cut.prototype); + +Cut.Anim.prototype._super = Cut; + +Cut.Anim.prototype.constructor = Cut.Anim; + +Cut.Anim.FPS = 22; + +Cut.Anim.prototype.fps = function(fps) { + if (!arguments.length) { + return this._fps; + } + this._fps = fps || Cut.Anim.FPS; + this._ft = 1e3 / this._fps; + return this; +}; + +/** + * @deprecated Use frames + */ +Cut.Anim.prototype.setFrames = function() { + this.frames.apply(this, arguments); +}; + +Cut.Anim.prototype.frames = function(frames) { + this._time = this._time || 0; + this._frame = 0; + this._frames = []; + this._labels = {}; + frames = Cut.Out.select(frames, true); + if (frames && frames.length) { + for (var i = 0; i < frames.length; i++) { + var cutout = frames[i]; + this._frames.push(cutout); + this._labels[cutout._name] = i; + } + } + return this; +}; + +Cut.Anim.prototype.length = function() { + return this._frames ? this._frames.length : 0; +}; + +Cut.Anim.prototype.gotoFrame = function(frame, resize) { + frame = Cut.Math.rotate(frame, this._frames.length) | 0; + this._frame = frame; + resize = resize || !this._cutouts[0]; + this._cutouts[0] = this._frames[this._frame]; + if (resize) { + this.pin({ + width: this._cutouts[0].dWidth(), + height: this._cutouts[0].dHeight() + }); + } + this._ts_frame = Cut._TS++; + this.touch(); + return this; +}; + +Cut.Anim.prototype.moveFrame = function(move) { + return this.gotoFrame(this._frame + move); +}; + +Cut.Anim.prototype.gotoLabel = function(label, resize) { + return this.gotoFrame(this._labels[label] || 0, resize); +}; + +Cut.Anim.prototype.repeat = function(repeat, callback) { + this._repeat = repeat * this._frames.length - 1; + this._callback = callback; + this.play(); + return this; +}; + +Cut.Anim.prototype.play = function(frame) { + if (arguments.length) { + this.gotoFrame(frame); + this._time = Cut._now(); + } else if (!this._time) { + this._time = Cut._now(); + } + return this; +}; + +Cut.Anim.prototype.stop = function(frame) { + this._time = null; + if (arguments.length) { + this.gotoFrame(frame); + } + return this; +}; + +Cut.string = function(frames) { + return new Cut.String().frames(frames); +}; + +Cut.String = function() { + Cut.String.prototype._super.apply(this, arguments); + this.row(); +}; + +Cut.String.prototype = Cut._create(Cut.prototype); + +Cut.String.prototype._super = Cut; + +Cut.String.prototype.constructor = Cut.String; + +/** + * @deprecated Use frames + */ +Cut.String.prototype.setFont = function() { + this.frames.apply(this, arguments); +}; + +Cut.String.prototype.frames = function(frames) { + if (typeof frames == "string") { + this._frames = function(value) { + return frames + value; + }; + } else if (Cut._isFunc(frames)) { + this._frames = frames; + } + return this; +}; + +/** + * @deprecated Use value + */ +Cut.String.prototype.setValue = function() { + this.value.apply(this, arguments); +}; + +Cut.String.prototype.value = function(value) { + if (this._value === value) return this; + this._value = value; + if (typeof value !== "string" && !Cut._isArray(value)) { + value = value + ""; + } + var child = this._first; + for (var i = 0; i < value.length; i++) { + var selector = this._frames(value[i]); + if (child) { + child.image(selector).show(); + } else { + child = Cut.image(selector).appendTo(this); + } + child = child._next; + } + while (child) { + child.hide(); + child = child._next; + } + return this; +}; + +Cut.row = function(align) { + return Cut.create().row(align); +}; + +Cut.prototype.row = function(align) { + this.sequence("row", align); + return this; +}; + +Cut.column = function(align) { + return Cut.create().column(align); +}; + +Cut.prototype.column = function(align) { + this.sequence("column", align); + return this; +}; + +Cut.sequence = function(type, align) { + return new Cut.create().sequence(type, align); +}; + +Cut.prototype.sequence = function(type, align) { + this.untick(this._layoutTicker); + this._layoutTicker = function() { + if (this._mo_seq == this._ts_touch) { + return; + } + this._mo_seq = this._ts_touch; + var alignChildren = this._mo_seqAlign != this._ts_children; + this._mo_seqAlign = this._ts_children; + var width = 0, height = 0; + var child, next = this.first(true); + var first = true; + while (child = next) { + next = child.next(true); + child._pin.relativeMatrix(); + var w = child._pin._boxWidth; + var h = child._pin._boxHeight; + if (type == "column") { + !first && (height += this._spacing || 0); + child.pin("offsetY") != height && child.pin("offsetY", height); + width = Math.max(width, w); + height = height + h; + alignChildren && child.pin("alignX", align); + } else if (type == "row") { + !first && (width += this._spacing || 0); + child.pin("offsetX") != width && child.pin("offsetX", width); + width = width + w; + height = Math.max(height, h); + alignChildren && child.pin("alignY", align); + } + first = false; + } + width += 2 * this._padding || 0; + height += 2 * this._padding || 0; + this.pin("width") != width && this.pin("width", width); + this.pin("height") != height && this.pin("height", height); + }; + this.tick(this._layoutTicker); + return this; +}; + +Cut.box = function() { + return new Cut.create().box(); +}; + +Cut.prototype.box = function() { + if (this._boxTicker) return this; + this._boxTicker = function() { + if (this._mo_box == this._ts_touch) { + return; + } + this._mo_box = this._ts_touch; + var width = 0, height = 0; + var child, next = this.first(true); + while (child = next) { + next = child.next(true); + child._pin.relativeMatrix(); + var w = child._pin._boxWidth; + var h = child._pin._boxHeight; + width = Math.max(width, w); + height = Math.max(height, h); + } + width += 2 * this._padding || 0; + height += 2 * this._padding || 0; + this.pin("width") != width && this.pin("width", width); + this.pin("height") != height && this.pin("height", height); + }; + this.tick(this._boxTicker); + return this; +}; + +Cut.prototype.padding = function(pad) { + this._padding = pad; + return this; +}; + +Cut.prototype.spacing = function(space) { + this._spacing = space; + return this; +}; + +// TODO use prototype +Cut.Loader = function() { + var queue = []; + var roots = []; + var images = {}; + var started = false; + function loadImages(loader, callback) { + var loading = 0; + var noimage = true; + var textures = Cut.Texture._list; + for (var texture in textures) { + if (textures[texture].getImagePath()) { + loading++; + var src = textures[texture].getImagePath(); + var image = loader(src, complete, error); + Cut.Loader.addImage(image, src); + noimage = false; + } + } + if (noimage) { + DEBUG && console.log("No image to load."); + callback && callback(); + } + function complete() { + DEBUG && console.log("Image loaded."); + done(); + } + function error(msg) { + DEBUG && console.log("Error loading image: " + msg); + done(); + } + function done() { + if (--loading <= 0) { + callback && callback(); + } + } + } + return { + load: function(app, configs) { + if (!started) { + queue.push(arguments); + return; + } + DEBUG && console.log("Init..."); + var root = this.init(function(root, canvas) { + DEBUG && console.log("Loading app..."); + app(root, canvas); + }, configs); + roots.push(root); + DEBUG && console.log("Loading images..."); + loadImages(this.loadImage, function() { + DEBUG && console.log("Images loaded."); + DEBUG && console.log("Start playing..."); + root.start(); + }); + }, + start: function() { + started = true; + var args; + while (args = queue.shift()) { + this.load.apply(this, args); + } + }, + pause: function() { + for (var i = queue.length - 1; i >= 0; i--) { + roots[i].pause(); + } + }, + resume: function() { + for (var i = queue.length - 1; i >= 0; i--) { + roots[i].resume(); + } + }, + getImage: function(src) { + return images[src]; + }, + addImage: function(image, src) { + images[src] = image; + return this; + } + }; +}(); + +// TODO use prototype +Cut.Texture = function(texture) { + texture.cutouts = texture.cutouts || []; + var selectionCache = {}; + var imageCache = null; + this.getImagePath = function() { + return texture.imagePath; + }; + function image() { + if (!imageCache) { + imageCache = Cut.Loader.getImage(texture.imagePath); + } + return imageCache; + } + for (var i = 0; i < texture.cutouts.length; i++) { + map(texture.cutouts[i]); + } + function map(cutout) { + if (!cutout || cutout.isCutout) { + return cutout; + } + if (typeof texture.map === "function") { + cutout = texture.map(cutout); + } else if (typeof texture.filter === "function") { + cutout = texture.filter(cutout); + } + var ratio = texture.ratio || 1; + if (ratio != 1) { + cutout.x *= ratio, cutout.y *= ratio; + cutout.width *= ratio, cutout.height *= ratio; + cutout.top *= ratio, cutout.bottom *= ratio; + cutout.left *= ratio, cutout.right *= ratio; + } + var trim = texture.trim || 0; + if (trim) { + cutout.x += trim, cutout.y += trim; + cutout.width -= 2 * trim, cutout.height -= 2 * trim; + cutout.top -= trim, cutout.bottom -= trim; + cutout.left -= trim, cutout.right -= trim; + } + return cutout; + } + function wrap(cutout) { + if (!cutout.isCutout) { + cutout = new Cut.Out(cutout, image, texture.imageRatio); + } + return cutout; + } + this.select = function(selector, prefix) { + if (!prefix) { + // one + var id = selector + "?"; + var result = selectionCache[id]; + if (typeof result === "undefined") { + for (var i = 0; i < texture.cutouts.length; i++) { + var item = texture.cutouts[i]; + var name = item._name || item.name; + if (name == selector) { + result = item; + break; + } + } + if (!result && texture.factory) { + result = map(texture.factory(selector)); + } + selectionCache[id] = result; + } + if (!result) { + throw "Cutout not found: '" + texture.name + ":" + selector + "'"; + } + return wrap(result); + } else { + // many + var id = selector + "*"; + var results = selectionCache[id]; + if (typeof results === "undefined") { + results = []; + var length = selector.length; + for (var i = 0; i < texture.cutouts.length; i++) { + var item = texture.cutouts[i]; + var name = item._name || item.name; + if (name && name.substring(0, length) == selector) { + results.push(texture.cutouts[i]); + } + } + selectionCache[id] = results; + } + if (!results.length) { + throw "Cutouts not found: '" + texture.name + ":" + selector + "'"; + } + for (var i = 0; i < results.length; i++) { + results[i] = wrap(results[i]); + } + return results; + } + }; +}; + +Cut.Texture._list = {}; + +Cut.Texture.add = function() { + for (var i = 0; i < arguments.length; i++) { + var texture = arguments[i]; + Cut.Texture._list[texture.name] = new Cut.Texture(texture); + } + return this; +}; + +/** + * @deprecated Use Cut(); + */ +Cut.addTexture = function() { + return Cut.Texture.add.apply(Cut.Texture, arguments); +}; + +Cut.Out = function(def, image, ratio) { + this.isCutout = true; + this._image = image; + this._ratio = ratio || 1; + this._name = def.name; + this._x = def.x; + this._y = def.y; + this._width = def.width; + this._height = def.height; + this._top = def.top || 0; + this._bottom = def.bottom || 0; + this._left = def.left || 0; + this._right = def.right || 0; + this._reset(); + return this; +}; + +Cut.Out.prototype._reset = function() { + this._sx = this._x * this._ratio; + this._sy = this._y * this._ratio; + this._sw = this._width * this._ratio; + this._sh = this._height * this._ratio; + this._dx = 0; + this._dy = 0; + this._dw = this._width; + this._dh = this._height; +}; + +Cut.Out.prototype.clone = function() { + var clone = Cut._create(Cut.Out.prototype); + for (var attr in this) if (this.hasOwnProperty(attr)) clone[attr] = this[attr]; + clone._reset(); + return clone; +}; + +Cut.Out.prototype.dWidth = function(width) { + if (arguments.length) { + this._dw = width; + return this; + } + return this._dw; +}; + +Cut.Out.prototype.dHeight = function(height) { + if (arguments.length) { + this._dh = height; + return this; + } + return this._dh; +}; + +Cut.Out.prototype.cropX = function(w, x) { + x = x || 0; + w = Math.min(w, this._width - x); + this._dw = w; + this._sw = w * this._ratio; + this._sx = (this._x + x) * this._ratio; + return this; +}; + +Cut.Out.prototype.cropY = function(h, y) { + y = y || 0; + h = Math.min(h, this._height - y); + this._dh = h; + this._sh = h * this._ratio; + this._sy = (this._y + y) * this._ratio; + return this; +}; + +Cut.Out.prototype.offset = function(x, y) { + this._dx = x; + this._dy = y; + return this; +}; + +Cut.Out.prototype.paste = function(context) { + Cut._stats.paste++; + var img = typeof this._image === "function" ? this._image() : this._image; + try { + img && context.drawImage(img, // source + this._sx, this._sy, this._sw, this._sh, // cut + this._dx, this._dy, this._dw, this._dh); + } catch (e) { + if (!this._failed) { + console.log("Unable to paste: " + this, img); + this._failed = true; + } + } +}; + +Cut.Out.prototype.toString = function() { + return "[" + this._name + ": " + this._sx + "x" + this._sy + "-" + this._sw + "x" + this._sh + "" + this._dx + "x" + this._dy + "-" + this._dw + "x" + this._dh + "]"; +}; + +Cut.Out.select = function(selector, prefix) { + if (typeof selector === "function") { + return Cut.Out.select(selector()); + } + if (typeof selector !== "string") { + return selector; + } + var i = selector.indexOf(":"); + if (i < 0) { + throw "Invalid selector: '" + selector + "'"; + return null; + } + var split = [ selector.slice(0, i), selector.slice(i + 1) ]; + var texture = Cut.Texture._list[split[0]]; + if (texture == null) { + throw "Texture not found: '" + selector + "'"; + return !prefix ? null : []; + } + return texture.select(split[1], prefix); +}; + +Cut.drawing = function() { + return Cut.image(Cut.Out.drawing.apply(Cut.Out, arguments)); +}; + +// [name], width, height, [ratio], [draw] +// def, [draw] +Cut.Out.drawing = function() { + var canvas = document.createElement("canvas"); + var context = canvas.getContext("2d"); + var def = {}; + var ai = 0; + if (typeof arguments[ai] === "object") { + def = arguments[ai++]; + } else { + if (typeof arguments[ai] === "string") { + def.name = arguments[ai++]; + } + def.width = arguments[ai++]; + def.height = arguments[ai++]; + if (typeof arguments[ai] === "number") { + def.ratio = arguments[ai++]; + } + def.x = 0; + def.y = 0; + } + def.ratio = def.ratio || 1; + def.name = def.name || Math.random() * 1e3 | 0; + canvas.width = Math.ceil(def.width * def.ratio); + canvas.height = Math.ceil(def.height * def.ratio); + var cut = new Cut.Out(def, canvas, def.ratio); + if (typeof arguments[arguments.length - 1] === "function") { + arguments[arguments.length - 1].call(cut, context, def.ratio); + } + return cut; +}; + +Cut.Pin = function(owner) { + this._owner = owner; + this._parent = null; + // relative to parent + this._relativeMatrix = new Cut.Matrix(); + // relative to root + this._absoluteMatrix = new Cut.Matrix(); + this.reset(); +}; + +Cut.Pin.prototype.reset = function() { + this._textureAlpha = 1; + this._alpha = 1; + this._width = 0; + this._height = 0; + this._scaleX = 1; + this._scaleY = 1; + this._skewX = 0; + this._skewY = 0; + this._rotation = 0; + // scale/skew/rotate center + this._pivoted = false; + this._pivotX = null; + this._pivotY = null; + // self pin point + this._handled = false; + this._handleX = 0; + this._handleY = 0; + // parent pin point + this._aligned = false; + this._alignX = 0; + this._alignY = 0; + // as seen by parent px + this._offsetX = 0; + this._offsetY = 0; + this._boxX = 0; + this._boxY = 0; + this._boxWidth = this._width; + this._boxHeight = this._height; + this._ts_translate = Cut._TS++; + this._ts_transform = Cut._TS++; + this._ts_matrix = Cut._TS++; +}; + +Cut.Pin.prototype.tick = function() { + this._parent = this._owner._parent && this._owner._parent._pin; + if (this._handled && this._mo_handle != this._ts_transform) { + this._mo_handle = this._ts_transform; + this._ts_translate = Cut._TS++; + } + if (this._aligned && this._parent && this._mo_align != this._parent._ts_transform) { + this._mo_align = this._parent._ts_transform; + this._ts_translate = Cut._TS++; + } + return this; +}; + +Cut.Pin.prototype.toString = function() { + return this._owner.id() + " [" + this._alignX + ", " + this._alignY + "] [" + this._handleX + ", " + this._handleY + "] [" + (this._parent ? this._parent._owner.id() : null) + "]"; +}; + +Cut.Pin.prototype.absoluteMatrix = function() { + var ts = Math.max(this._ts_transform, this._ts_translate, this._parent ? this._parent._ts_matrix : 0); + if (this._mo_abs == ts) { + return this._absoluteMatrix; + } + this._mo_abs = ts; + var abs = this._absoluteMatrix; + abs.copyFrom(this.relativeMatrix()); + this._parent && abs.concat(this._parent._absoluteMatrix); + this._ts_matrix = Cut._TS++; + return abs; +}; + +Cut.Pin.prototype.relativeMatrix = function() { + var ts = Math.max(this._ts_transform, this._ts_translate, this._parent ? this._parent._ts_transform : 0); + if (this._mo_rel == ts) { + return this._relativeMatrix; + } + this._mo_rel = ts; + var rel = this._relativeMatrix; + rel.identity(); + if (this._pivoted) { + rel.translate(-this._pivotX * this._width, -this._pivotY * this._height); + } + rel.scale(this._scaleX, this._scaleY); + rel.skew(this._skewX, this._skewY); + rel.rotate(this._rotation); + if (this._pivoted) { + rel.translate(this._pivotX * this._width, this._pivotY * this._height); + } + if (this._pivoted) { + // set handle on origin + this._boxX = 0; + this._boxY = 0; + this._boxWidth = this._width; + this._boxHeight = this._height; + } else { + // set handle on aabb + var p, q, m = rel; + if (m.a > 0 && m.c > 0 || m.a < 0 && m.c < 0) { + p = 0, q = m.a * this._width + m.c * this._height; + } else { + p = m.a * this._width, q = m.c * this._height; + } + if (p > q) { + this._boxX = q; + this._boxWidth = p - q; + } else { + this._boxX = p; + this._boxWidth = q - p; + } + if (m.b > 0 && m.d > 0 || m.b < 0 && m.d < 0) { + p = 0, q = m.b * this._width + m.d * this._height; + } else { + p = m.b * this._width, q = m.d * this._height; + } + if (p > q) { + this._boxY = q; + this._boxHeight = p - q; + } else { + this._boxY = p; + this._boxHeight = q - p; + } + } + this._x = this._offsetX; + this._y = this._offsetY; + this._x -= this._boxX + this._handleX * this._boxWidth; + this._y -= this._boxY + this._handleY * this._boxHeight; + if (this._aligned && this._parent) { + this._parent.relativeMatrix(); + this._x += this._alignX * this._parent._width; + this._y += this._alignY * this._parent._height; + } + rel.translate(this._x, this._y); + return this._relativeMatrix; +}; + +Cut.Pin._SINGLE = {}; + +Cut.Pin.prototype.update = function() { + if (arguments.length == 1 && typeof arguments[0] === "string") { + return this["_" + arguments[0]]; + } + this._transform_flag = false; + this._translate_flag = false; + var pin = null, key = null, value = null; + if (arguments.length == 2 && typeof arguments[0] === "string") { + for (key in Cut.Pin._SINGLE) { + delete Cut.Pin._SINGLE[key]; + } + (pin = Cut.Pin._SINGLE)[arguments[0]] = arguments[1]; + } else if (arguments.length == 1 && typeof arguments[0] === "object") { + pin = arguments[0]; + } + // TODO: map write only keys to read/write keys + if (pin) { + for (key in pin) { + if (typeof (value = pin[key]) !== "undefined") { + if (setter = Cut.Pin._setters[key]) { + setter.call(Cut.Pin._setters, this, value, pin); + } + } + } + } + if (this._translate_flag) { + this._translate_flag = false; + this._ts_translate = Cut._TS++; + } + if (this._transform_flag) { + this._transform_flag = false; + this._ts_transform = Cut._TS++; + } + if (this._owner) { + this._owner._ts_pin = Cut._TS++; + this._owner.touch(); + } + return this; +}; + +Cut.Pin._setters = { + alpha: function(pin, value, set) { + pin._alpha = value; + }, + textureAlpha: function(pin, value, set) { + pin._textureAlpha = value; + }, + width: function(pin, value, set) { + pin._width_ = value; + pin._width = value; + pin._transform_flag = true; + }, + height: function(pin, value, set) { + pin._height_ = value; + pin._height = value; + pin._transform_flag = true; + }, + scale: function(pin, value, set) { + pin._scaleX = value; + pin._scaleY = value; + pin._transform_flag = true; + }, + scaleX: function(pin, value, set) { + pin._scaleX = value; + pin._transform_flag = true; + }, + scaleY: function(pin, value, set) { + pin._scaleY = value; + pin._transform_flag = true; + }, + skew: function(pin, value, set) { + pin._skewX = value; + pin._skewY = value; + pin._transform_flag = true; + }, + skewX: function(pin, value, set) { + pin._skewX = value; + pin._transform_flag = true; + }, + skewY: function(pin, value, set) { + pin._skewY = value; + pin._transform_flag = true; + }, + rotation: function(pin, value, set) { + pin._rotation = value; + pin._transform_flag = true; + }, + pivot: function(pin, value, set) { + pin._pivotX = value; + pin._pivotY = value; + pin._pivoted = true; + pin._transform_flag = true; + }, + pivotX: function(pin, value, set) { + pin._pivotX = value; + pin._pivoted = true; + pin._transform_flag = true; + }, + pivotY: function(pin, value, set) { + pin._pivotY = value; + pin._pivoted = true; + pin._transform_flag = true; + }, + offset: function(pin, value, set) { + pin._offsetX = value; + pin._offsetY = value; + pin._translate_flag = true; + }, + offsetX: function(pin, value, set) { + pin._offsetX = value; + pin._translate_flag = true; + }, + offsetY: function(pin, value, set) { + pin._offsetY = value; + pin._translate_flag = true; + }, + align: function(pin, value, set) { + this.alignX.apply(this, arguments); + this.alignY.apply(this, arguments); + }, + alignX: function(pin, value, set) { + pin._alignX = value; + pin._aligned = true; + pin._translate_flag = true; + this.handleX(pin, value, set); + }, + alignY: function(pin, value, set) { + pin._alignY = value; + pin._aligned = true; + pin._translate_flag = true; + this.handleY(pin, value, set); + }, + handle: function(pin, value, set) { + this.handleX(pin, value, set); + this.handleY(pin, value, set); + }, + handleX: function(pin, value, set) { + pin._handleX = value; + pin._handled = true; + pin._translate_flag = true; + }, + handleY: function(pin, value, set) { + pin._handleY = value; + pin._handled = true; + pin._translate_flag = true; + }, + resizeMode: function(pin, value, set) { + if (Cut._isNum(set.resizeWidth) && Cut._isNum(set.resizeHeight)) { + this.resizeWidth(pin, set.resizeWidth, set, true); + this.resizeHeight(pin, set.resizeHeight, set, true); + if (value == "out") { + pin._scaleX = pin._scaleY = Math.max(pin._scaleX, pin._scaleY); + } else if (value == "in") { + pin._scaleX = pin._scaleY = Math.min(pin._scaleX, pin._scaleY); + } + pin._width = set.resizeWidth / pin._scaleX; + pin._height = set.resizeHeight / pin._scaleY; + } + }, + resizeWidth: function(pin, value, set, force) { + if (set.resizeMode && !force) { + return; + } + pin._scaleX = value / pin._width_; + pin._width = pin._width_; + pin._transform_flag = true; + }, + resizeHeight: function(pin, value, set, force) { + if (set.resizeMode && !force) { + return; + } + pin._scaleY = value / pin._height_; + pin._height = pin._height_; + pin._transform_flag = true; + }, + scaleMode: function(pin, value, set) { + if (Cut._isNum(set.scaleWidth) && Cut._isNum(set.scaleHeight)) { + this.scaleWidth(pin, set.scaleWidth, set, true); + this.scaleHeight(pin, set.scaleHeight, set, true); + if (value == "out") { + pin._scaleX = pin._scaleY = Math.max(pin._scaleX, pin._scaleY); + } else if (value == "in") { + pin._scaleX = pin._scaleY = Math.min(pin._scaleX, pin._scaleY); + } + } + }, + scaleWidth: function(pin, value, set, force) { + if (set.scaleMode && !force) { + return; + } + pin._scaleX = value / pin._width_; + pin._transform_flag = true; + }, + scaleHeight: function(pin, value, set, force) { + if (set.scaleMode && !force) { + return; + } + pin._scaleY = value / pin._height_; + pin._transform_flag = true; + }, + matrix: function(pin, value, set) { + this.scaleX(pin, value.a, set); + this.skewX(pin, value.c / value.d, set); + this.skewY(pin, value.b / value.a, set); + this.scaleY(pin, value.d, set); + this.offsetX(pin, value.e, set); + this.offsetY(pin, value.f, set); + this.rotation(pin, 0, set); + } +}; + +Cut.Matrix = function(a, b, c, d, e, f) { + this.changed = true; + this.a = a || 1; + this.b = b || 0; + this.c = c || 0; + this.d = d || 1; + this.e = e || 0; + this.f = f || 0; +}; + +Cut.Matrix.prototype.toString = function() { + return "[" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.e + ", " + this.f + "]"; +}; + +Cut.Matrix.prototype.clone = function() { + return new Cut.Matrix(this.a, this.b, this.c, this.d, this.e, this.f); +}; + +Cut.Matrix.prototype.copyTo = function(m) { + m.copyFrom(this); + return this; +}; + +Cut.Matrix.prototype.copyFrom = function(m) { + this.changed = true; + this.a = m.a; + this.b = m.b; + this.c = m.c; + this.d = m.d; + this.e = m.e; + this.f = m.f; + return this; +}; + +Cut.Matrix.prototype.identity = function() { + this.changed = true; + this.a = 1; + this.b = 0; + this.c = 0; + this.d = 1; + this.e = 0; + this.f = 0; + return this; +}; + +Cut.Matrix.prototype.rotate = function(angle) { + if (!angle) { + return this; + } + this.changed = true; + var u = angle ? Math.cos(angle) : 1; + // android bug may give bad 0 values + var v = angle ? Math.sin(angle) : 0; + var a = u * this.a - v * this.b; + var b = u * this.b + v * this.a; + var c = u * this.c - v * this.d; + var d = u * this.d + v * this.c; + var e = u * this.e - v * this.f; + var f = u * this.f + v * this.e; + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + return this; +}; + +Cut.Matrix.prototype.translate = function(x, y) { + if (!x && !y) { + return this; + } + this.changed = true; + this.e += x; + this.f += y; + return this; +}; + +Cut.Matrix.prototype.scale = function(x, y) { + if (!(x - 1) && !(y - 1)) { + return this; + } + this.changed = true; + this.a *= x; + this.b *= y; + this.c *= x; + this.d *= y; + this.e *= x; + this.f *= y; + return this; +}; + +Cut.Matrix.prototype.skew = function(x, y) { + if (!x && !y) { + return this; + } + this.changed = true; + var a = this.a + this.b * x; + var b = this.b + this.a * y; + var c = this.c + this.d * x; + var d = this.d + this.c * y; + var e = this.e + this.f * x; + var f = this.f + this.e * y; + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + return this; +}; + +Cut.Matrix.prototype.concat = function(m) { + this.changed = true; + var n = this; + var a = n.a * m.a + n.b * m.c; + var b = n.b * m.d + n.a * m.b; + var c = n.c * m.a + n.d * m.c; + var d = n.d * m.d + n.c * m.b; + var e = n.e * m.a + m.e + n.f * m.c; + var f = n.f * m.d + m.f + n.e * m.b; + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + return this; +}; + +Cut.Matrix.prototype.reverse = function() { + if (this.changed) { + this.changed = false; + this.reversed = this.reversed || new Cut.Matrix(); + var z = this.a * this.d - this.b * this.c; + this.reversed.a = this.d / z; + this.reversed.b = -this.b / z; + this.reversed.c = -this.c / z; + this.reversed.d = this.a / z; + this.reversed.e = (this.c * this.f - this.e * this.d) / z; + this.reversed.f = (this.e * this.b - this.a * this.f) / z; + } + return this.reversed; +}; + +Cut.Matrix.prototype.map = function(p, q) { + q = q || {}; + q.x = this.a * p.x + this.c * p.y + this.e; + q.y = this.b * p.x + this.d * p.y + this.f; + return q; +}; + +Cut.Matrix.prototype.mapX = function(x, y) { + return this.a * x + this.c * y + this.e; +}; + +Cut.Matrix.prototype.mapY = function(x, y) { + return this.b * x + this.d * y + this.f; +}; + +Cut.Math = {}; + +Cut.Math.random = function(min, max) { + if (arguments.length == 0) { + max = 1, min = 0; + } else if (arguments.length == 1) { + max = min, min = 0; + } + if (min == max) { + return min; + } + return Math.random() * (max - min) + min; +}; + +Cut.Math.rotate = function(num, min, max) { + if (arguments.length < 3) { + max = min || 0; + min = 0; + } + if (max > min) { + num = (num - min) % (max - min); + return num + (num < 0 ? max : min); + } else { + num = (num - max) % (min - max); + return num + (num <= 0 ? min : max); + } +}; + +Cut.Math.length = function(x, y) { + return Math.sqrt(x * x + y * y); +}; + +Cut._TS = 0; + +Cut._isCut = function(obj) { + return obj instanceof Cut; +}; + +Cut._isNum = function(x) { + return typeof x === "number"; +}; + +Cut._isFunc = function(x) { + return typeof x === "function"; +}; + +Cut._isArray = "isArray" in Array ? Array.isArray : function(value) { + return Object.prototype.toString.call(value) === "[object Array]"; +}; + +Cut._extend = function(base, extension, attribs) { + if (attribs) { + for (var i = 0; i < attribs.length; i++) { + var attr = attribs[i]; + base[attr] = extension[attr]; + } + } else { + for (var attr in extension) { + base[attr] = extension[attr]; + } + } + return base; +}; + +Cut._now = function() { + if (typeof performance !== "undefined" && performance.now) { + return function() { + return performance.now(); + }; + } else if (Date.now) { + return function() { + return Date.now(); + }; + } else { + return function() { + return +new Date(); + }; + } +}(); + +Cut._function = function(value) { + return typeof value === "function" ? value : function() { + return value; + }; +}; + +Cut._options = function(options) { + options.get = function(name) { + return typeof this[name] == "function" ? this[name]() : this[name]; + }; + options.extend = function(obj) { + obj = typeof obj === "object" ? obj : {}; + for (var name in this) { + obj[name] = name in obj ? obj[name] : this[name]; + } + return obj; + }; + options.mixin = function(obj) { + if (typeof obj === "object") { + for (var name in obj) { + this[name] = obj[name]; + } + } + return this; + }; + return options; +}; + +Cut._status = function(msg) { + if (!Cut._statusbox) { + var statusbox = Cut._statusbox = document.createElement("div"); + statusbox.style.position = "absolute"; + statusbox.style.color = "black"; + statusbox.style.background = "white"; + statusbox.style.zIndex = 999; + statusbox.style.top = "5px"; + statusbox.style.right = "5px"; + statusbox.style.padding = "1px 5px"; + document.body.appendChild(statusbox); + } + Cut._statusbox.innerHTML = msg; +}; + +Cut.Easing = function() { + function identity(t) { + return t; + } + var easings = {}, modes = {}; + function select(token) { + if (typeof token === "function") { + return token; + } + if (typeof token !== "string") { + return identity; + } + var match = /^(\w+)(-(in|out|in-out|out-in))?(\((.*)\))?$/i.exec(token); + if (!match || !match.length) { + return identity; + } + var name = match[1] || "", mode = match[3] || "in", params = match[5]; + mode = modes[mode]; + params = params ? params.replace(/\s+/, "").split(",") : []; + var easing = easings[name]; + var fn = easing ? easing.fn || easing.fc.apply(easing.fc, params) : identity; + return mode ? mode(fn) : fn; + } + select.addMode = function(mode) { + var names = mode.name.split(/\s+/); + for (var i = 0; i < names.length; i++) { + names[i] && (modes[names[i]] = mode.fn); + } + }; + select.add = function(easing) { + var names = easing.name.split(/\s+/); + for (var i = 0; i < names.length; i++) { + names[i] && (easings[names[i]] = easing); + } + }; + return select; +}(); + +Cut.Easing.addMode({ + name: "in", + fn: function(f) { + return function(t) { + return f(t); + }; + } +}); + +Cut.Easing.addMode({ + name: "out", + fn: function(f) { + return function(t) { + return 1 - f(1 - t); + }; + } +}); + +Cut.Easing.addMode({ + name: "in-out", + fn: function(f) { + return function(t) { + return t < .5 ? f(2 * t) / 2 : 1 - f(2 * (1 - t)) / 2; + }; + } +}); + +Cut.Easing.addMode({ + name: "out-in", + fn: function(f) { + return function(t) { + return t < .5 ? 1 - f(2 * (1 - t)) / 2 : f(2 * t) / 2; + }; + } +}); + +Cut.Easing.add({ + name: "linear", + fn: function(t) { + return t; + } +}); + +Cut.Easing.add({ + name: "quad", + fn: function(t) { + return t * t; + } +}); + +Cut.Easing.add({ + name: "cubic", + fn: function(t) { + return t * t * t; + } +}); + +Cut.Easing.add({ + name: "quart", + fn: function(t) { + return t * t * t * t; + } +}); + +Cut.Easing.add({ + name: "quint", + fn: function(t) { + return t * t * t * t * t; + } +}); + +Cut.Easing.add({ + name: "sin sine", + fn: function(t) { + return 1 - Math.cos(t * Math.PI / 2); + } +}); + +Cut.Easing.add({ + name: "exp", + fn: function(t) { + return t == 0 ? 0 : Math.pow(2, 10 * (t - 1)); + } +}); + +Cut.Easing.add({ + name: "circle circ", + fn: function(t) { + return 1 - Math.sqrt(1 - t * t); + } +}); + +Cut.Easing.add({ + name: "bounce", + fn: function(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; + } +}); + +Cut.Easing.add({ + name: "poly", + fc: function(e) { + return function(t) { + return Math.pow(t, e); + }; + } +}); + +Cut.Easing.add({ + name: "elastic", + fc: function(a, p) { + p = p || .45; + a = a || 1; + var s = p / (2 * Math.PI) * Math.asin(1 / a); + return function(t) { + return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p); + }; + } +}); + +Cut.Easing.add({ + name: "back", + fc: function(s) { + s = arguments.length ? s : 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; + } +}); + +if (typeof module !== "undefined") { + module.exports = Cut; +} + +if (typeof Cut === "undefined" && typeof require === "function") Cut = require("./cut-core"); + +DEBUG = (typeof DEBUG === "undefined" || DEBUG) && console; + +/** + * Default loader for web. + */ +window.addEventListener("load", function() { + DEBUG && console.log("On load."); + Cut.Loader.start(); +}, false); + +Cut.Loader.init = function(app, configs) { + configs = configs || {}; + var canvas = configs.canvas, context = null, full = false; + var width = 0, height = 0, ratio = 1; + if (typeof canvas === "string") { + canvas = document.getElementById(canvas); + } + if (!canvas) { + canvas = document.getElementById("cutjs"); + } + if (!canvas) { + full = true; + DEBUG && console.log("Creating element..."); + canvas = document.createElement("canvas"); + canvas.style.position = "absolute"; + var body = document.body; + body.insertBefore(canvas, body.firstChild); + } + context = canvas.getContext("2d"); + var devicePixelRatio = window.devicePixelRatio || 1; + var backingStoreRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1; + ratio = devicePixelRatio / backingStoreRatio; + var requestAnimationFrame = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.oRequestAnimationFrame || function(callback) { + return window.setTimeout(callback, 1e3 / 60); + }; + DEBUG && console.log("Creating root..."); + var root = Cut.root(requestAnimationFrame, function() { + context.setTransform(1, 0, 0, 1, 0, 0); + context.clearRect(0, 0, width, height); + this.render(context); + }); + app(root, canvas); + resize(); + window.addEventListener("resize", resize, false); + function resize() { + if (full) { + width = window.innerWidth > 0 ? window.innerWidth : screen.width; + height = window.innerHeight > 0 ? window.innerHeight : screen.height; + canvas.style.width = width + "px"; + canvas.style.height = height + "px"; + } else { + width = canvas.clientWidth; + height = canvas.clientHeight; + } + width *= ratio; + height *= ratio; + canvas.width = width; + canvas.height = height; + DEBUG && console.log("Resize: " + width + " x " + height + " / " + ratio); + root.resize(width, height, ratio); + } + return root; +}; + +Cut.Loader.loadImage = function(src, handleComplete, handleError) { + var image = new Image(); + DEBUG && console.log("Loading image: " + src); + image.onload = handleComplete; + image.onerror = handleError; + image.src = src; + return image; +}; + +if (typeof Cut === "undefined" && typeof require === "function") Cut = require("./cut-core"); + +DEBUG = (typeof DEBUG === "undefined" || DEBUG) && console; + +Cut.Mouse = function() { + Cut.Mouse.subscribe.apply(Cut.Mouse, arguments); +}; + +Cut.Mouse.CLICK = "click"; + +Cut.Mouse.START = "touchstart mousedown"; + +Cut.Mouse.MOVE = "touchmove mousemove"; + +Cut.Mouse.END = "touchend mouseup"; + +Cut.Mouse.subscribe = function(root, elem, move) { + elem = elem || document; + elem.addEventListener("click", mouseClick); + // TODO: with 'if' mouse doesn't work on touch screen, without 'if' two events + // on Android + if ("ontouchstart" in window) { + elem.addEventListener("touchstart", function(event) { + mouseStart(event, "touchmove"); + }); + elem.addEventListener("touchend", function(event) { + mouseEnd(event, "touchmove"); + }); + move && elem.addEventListener("touchmove", mouseMove); + } else { + elem.addEventListener("mousedown", function(event) { + mouseStart(event, "mousemove"); + }); + elem.addEventListener("mouseup", function(event) { + mouseEnd(event, "mousemove"); + }); + move && elem.addEventListener("mousemove", mouseMove); + } + var visitor = null; + var abs = { + x: 0, + y: 0, + toString: function() { + return (this.x | 0) + "x" + (this.y | 0); + } + }; + var rel = { + x: 0, + y: 0, + toString: function() { + return abs + " / " + (this.x | 0) + "x" + (this.y | 0); + } + }; + var clicked = { + x: 0, + y: 0, + state: 0 + }; + function mouseStart(event, moveName) { + update(event, elem); + DEBUG && console.log("Mouse Start: " + event.type + " " + abs); + !move && elem.addEventListener(moveName, mouseMove); + event.preventDefault(); + publish(event.type, event); + clicked.x = abs.x; + clicked.y = abs.y; + clicked.state = 1; + } + function mouseEnd(event, moveName) { + try { + // New xy is not valid/available, last xy is used instead. + DEBUG && console.log("Mouse End: " + event.type + " " + abs); + !move && elem.removeEventListener(moveName, mouseMove); + event.preventDefault(); + publish(event.type, event); + if (clicked.state == 1 && clicked.x == abs.x && clicked.y == abs.y) { + DEBUG && console.log("Mouse Click [+]"); + publish("click", event); + clicked.state = 2; + } else { + clicked.state = 0; + } + } catch (e) { + console && console.log(e); + } + } + function mouseMove(event) { + try { + update(event, elem); + // DEBUG && console.log('Mouse Move: ' + event.type + ' ' + + // abs); + event.preventDefault(); + publish(event.type, event); + } catch (e) { + console && console.log(e); + } + } + function mouseClick(event) { + try { + update(event, elem); + DEBUG && console.log("Mouse Click: " + event.type + " " + abs); + event.preventDefault(); + if (clicked.state != 2) { + publish(event.type, event); + } else { + DEBUG && console.log("Mouse Click [-]"); + } + } catch (e) { + console && console.log(e); + } + } + function publish(type, event) { + abs.type = type; + abs.event = event; + rel.x = abs.x; + rel.y = abs.y; + // visitor.count = 0; + root.visit(visitor); + } + visitor = { + reverse: true, + visible: true, + start: function(cut) { + if (!cut._listens(abs.type)) { + return true; + } + }, + end: function(cut) { + // visitor.count++; + var listeners = cut.listeners(abs.type); + if (!listeners) { + return; + } + cut.matrix().reverse().map(abs, rel); + if (cut === root || cut.attr("spy")) {} else if (rel.x < 0 || rel.x > cut._pin._width || rel.y < 0 || rel.y > cut._pin._height) { + return; + } + rel.raw = abs.event; + for (var l = 0; l < listeners.length; l++) { + if (listeners[l].call(cut, rel)) { + return; + } + } + } + }; + function update(event, elem) { + var isTouch = false; + // touch screen events + if (event.touches) { + if (event.touches.length) { + isTouch = true; + abs.x = event.touches[0].pageX; + abs.y = event.touches[0].pageY; + } else { + return; + } + } else { + // mouse events + abs.x = event.clientX; + abs.y = event.clientY; + // See http://goo.gl/JuVnF2 + if (document.body.scrollLeft || document.body.scrollTop) {} else if (document.documentElement) { + abs.x += document.documentElement.scrollLeft; + abs.y += document.documentElement.scrollTop; + } + } + // accounts for border + abs.x -= elem.clientLeft || 0; + abs.y -= elem.clientTop || 0; + var par = elem; + while (par) { + abs.x -= par.offsetLeft || 0; + abs.y -= par.offsetTop || 0; + if (!isTouch) { + // touch events offset scrolling with pageX/Y + // so scroll offset not needed for them + abs.x += par.scrollLeft || 0; + abs.y += par.scrollTop || 0; + } + par = par.offsetParent; + } + // see loader + abs.x *= root._ratio || 1; + abs.y *= root._ratio || 1; + } +}; + +if (typeof define === 'function' && define.amd) { // AMD + define('Cut', [], function() { + return Cut; + }); +} \ No newline at end of file diff --git a/ajax/libs/cutjs/0.2.1/cut.web.min.js b/ajax/libs/cutjs/0.2.1/cut.web.min.js new file mode 100644 index 000000000..4aa20c395 --- /dev/null +++ b/ajax/libs/cutjs/0.2.1/cut.web.min.js @@ -0,0 +1,8 @@ +/* + * CutJS 0.2.1 + * Copyright (c) 2013-2014 Ali Shakiba, Piqnt LLC and other contributors + * Available under the MIT license + * @license + */ +function Cut(){if(!(this instanceof Cut)){if("function"==typeof arguments[0])return Cut.Loader.load.apply(Cut.Loader,arguments);if("object"==typeof arguments[0])return Cut.Texture.add.apply(Cut.Texture,arguments)}Cut._stats.create++,this._id="",this._visible=!0,this._parent=null,this._next=null,this._prev=null,this._first=null,this._last=null,this._pin=new Cut.Pin(this),this._cutouts=[],this._tickBefore=[],this._tickAfter=[],this._alpha=1}DEBUG=("undefined"==typeof DEBUG||DEBUG)&&console,Cut._create=function(){if("function"==typeof Object.create)return function(){return Object.create.apply(null,arguments)};var t=function(){};return function(i){if(arguments.length>1)throw Error("Second argument is not supported!");if(null===i||"object"!=typeof i)throw Error("Invalid prototype!");return t.prototype=i,new t}}(),Cut._stats={create:0,tick:0,paint:0,paste:0},Cut.create=function(){return new Cut},Cut.prototype.render=function(t){Cut._stats.tick=Cut._stats.paint=Cut._stats.paste=0;var i=Cut._now(),e=this._lastTime?i-this._lastTime:0;this._lastTime=i,this._tick(e),this._paint(t),Cut._stats.fps=1e3/(Cut._now()-i)},Cut.prototype.MAX_ELAPSE=1/0,Cut.prototype._tick=function(t){if(this._visible){t>this.MAX_ELAPSE&&(t=this.MAX_ELAPSE),this._pin.tick();for(var i=this._tickBefore.length,e=0;i>e;e++)Cut._stats.tick++,this._tickBefore[e].call(this,t);for(var s,n=this._first;s=n;)n=s._next,s._tick(t);for(var i=this._tickAfter.length,e=0;i>e;e++)Cut._stats.tick++,this._tickAfter[e].call(this,t)}},Cut.prototype.tick=function(t,i){i?this._tickBefore.push(t):this._tickAfter.push(t)},Cut.prototype.untick=function(t){var i;t&&((i=this._tickBefore.indexOf(t))>=0?this._tickBefore.splice(i,1):(i=this._tickAfter.indexOf(t))>=0&&this._tickAfter.splice(i,1))},Cut.prototype._paint=function(t){if(this._visible){Cut._stats.paint++;var i=this._pin.absoluteMatrix();t.setTransform(i.a,i.b,i.c,i.d,i.e,i.f),this._alpha=this._pin._alpha*(this._parent?this._parent._alpha:1);var e=this._pin._textureAlpha*this._alpha;t.globalAlpha!=e&&(t.globalAlpha=e);for(var s=this._cutouts.length,n=0;s>n;n++)this._cutouts[n].paste(t);t.globalAlpha!=this._alpha&&(t.globalAlpha=this._alpha);for(var r,o=this._first;r=o;)o=r._next,r._paint(t)}},Cut.prototype.toString=function(){return"["+this._id+"]"},Cut.prototype.id=function(t){return arguments.length?(this._id=t,this):this._id},Cut.prototype.attr=function(t,i){return arguments.length<2?this._attrs?this._attrs[t]:void 0:((this._attrs?this._attrs:this._attrs={})[t]=i,this)},Cut.prototype.on=Cut.prototype.listen=function(t,i){if("function"!=typeof i)return this;t=(Cut._isArray(t)?t.join(" "):t).split(/\s+/);for(var e=0;e0&&this._listenOn(i)},Cut.prototype._listenOff=function(t){if("string"==typeof t)this._listenersCount=this._listenersCount||{},1==this._listenersCount[t]&&this._parent&&this._parent._listenOff(t),this._listenersCount[t]=Math.max((this._listenersCount[t]||0)-1,0);else if("object"==typeof t&&t._listenersCount)for(var i in t._listenersCount)t._listenersCount[i]>0&&this._listenOff(i)},Cut.prototype._listens=function(t){return this._listenersCount&&this._listenersCount[t]||0},Cut.prototype.touch=function(){return this._ts_touch=Cut._TS++,this._parent&&this._parent.touch(),this},Cut.prototype.pin=function(){if(!arguments.length)return this._pin;var t=this._pin.update.apply(this._pin,arguments);return t===this._pin?this:t},Cut.prototype.matrix=function(){return this._pin.absoluteMatrix(this,this._parent?this._parent._pin:null)},Cut.prototype.tween=function(t,i){return(this._tween||(this._tween=new Cut.Tween(this))).tween(t,i)},Cut.Tween=function(t){var i=this;this._owner=t,this._queue=[],this._next=null,t.tick(function(e){if(i._queue.length){this.touch();var s=i._queue[0];if(s.time?s.time+=e:s.time=1,!(s.time=1;r=r>1?1:r,r="function"==typeof s.easing?s.easing(r):r;var h=1-r;for(var n in s.keys)t.pin(n,s.start[n]*h+s.end[s.keys[n]]*r);o&&(i._queue.shift(),s.then&&s.then.call(t))}}},!0)},Cut.Tween.prototype.tween=function(t,i){return this._next={id:Cut._TS++,end:{},duration:t||400,delay:i||0},this},Cut.Tween.prototype.pin=function(){this._next!==this._queue[this._queue.length-1]&&(this._owner.touch(),this._queue.push(this._next));var t=this._next.end;return 1===arguments.length?Cut._extend(t,arguments[0]):2===arguments.length&&(t[arguments[0]]=arguments[1]),this},Cut.Tween.prototype.clear=function(t){for(var i;i=this._queue.shift();)t&&this._owner.pin(i.end);return this},Cut.Tween.prototype.then=function(t){return this._next.then=t,this},Cut.Tween.prototype.ease=function(t){return this._next.easing=Cut.Easing(t),this},Cut.root=function(t,i){return new Cut.Root(t,i)},Cut.Root=function(t,i){Cut.String.prototype._super.apply(this,arguments),this._paused=!0,this._render=i,this._request=t;var e=this,s=function(){e._paused!==!0&&(e._mo_touch=e._ts_touch,e._render(),e.request(),e._mo_touch==e._ts_touch&&e.pause())};this.request=function(){this._request.call(null,s)},this.on("viewport",function(t){return this._size={width:t.width,height:t.height},this._updateViewbox(),!0})},Cut.Root.prototype=Cut._create(Cut.prototype),Cut.Root.prototype._super=Cut,Cut.Root.prototype.constructor=Cut.Root,Cut.Root.prototype.viewbox=function(t,i,e){return this._viewbox={width:t,height:i,mode:/^(in|out)$/.test(e)?e:"in"},this._updateViewbox(),this},Cut.Root.prototype._updateViewbox=function(){var t=this._viewbox,i=this._size;i&&this.pin(t?{width:t.width,height:t.height,resizeMode:t.mode,resizeWidth:i.width,resizeHeight:i.height}:{width:i.width,height:i.height})},Cut.Root.prototype.start=function(){return this.resume()},Cut.Root.prototype.resume=function(t){return(this._paused||t)&&(this._paused=!1,this.request()),this},Cut.Root.prototype.pause=function(){return this._paused=!0,this},Cut.Root.prototype.touch=function(){return this.resume(),Cut.prototype.touch.apply(this,arguments)},Cut.Root.prototype.resize=function(t,i,e){this._ratio=e||1;var s={};return s.width=t,s.height=i,s.ratio=e,this.visit({start:function(t){return t._listens("viewport")?void t.publish("viewport",[s]):!0}}),this},Cut.image=function(t){var i=new Cut.Image;return t&&i.image(t),i},Cut.Image=function(){Cut.Image.prototype._super.apply(this,arguments)},Cut.Image.prototype=Cut._create(Cut.prototype),Cut.Image.prototype._super=Cut,Cut.Image.prototype.constructor=Cut.Image,Cut.Image.prototype.setImage=function(){this.image.apply(this,arguments)},Cut.Image.prototype.image=function(t){return this._cutouts[0]=Cut.Out.select(t),this._cutouts.length=1,this.pin({width:this._cutouts[0]?this._cutouts[0].dWidth():0,height:this._cutouts[0]?this._cutouts[0].dHeight():0}),this._cutout=this._cutouts[0].clone(),this},Cut.Image.prototype.cropX=function(t,i){return this.image(this._cutouts[0].cropX(t,i))},Cut.Image.prototype.cropY=function(t,i){return this.image(this._cutouts[0].cropY(t,i))},Cut.Image.prototype._slice=function(t){return this._cutouts[t]||(this._cutouts[t]=this._cutout.clone())},Cut.Image.prototype.tile=function(t){return this.untick(this._repeatTicker),this._repeatTicker=function(){if(this._mo_tile!=this._ts_touch){this._mo_tile=this._ts_touch;var i=this._cutout._left,e=this._cutout._right,s=this._cutout._top,n=this._cutout._bottom,r=this._cutout.dWidth()-i-e,o=this._cutout.dHeight()-s-n,h=this.pin("width");h=t?h:h-i-e;var u=this.pin("height");u=t?u:u-s-n;var a=t?-i:0,_=t?-s:0,c=0;s&&i&&this._slice(c++).cropX(i,0).cropY(s,0).offset(a,_),n&&i&&this._slice(c++).cropX(i,0).cropY(n,o+s).offset(a,_+u+s),s&&e&&this._slice(c++).cropX(e,r+i).cropY(s,0).offset(a+h+i,_),n&&e&&this._slice(c++).cropX(e,r+i).cropY(n,o+s).offset(a+h+i,_+u+s);for(var f=a+i,p=h;p>0;){var l=Math.min(r,p);p-=r;for(var d=_+s,g=u;g>0;){var m=Math.min(o,g);g-=o,this._slice(c++).cropX(l,i).cropY(m,s).offset(f,d),0>=p&&(i&&this._slice(c++).cropX(i,0).cropY(m,s).offset(a,d),e&&this._slice(c++).cropX(e,r+i).cropY(m,s).offset(f+l,d)),d+=m}s&&this._slice(c++).cropX(l,i).cropY(s,0).offset(f,_),n&&this._slice(c++).cropX(l,i).cropY(n,o+s).offset(f,d),f+=l}this._cutouts.length=c}},this.tick(this._repeatTicker),this},Cut.Image.prototype.stretch=function(t){return this.untick(this._repeatTicker),this._repeatTicker=function(){if(this._mo_stretch!=this._pin._ts_transform){this._mo_stretch=this._pin._ts_transform;var i=this._cutout._left,e=this._cutout._right,s=this._cutout._top,n=this._cutout._bottom,r=this._cutout.dWidth(),o=this._cutout.dHeight(),h=this.pin("width"),u=this.pin("height");h=t?h+i+e:Math.max(h,i+e),u=t?u+s+n:Math.max(u,s+n);var a=0;s&&i&&this._slice(a++).cropX(i,0).cropY(s,0).offset(0,0),n&&i&&this._slice(a++).cropX(i,0).cropY(n,o-n).offset(0,u-n),s&&e&&this._slice(a++).cropX(e,r-e).cropY(s,0).offset(h-e,0),n&&e&&this._slice(a++).cropX(e,r-e).cropY(n,o-n).offset(h-e,u-n),s&&this._slice(a++).cropX(r-i-e,i).cropY(s,0).offset(i,0).dWidth(h-i-e),n&&this._slice(a++).cropX(r-i-e,i).cropY(n,o-n).offset(i,u-n).dWidth(h-i-e),i&&this._slice(a++).cropX(i,0).cropY(o-s-n,s).offset(0,s).dHeight(u-s-n),e&&this._slice(a++).cropX(e,r-e).cropY(o-s-n,s).offset(h-e,s).dHeight(u-s-n),this._slice(a++).cropX(r-i-e,i).cropY(o-s-n,s).offset(i,s).dWidth(h-i-e).dHeight(u-s-n),this._cutouts.length=a}},this.tick(this._repeatTicker),this},Cut.anim=function(t,i){var e=(new Cut.Anim).frames(t).gotoFrame(0);return i&&e.fps(i),e},Cut.Anim=function(){Cut.Anim.prototype._super.apply(this,arguments),this._fps=Cut.Anim.FPS,this._ft=1e3/this._fps,this._time=0,this._frame=0,this._frames=[],this._labels={},this.tick(function(){if(this._time&&this._frames.length>1){var t=Cut._now()-this._time;if(t>=this._ft){var i=t<2*this._ft?1:Math.floor(t/this._ft);this._time+=i*this._ft,this.moveFrame(i),this._repeat&&(this._repeat-=i)<=0&&(this.stop(),this._callback&&this._callback())}this.touch()}},!1)},Cut.Anim.prototype=Cut._create(Cut.prototype),Cut.Anim.prototype._super=Cut,Cut.Anim.prototype.constructor=Cut.Anim,Cut.Anim.FPS=22,Cut.Anim.prototype.fps=function(t){return arguments.length?(this._fps=t||Cut.Anim.FPS,this._ft=1e3/this._fps,this):this._fps},Cut.Anim.prototype.setFrames=function(){this.frames.apply(this,arguments)},Cut.Anim.prototype.frames=function(t){if(this._time=this._time||0,this._frame=0,this._frames=[],this._labels={},t=Cut.Out.select(t,!0),t&&t.length)for(var i=0;i=0;t--)e[t].pause()},resume:function(){for(var t=i.length-1;t>=0;t--)e[t].resume()},getImage:function(t){return s[t]},addImage:function(t,i){return s[i]=t,this}}}(),Cut.Texture=function(t){function i(){return r||(r=Cut.Loader.getImage(t.imagePath)),r}function e(i){if(!i||i.isCutout)return i;"function"==typeof t.map?i=t.map(i):"function"==typeof t.filter&&(i=t.filter(i));var e=t.ratio||1;1!=e&&(i.x*=e,i.y*=e,i.width*=e,i.height*=e,i.top*=e,i.bottom*=e,i.left*=e,i.right*=e);var s=t.trim||0;return s&&(i.x+=s,i.y+=s,i.width-=2*s,i.height-=2*s,i.top-=s,i.bottom-=s,i.left-=s,i.right-=s),i}function s(e){return e.isCutout||(e=new Cut.Out(e,i,t.imageRatio)),e}t.cutouts=t.cutouts||[];var n={},r=null;this.getImagePath=function(){return t.imagePath};for(var o=0;oe)throw"Invalid selector: '"+t+"'";var s=[t.slice(0,e),t.slice(e+1)],n=Cut.Texture._list[s[0]];if(null==n)throw"Texture not found: '"+t+"'";return n.select(s[1],i)},Cut.drawing=function(){return Cut.image(Cut.Out.drawing.apply(Cut.Out,arguments))},Cut.Out.drawing=function(){var t=document.createElement("canvas"),i=t.getContext("2d"),e={},s=0;"object"==typeof arguments[s]?e=arguments[s++]:("string"==typeof arguments[s]&&(e.name=arguments[s++]),e.width=arguments[s++],e.height=arguments[s++],"number"==typeof arguments[s]&&(e.ratio=arguments[s++]),e.x=0,e.y=0),e.ratio=e.ratio||1,e.name=e.name||1e3*Math.random()|0,t.width=Math.ceil(e.width*e.ratio),t.height=Math.ceil(e.height*e.ratio);var n=new Cut.Out(e,t,e.ratio);return"function"==typeof arguments[arguments.length-1]&&arguments[arguments.length-1].call(n,i,e.ratio),n},Cut.Pin=function(t){this._owner=t,this._parent=null,this._relativeMatrix=new Cut.Matrix,this._absoluteMatrix=new Cut.Matrix,this.reset()},Cut.Pin.prototype.reset=function(){this._textureAlpha=1,this._alpha=1,this._width=0,this._height=0,this._scaleX=1,this._scaleY=1,this._skewX=0,this._skewY=0,this._rotation=0,this._pivoted=!1,this._pivotX=null,this._pivotY=null,this._handled=!1,this._handleX=0,this._handleY=0,this._aligned=!1,this._alignX=0,this._alignY=0,this._offsetX=0,this._offsetY=0,this._boxX=0,this._boxY=0,this._boxWidth=this._width,this._boxHeight=this._height,this._ts_translate=Cut._TS++,this._ts_transform=Cut._TS++,this._ts_matrix=Cut._TS++},Cut.Pin.prototype.tick=function(){return this._parent=this._owner._parent&&this._owner._parent._pin,this._handled&&this._mo_handle!=this._ts_transform&&(this._mo_handle=this._ts_transform,this._ts_translate=Cut._TS++),this._aligned&&this._parent&&this._mo_align!=this._parent._ts_transform&&(this._mo_align=this._parent._ts_transform,this._ts_translate=Cut._TS++),this},Cut.Pin.prototype.toString=function(){return this._owner.id()+" ["+this._alignX+", "+this._alignY+"] ["+this._handleX+", "+this._handleY+"] ["+(this._parent?this._parent._owner.id():null)+"]"},Cut.Pin.prototype.absoluteMatrix=function(){var t=Math.max(this._ts_transform,this._ts_translate,this._parent?this._parent._ts_matrix:0);if(this._mo_abs==t)return this._absoluteMatrix;this._mo_abs=t;var i=this._absoluteMatrix;return i.copyFrom(this.relativeMatrix()),this._parent&&i.concat(this._parent._absoluteMatrix),this._ts_matrix=Cut._TS++,i},Cut.Pin.prototype.relativeMatrix=function(){var t=Math.max(this._ts_transform,this._ts_translate,this._parent?this._parent._ts_transform:0);if(this._mo_rel==t)return this._relativeMatrix;this._mo_rel=t;var i=this._relativeMatrix;if(i.identity(),this._pivoted&&i.translate(-this._pivotX*this._width,-this._pivotY*this._height),i.scale(this._scaleX,this._scaleY),i.skew(this._skewX,this._skewY),i.rotate(this._rotation),this._pivoted&&i.translate(this._pivotX*this._width,this._pivotY*this._height),this._pivoted)this._boxX=0,this._boxY=0,this._boxWidth=this._width,this._boxHeight=this._height;else{var e,s,n=i;n.a>0&&n.c>0||n.a<0&&n.c<0?(e=0,s=n.a*this._width+n.c*this._height):(e=n.a*this._width,s=n.c*this._height),e>s?(this._boxX=s,this._boxWidth=e-s):(this._boxX=e,this._boxWidth=s-e),n.b>0&&n.d>0||n.b<0&&n.d<0?(e=0,s=n.b*this._width+n.d*this._height):(e=n.b*this._width,s=n.d*this._height),e>s?(this._boxY=s,this._boxHeight=e-s):(this._boxY=e,this._boxHeight=s-e)}return this._x=this._offsetX,this._y=this._offsetY,this._x-=this._boxX+this._handleX*this._boxWidth,this._y-=this._boxY+this._handleY*this._boxHeight,this._aligned&&this._parent&&(this._parent.relativeMatrix(),this._x+=this._alignX*this._parent._width,this._y+=this._alignY*this._parent._height),i.translate(this._x,this._y),this._relativeMatrix},Cut.Pin._SINGLE={},Cut.Pin.prototype.update=function(){if(1==arguments.length&&"string"==typeof arguments[0])return this["_"+arguments[0]];this._transform_flag=!1,this._translate_flag=!1;var t=null,i=null,e=null;if(2==arguments.length&&"string"==typeof arguments[0]){for(i in Cut.Pin._SINGLE)delete Cut.Pin._SINGLE[i];(t=Cut.Pin._SINGLE)[arguments[0]]=arguments[1]}else 1==arguments.length&&"object"==typeof arguments[0]&&(t=arguments[0]);if(t)for(i in t)"undefined"!=typeof(e=t[i])&&(setter=Cut.Pin._setters[i])&&setter.call(Cut.Pin._setters,this,e,t);return this._translate_flag&&(this._translate_flag=!1,this._ts_translate=Cut._TS++),this._transform_flag&&(this._transform_flag=!1,this._ts_transform=Cut._TS++),this._owner&&(this._owner._ts_pin=Cut._TS++,this._owner.touch()),this},Cut.Pin._setters={alpha:function(t,i){t._alpha=i},textureAlpha:function(t,i){t._textureAlpha=i},width:function(t,i){t._width_=i,t._width=i,t._transform_flag=!0},height:function(t,i){t._height_=i,t._height=i,t._transform_flag=!0},scale:function(t,i){t._scaleX=i,t._scaleY=i,t._transform_flag=!0},scaleX:function(t,i){t._scaleX=i,t._transform_flag=!0},scaleY:function(t,i){t._scaleY=i,t._transform_flag=!0},skew:function(t,i){t._skewX=i,t._skewY=i,t._transform_flag=!0},skewX:function(t,i){t._skewX=i,t._transform_flag=!0},skewY:function(t,i){t._skewY=i,t._transform_flag=!0},rotation:function(t,i){t._rotation=i,t._transform_flag=!0},pivot:function(t,i){t._pivotX=i,t._pivotY=i,t._pivoted=!0,t._transform_flag=!0},pivotX:function(t,i){t._pivotX=i,t._pivoted=!0,t._transform_flag=!0},pivotY:function(t,i){t._pivotY=i,t._pivoted=!0,t._transform_flag=!0},offset:function(t,i){t._offsetX=i,t._offsetY=i,t._translate_flag=!0},offsetX:function(t,i){t._offsetX=i,t._translate_flag=!0},offsetY:function(t,i){t._offsetY=i,t._translate_flag=!0},align:function(){this.alignX.apply(this,arguments),this.alignY.apply(this,arguments)},alignX:function(t,i,e){t._alignX=i,t._aligned=!0,t._translate_flag=!0,this.handleX(t,i,e)},alignY:function(t,i,e){t._alignY=i,t._aligned=!0,t._translate_flag=!0,this.handleY(t,i,e)},handle:function(t,i,e){this.handleX(t,i,e),this.handleY(t,i,e)},handleX:function(t,i){t._handleX=i,t._handled=!0,t._translate_flag=!0},handleY:function(t,i){t._handleY=i,t._handled=!0,t._translate_flag=!0},resizeMode:function(t,i,e){Cut._isNum(e.resizeWidth)&&Cut._isNum(e.resizeHeight)&&(this.resizeWidth(t,e.resizeWidth,e,!0),this.resizeHeight(t,e.resizeHeight,e,!0),"out"==i?t._scaleX=t._scaleY=Math.max(t._scaleX,t._scaleY):"in"==i&&(t._scaleX=t._scaleY=Math.min(t._scaleX,t._scaleY)),t._width=e.resizeWidth/t._scaleX,t._height=e.resizeHeight/t._scaleY)},resizeWidth:function(t,i,e,s){(!e.resizeMode||s)&&(t._scaleX=i/t._width_,t._width=t._width_,t._transform_flag=!0)},resizeHeight:function(t,i,e,s){(!e.resizeMode||s)&&(t._scaleY=i/t._height_,t._height=t._height_,t._transform_flag=!0)},scaleMode:function(t,i,e){Cut._isNum(e.scaleWidth)&&Cut._isNum(e.scaleHeight)&&(this.scaleWidth(t,e.scaleWidth,e,!0),this.scaleHeight(t,e.scaleHeight,e,!0),"out"==i?t._scaleX=t._scaleY=Math.max(t._scaleX,t._scaleY):"in"==i&&(t._scaleX=t._scaleY=Math.min(t._scaleX,t._scaleY)))},scaleWidth:function(t,i,e,s){(!e.scaleMode||s)&&(t._scaleX=i/t._width_,t._transform_flag=!0)},scaleHeight:function(t,i,e,s){(!e.scaleMode||s)&&(t._scaleY=i/t._height_,t._transform_flag=!0)},matrix:function(t,i,e){this.scaleX(t,i.a,e),this.skewX(t,i.c/i.d,e),this.skewY(t,i.b/i.a,e),this.scaleY(t,i.d,e),this.offsetX(t,i.e,e),this.offsetY(t,i.f,e),this.rotation(t,0,e)}},Cut.Matrix=function(t,i,e,s,n,r){this.changed=!0,this.a=t||1,this.b=i||0,this.c=e||0,this.d=s||1,this.e=n||0,this.f=r||0},Cut.Matrix.prototype.toString=function(){return"["+this.a+", "+this.b+", "+this.c+", "+this.d+", "+this.e+", "+this.f+"]"},Cut.Matrix.prototype.clone=function(){return new Cut.Matrix(this.a,this.b,this.c,this.d,this.e,this.f)},Cut.Matrix.prototype.copyTo=function(t){return t.copyFrom(this),this},Cut.Matrix.prototype.copyFrom=function(t){return this.changed=!0,this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.e=t.e,this.f=t.f,this},Cut.Matrix.prototype.identity=function(){return this.changed=!0,this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0,this},Cut.Matrix.prototype.rotate=function(t){if(!t)return this;this.changed=!0;var i=t?Math.cos(t):1,e=t?Math.sin(t):0,s=i*this.a-e*this.b,n=i*this.b+e*this.a,r=i*this.c-e*this.d,o=i*this.d+e*this.c,h=i*this.e-e*this.f,u=i*this.f+e*this.e;return this.a=s,this.b=n,this.c=r,this.d=o,this.e=h,this.f=u,this},Cut.Matrix.prototype.translate=function(t,i){return t||i?(this.changed=!0,this.e+=t,this.f+=i,this):this},Cut.Matrix.prototype.scale=function(t,i){return t-1||i-1?(this.changed=!0,this.a*=t,this.b*=i,this.c*=t,this.d*=i,this.e*=t,this.f*=i,this):this},Cut.Matrix.prototype.skew=function(t,i){if(!t&&!i)return this;this.changed=!0;var e=this.a+this.b*t,s=this.b+this.a*i,n=this.c+this.d*t,r=this.d+this.c*i,o=this.e+this.f*t,h=this.f+this.e*i;return this.a=e,this.b=s,this.c=n,this.d=r,this.e=o,this.f=h,this},Cut.Matrix.prototype.concat=function(t){this.changed=!0;var i=this,e=i.a*t.a+i.b*t.c,s=i.b*t.d+i.a*t.b,n=i.c*t.a+i.d*t.c,r=i.d*t.d+i.c*t.b,o=i.e*t.a+t.e+i.f*t.c,h=i.f*t.d+t.f+i.e*t.b;return this.a=e,this.b=s,this.c=n,this.d=r,this.e=o,this.f=h,this},Cut.Matrix.prototype.reverse=function(){if(this.changed){this.changed=!1,this.reversed=this.reversed||new Cut.Matrix; +var t=this.a*this.d-this.b*this.c;this.reversed.a=this.d/t,this.reversed.b=-this.b/t,this.reversed.c=-this.c/t,this.reversed.d=this.a/t,this.reversed.e=(this.c*this.f-this.e*this.d)/t,this.reversed.f=(this.e*this.b-this.a*this.f)/t}return this.reversed},Cut.Matrix.prototype.map=function(t,i){return i=i||{},i.x=this.a*t.x+this.c*t.y+this.e,i.y=this.b*t.x+this.d*t.y+this.f,i},Cut.Matrix.prototype.mapX=function(t,i){return this.a*t+this.c*i+this.e},Cut.Matrix.prototype.mapY=function(t,i){return this.b*t+this.d*i+this.f},Cut.Math={},Cut.Math.random=function(t,i){return 0==arguments.length?(i=1,t=0):1==arguments.length&&(i=t,t=0),t==i?t:Math.random()*(i-t)+t},Cut.Math.rotate=function(t,i,e){return arguments.length<3&&(e=i||0,i=0),e>i?(t=(t-i)%(e-i),t+(0>t?e:i)):(t=(t-e)%(i-e),t+(0>=t?i:e))},Cut.Math.length=function(t,i){return Math.sqrt(t*t+i*i)},Cut._TS=0,Cut._isCut=function(t){return t instanceof Cut},Cut._isNum=function(t){return"number"==typeof t},Cut._isFunc=function(t){return"function"==typeof t},Cut._isArray="isArray"in Array?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},Cut._extend=function(t,i,e){if(e)for(var s=0;si?t(2*i)/2:1-t(2*(1-i))/2}}}),Cut.Easing.addMode({name:"out-in",fn:function(t){return function(i){return.5>i?1-t(2*(1-i))/2:t(2*i)/2}}}),Cut.Easing.add({name:"linear",fn:function(t){return t}}),Cut.Easing.add({name:"quad",fn:function(t){return t*t}}),Cut.Easing.add({name:"cubic",fn:function(t){return t*t*t}}),Cut.Easing.add({name:"quart",fn:function(t){return t*t*t*t}}),Cut.Easing.add({name:"quint",fn:function(t){return t*t*t*t*t}}),Cut.Easing.add({name:"sin sine",fn:function(t){return 1-Math.cos(t*Math.PI/2)}}),Cut.Easing.add({name:"exp",fn:function(t){return 0==t?0:Math.pow(2,10*(t-1))}}),Cut.Easing.add({name:"circle circ",fn:function(t){return 1-Math.sqrt(1-t*t)}}),Cut.Easing.add({name:"bounce",fn:function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}}),Cut.Easing.add({name:"poly",fc:function(t){return function(i){return Math.pow(i,t)}}}),Cut.Easing.add({name:"elastic",fc:function(t,i){i=i||.45,t=t||1;var e=i/(2*Math.PI)*Math.asin(1/t);return function(s){return 1+t*Math.pow(2,-10*s)*Math.sin(2*(s-e)*Math.PI/i)}}}),Cut.Easing.add({name:"back",fc:function(t){return t=arguments.length?t:1.70158,function(i){return i*i*((t+1)*i-t)}}}),"undefined"!=typeof module&&(module.exports=Cut),"undefined"==typeof Cut&&"function"==typeof require&&(Cut=require("./cut-core")),DEBUG=("undefined"==typeof DEBUG||DEBUG)&&console,window.addEventListener("load",function(){DEBUG&&console.log("On load."),Cut.Loader.start()},!1),Cut.Loader.init=function(t,i){function e(){r?(o=window.innerWidth>0?window.innerWidth:screen.width,h=window.innerHeight>0?window.innerHeight:screen.height,s.style.width=o+"px",s.style.height=h+"px"):(o=s.clientWidth,h=s.clientHeight),o*=u,h*=u,s.width=o,s.height=h,DEBUG&&console.log("Resize: "+o+" x "+h+" / "+u),p.resize(o,h,u)}i=i||{};var s=i.canvas,n=null,r=!1,o=0,h=0,u=1;if("string"==typeof s&&(s=document.getElementById(s)),s||(s=document.getElementById("cutjs")),!s){r=!0,DEBUG&&console.log("Creating element..."),s=document.createElement("canvas"),s.style.position="absolute";var a=document.body;a.insertBefore(s,a.firstChild)}n=s.getContext("2d");var _=window.devicePixelRatio||1,c=n.webkitBackingStorePixelRatio||n.mozBackingStorePixelRatio||n.msBackingStorePixelRatio||n.oBackingStorePixelRatio||n.backingStorePixelRatio||1;u=_/c;var f=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)};DEBUG&&console.log("Creating root...");var p=Cut.root(f,function(){n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,o,h),this.render(n)});return t(p,s),e(),window.addEventListener("resize",e,!1),p},Cut.Loader.loadImage=function(t,i,e){var s=new Image;return DEBUG&&console.log("Loading image: "+t),s.onload=i,s.onerror=e,s.src=t,s},"undefined"==typeof Cut&&"function"==typeof require&&(Cut=require("./cut-core")),DEBUG=("undefined"==typeof DEBUG||DEBUG)&&console,Cut.Mouse=function(){Cut.Mouse.subscribe.apply(Cut.Mouse,arguments)},Cut.Mouse.CLICK="click",Cut.Mouse.START="touchstart mousedown",Cut.Mouse.MOVE="touchmove mousemove",Cut.Mouse.END="touchend mouseup",Cut.Mouse.subscribe=function(t,i,e){function s(t,s){u(t,i),DEBUG&&console.log("Mouse Start: "+t.type+" "+_),!e&&i.addEventListener(s,r),t.preventDefault(),h(t.type,t),f.x=_.x,f.y=_.y,f.state=1}function n(t,s){try{DEBUG&&console.log("Mouse End: "+t.type+" "+_),!e&&i.removeEventListener(s,r),t.preventDefault(),h(t.type,t),1==f.state&&f.x==_.x&&f.y==_.y?(DEBUG&&console.log("Mouse Click [+]"),h("click",t),f.state=2):f.state=0}catch(n){console&&console.log(n)}}function r(t){try{u(t,i),t.preventDefault(),h(t.type,t)}catch(e){console&&console.log(e)}}function o(t){try{u(t,i),DEBUG&&console.log("Mouse Click: "+t.type+" "+_),t.preventDefault(),2!=f.state?h(t.type,t):DEBUG&&console.log("Mouse Click [-]")}catch(e){console&&console.log(e)}}function h(i,e){_.type=i,_.event=e,c.x=_.x,c.y=_.y,t.visit(a)}function u(i,e){var s=!1;if(i.touches){if(!i.touches.length)return;s=!0,_.x=i.touches[0].pageX,_.y=i.touches[0].pageY}else _.x=i.clientX,_.y=i.clientY,document.body.scrollLeft||document.body.scrollTop||document.documentElement&&(_.x+=document.documentElement.scrollLeft,_.y+=document.documentElement.scrollTop);_.x-=e.clientLeft||0,_.y-=e.clientTop||0;for(var n=e;n;)_.x-=n.offsetLeft||0,_.y-=n.offsetTop||0,s||(_.x+=n.scrollLeft||0,_.y+=n.scrollTop||0),n=n.offsetParent;_.x*=t._ratio||1,_.y*=t._ratio||1}i=i||document,i.addEventListener("click",o),"ontouchstart"in window?(i.addEventListener("touchstart",function(t){s(t,"touchmove")}),i.addEventListener("touchend",function(t){n(t,"touchmove")}),e&&i.addEventListener("touchmove",r)):(i.addEventListener("mousedown",function(t){s(t,"mousemove")}),i.addEventListener("mouseup",function(t){n(t,"mousemove")}),e&&i.addEventListener("mousemove",r));var a=null,_={x:0,y:0,toString:function(){return(0|this.x)+"x"+(0|this.y)}},c={x:0,y:0,toString:function(){return _+" / "+(0|this.x)+"x"+(0|this.y)}},f={x:0,y:0,state:0};a={reverse:!0,visible:!0,start:function(t){return t._listens(_.type)?void 0:!0},end:function(i){var e=i.listeners(_.type);if(e){if(i.matrix().reverse().map(_,c),i===t||i.attr("spy"));else if(c.x<0||c.x>i._pin._width||c.y<0||c.y>i._pin._height)return;c.raw=_.event;for(var s=0;s Date: Sat, 27 Sep 2014 00:40:03 +0800 Subject: [PATCH 4/6] add foundation v5.4.5 --- ajax/libs/foundation/5.4.5/css/foundation.css | 6172 +++++++++++++++++ .../foundation/5.4.5/css/foundation.min.css | 1 + ajax/libs/foundation/5.4.5/css/normalize.css | 425 ++ .../foundation/5.4.5/css/normalize.min.css | 1 + .../foundation/5.4.5/js/foundation.min.js | 10 + .../5.4.5/js/foundation/foundation.abide.js | 313 + .../js/foundation/foundation.abide.min.js | 1 + .../js/foundation/foundation.accordion.js | 65 + .../js/foundation/foundation.accordion.min.js | 1 + .../5.4.5/js/foundation/foundation.alert.js | 43 + .../js/foundation/foundation.alert.min.js | 1 + .../js/foundation/foundation.clearing.js | 558 ++ .../js/foundation/foundation.clearing.min.js | 1 + .../js/foundation/foundation.dropdown.js | 322 + .../js/foundation/foundation.dropdown.min.js | 1 + .../js/foundation/foundation.equalizer.js | 74 + .../js/foundation/foundation.equalizer.min.js | 1 + .../js/foundation/foundation.interchange.js | 344 + .../foundation/foundation.interchange.min.js | 1 + .../5.4.5/js/foundation/foundation.joyride.js | 915 +++ .../js/foundation/foundation.joyride.min.js | 1 + .../5.4.5/js/foundation/foundation.js | 625 ++ .../js/foundation/foundation.magellan.js | 189 + .../js/foundation/foundation.magellan.min.js | 1 + .../5.4.5/js/foundation/foundation.min.js | 1 + .../js/foundation/foundation.offcanvas.js | 152 + .../js/foundation/foundation.offcanvas.min.js | 1 + .../5.4.5/js/foundation/foundation.orbit.js | 472 ++ .../js/foundation/foundation.orbit.min.js | 1 + .../5.4.5/js/foundation/foundation.reveal.js | 444 ++ .../js/foundation/foundation.reveal.min.js | 1 + .../5.4.5/js/foundation/foundation.slider.js | 239 + .../js/foundation/foundation.slider.min.js | 1 + .../5.4.5/js/foundation/foundation.tab.js | 217 + .../5.4.5/js/foundation/foundation.tab.min.js | 1 + .../5.4.5/js/foundation/foundation.tooltip.js | 300 + .../js/foundation/foundation.tooltip.min.js | 1 + .../5.4.5/js/foundation/foundation.topbar.js | 445 ++ .../js/foundation/foundation.topbar.min.js | 1 + .../foundation/5.4.5/js/vendor/fastclick.js | 9 + .../5.4.5/js/vendor/jquery.cookie.js | 8 + .../libs/foundation/5.4.5/js/vendor/jquery.js | 26 + .../foundation/5.4.5/js/vendor/modernizr.js | 8 + .../foundation/5.4.5/js/vendor/placeholder.js | 2 + ajax/libs/foundation/package.json | 2 +- 45 files changed, 12397 insertions(+), 1 deletion(-) create mode 100644 ajax/libs/foundation/5.4.5/css/foundation.css create mode 100644 ajax/libs/foundation/5.4.5/css/foundation.min.css create mode 100644 ajax/libs/foundation/5.4.5/css/normalize.css create mode 100644 ajax/libs/foundation/5.4.5/css/normalize.min.css create mode 100644 ajax/libs/foundation/5.4.5/js/foundation.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.abide.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.abide.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.accordion.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.accordion.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.alert.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.alert.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.clearing.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.clearing.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.dropdown.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.dropdown.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.equalizer.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.equalizer.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.interchange.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.interchange.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.joyride.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.joyride.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.magellan.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.magellan.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.offcanvas.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.offcanvas.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.orbit.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.orbit.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.reveal.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.reveal.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.slider.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.slider.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.tab.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.tab.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.tooltip.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.tooltip.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.topbar.js create mode 100644 ajax/libs/foundation/5.4.5/js/foundation/foundation.topbar.min.js create mode 100644 ajax/libs/foundation/5.4.5/js/vendor/fastclick.js create mode 100644 ajax/libs/foundation/5.4.5/js/vendor/jquery.cookie.js create mode 100644 ajax/libs/foundation/5.4.5/js/vendor/jquery.js create mode 100644 ajax/libs/foundation/5.4.5/js/vendor/modernizr.js create mode 100644 ajax/libs/foundation/5.4.5/js/vendor/placeholder.js diff --git a/ajax/libs/foundation/5.4.5/css/foundation.css b/ajax/libs/foundation/5.4.5/css/foundation.css new file mode 100644 index 000000000..89f12524d --- /dev/null +++ b/ajax/libs/foundation/5.4.5/css/foundation.css @@ -0,0 +1,6172 @@ +meta.foundation-version { + font-family: "/5.4.5/"; } + +meta.foundation-mq-small { + font-family: "/only screen/"; + width: 0em; } + +meta.foundation-mq-medium { + font-family: "/only screen and (min-width:40.063em)/"; + width: 40.063em; } + +meta.foundation-mq-large { + font-family: "/only screen and (min-width:64.063em)/"; + width: 64.063em; } + +meta.foundation-mq-xlarge { + font-family: "/only screen and (min-width:90.063em)/"; + width: 90.063em; } + +meta.foundation-mq-xxlarge { + font-family: "/only screen and (min-width:120.063em)/"; + width: 120.063em; } + +meta.foundation-data-attribute-namespace { + font-family: false; } + +html, body { + height: 100%; } + +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + +html, +body { + font-size: 100%; } + +body { + background: white; + color: #222222; + padding: 0; + margin: 0; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1.5; + position: relative; + cursor: auto; } + +a:hover { + cursor: pointer; } + +img { + max-width: 100%; + height: auto; } + +img { + -ms-interpolation-mode: bicubic; } + +#map_canvas img, +#map_canvas embed, +#map_canvas object, +.map_canvas img, +.map_canvas embed, +.map_canvas object { + max-width: none !important; } + +.left { + float: left !important; } + +.right { + float: right !important; } + +.clearfix:before, .clearfix:after { + content: " "; + display: table; } +.clearfix:after { + clear: both; } + +.hide { + display: none; } + +.antialiased { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +img { + display: inline-block; + vertical-align: middle; } + +textarea { + height: auto; + min-height: 50px; } + +select { + width: 100%; } + +.row { + width: 100%; + margin-left: auto; + margin-right: auto; + margin-top: 0; + margin-bottom: 0; + max-width: 62.5rem; } + .row:before, .row:after { + content: " "; + display: table; } + .row:after { + clear: both; } + .row.collapse > .column, + .row.collapse > .columns { + padding-left: 0; + padding-right: 0; } + .row.collapse .row { + margin-left: 0; + margin-right: 0; } + .row .row { + width: auto; + margin-left: -0.9375rem; + margin-right: -0.9375rem; + margin-top: 0; + margin-bottom: 0; + max-width: none; } + .row .row:before, .row .row:after { + content: " "; + display: table; } + .row .row:after { + clear: both; } + .row .row.collapse { + width: auto; + margin: 0; + max-width: none; } + .row .row.collapse:before, .row .row.collapse:after { + content: " "; + display: table; } + .row .row.collapse:after { + clear: both; } + +.column, +.columns { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + width: 100%; + float: left; } + +[class*="column"] + [class*="column"]:last-child { + float: right; } + +[class*="column"] + [class*="column"].end { + float: left; } + +@media only screen { + .small-push-0 { + position: relative; + left: 0%; + right: auto; } + + .small-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .small-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .small-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .small-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .small-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .small-push-3 { + position: relative; + left: 25%; + right: auto; } + + .small-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .small-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .small-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .small-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .small-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .small-push-6 { + position: relative; + left: 50%; + right: auto; } + + .small-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .small-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .small-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .small-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .small-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .small-push-9 { + position: relative; + left: 75%; + right: auto; } + + .small-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .small-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .small-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .small-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .small-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, + .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .small-1 { + width: 8.33333%; } + + .small-2 { + width: 16.66667%; } + + .small-3 { + width: 25%; } + + .small-4 { + width: 33.33333%; } + + .small-5 { + width: 41.66667%; } + + .small-6 { + width: 50%; } + + .small-7 { + width: 58.33333%; } + + .small-8 { + width: 66.66667%; } + + .small-9 { + width: 75%; } + + .small-10 { + width: 83.33333%; } + + .small-11 { + width: 91.66667%; } + + .small-12 { + width: 100%; } + + .small-offset-0 { + margin-left: 0% !important; } + + .small-offset-1 { + margin-left: 8.33333% !important; } + + .small-offset-2 { + margin-left: 16.66667% !important; } + + .small-offset-3 { + margin-left: 25% !important; } + + .small-offset-4 { + margin-left: 33.33333% !important; } + + .small-offset-5 { + margin-left: 41.66667% !important; } + + .small-offset-6 { + margin-left: 50% !important; } + + .small-offset-7 { + margin-left: 58.33333% !important; } + + .small-offset-8 { + margin-left: 66.66667% !important; } + + .small-offset-9 { + margin-left: 75% !important; } + + .small-offset-10 { + margin-left: 83.33333% !important; } + + .small-offset-11 { + margin-left: 91.66667% !important; } + + .small-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.small-centered, + .columns.small-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.small-uncentered, + .columns.small-uncentered { + margin-left: 0; + margin-right: 0; + float: left; } + + .column.small-centered:last-child, + .columns.small-centered:last-child { + float: none; } + + .column.small-uncentered:last-child, + .columns.small-uncentered:last-child { + float: left; } + + .column.small-uncentered.opposite, + .columns.small-uncentered.opposite { + float: right; } } +@media only screen and (min-width: 40.063em) { + .medium-push-0 { + position: relative; + left: 0%; + right: auto; } + + .medium-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .medium-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .medium-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .medium-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .medium-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .medium-push-3 { + position: relative; + left: 25%; + right: auto; } + + .medium-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .medium-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .medium-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .medium-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .medium-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .medium-push-6 { + position: relative; + left: 50%; + right: auto; } + + .medium-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .medium-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .medium-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .medium-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .medium-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .medium-push-9 { + position: relative; + left: 75%; + right: auto; } + + .medium-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .medium-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .medium-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .medium-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .medium-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, + .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .medium-1 { + width: 8.33333%; } + + .medium-2 { + width: 16.66667%; } + + .medium-3 { + width: 25%; } + + .medium-4 { + width: 33.33333%; } + + .medium-5 { + width: 41.66667%; } + + .medium-6 { + width: 50%; } + + .medium-7 { + width: 58.33333%; } + + .medium-8 { + width: 66.66667%; } + + .medium-9 { + width: 75%; } + + .medium-10 { + width: 83.33333%; } + + .medium-11 { + width: 91.66667%; } + + .medium-12 { + width: 100%; } + + .medium-offset-0 { + margin-left: 0% !important; } + + .medium-offset-1 { + margin-left: 8.33333% !important; } + + .medium-offset-2 { + margin-left: 16.66667% !important; } + + .medium-offset-3 { + margin-left: 25% !important; } + + .medium-offset-4 { + margin-left: 33.33333% !important; } + + .medium-offset-5 { + margin-left: 41.66667% !important; } + + .medium-offset-6 { + margin-left: 50% !important; } + + .medium-offset-7 { + margin-left: 58.33333% !important; } + + .medium-offset-8 { + margin-left: 66.66667% !important; } + + .medium-offset-9 { + margin-left: 75% !important; } + + .medium-offset-10 { + margin-left: 83.33333% !important; } + + .medium-offset-11 { + margin-left: 91.66667% !important; } + + .medium-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.medium-centered, + .columns.medium-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.medium-uncentered, + .columns.medium-uncentered { + margin-left: 0; + margin-right: 0; + float: left; } + + .column.medium-centered:last-child, + .columns.medium-centered:last-child { + float: none; } + + .column.medium-uncentered:last-child, + .columns.medium-uncentered:last-child { + float: left; } + + .column.medium-uncentered.opposite, + .columns.medium-uncentered.opposite { + float: right; } + + .push-0 { + position: relative; + left: 0%; + right: auto; } + + .pull-0 { + position: relative; + right: 0%; + left: auto; } + + .push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .push-3 { + position: relative; + left: 25%; + right: auto; } + + .pull-3 { + position: relative; + right: 25%; + left: auto; } + + .push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .push-6 { + position: relative; + left: 50%; + right: auto; } + + .pull-6 { + position: relative; + right: 50%; + left: auto; } + + .push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .push-9 { + position: relative; + left: 75%; + right: auto; } + + .pull-9 { + position: relative; + right: 75%; + left: auto; } + + .push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .pull-11 { + position: relative; + right: 91.66667%; + left: auto; } } +@media only screen and (min-width: 64.063em) { + .large-push-0 { + position: relative; + left: 0%; + right: auto; } + + .large-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .large-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .large-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .large-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .large-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .large-push-3 { + position: relative; + left: 25%; + right: auto; } + + .large-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .large-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .large-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .large-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .large-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .large-push-6 { + position: relative; + left: 50%; + right: auto; } + + .large-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .large-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .large-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .large-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .large-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .large-push-9 { + position: relative; + left: 75%; + right: auto; } + + .large-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .large-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .large-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .large-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .large-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, + .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .large-1 { + width: 8.33333%; } + + .large-2 { + width: 16.66667%; } + + .large-3 { + width: 25%; } + + .large-4 { + width: 33.33333%; } + + .large-5 { + width: 41.66667%; } + + .large-6 { + width: 50%; } + + .large-7 { + width: 58.33333%; } + + .large-8 { + width: 66.66667%; } + + .large-9 { + width: 75%; } + + .large-10 { + width: 83.33333%; } + + .large-11 { + width: 91.66667%; } + + .large-12 { + width: 100%; } + + .large-offset-0 { + margin-left: 0% !important; } + + .large-offset-1 { + margin-left: 8.33333% !important; } + + .large-offset-2 { + margin-left: 16.66667% !important; } + + .large-offset-3 { + margin-left: 25% !important; } + + .large-offset-4 { + margin-left: 33.33333% !important; } + + .large-offset-5 { + margin-left: 41.66667% !important; } + + .large-offset-6 { + margin-left: 50% !important; } + + .large-offset-7 { + margin-left: 58.33333% !important; } + + .large-offset-8 { + margin-left: 66.66667% !important; } + + .large-offset-9 { + margin-left: 75% !important; } + + .large-offset-10 { + margin-left: 83.33333% !important; } + + .large-offset-11 { + margin-left: 91.66667% !important; } + + .large-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.large-centered, + .columns.large-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.large-uncentered, + .columns.large-uncentered { + margin-left: 0; + margin-right: 0; + float: left; } + + .column.large-centered:last-child, + .columns.large-centered:last-child { + float: none; } + + .column.large-uncentered:last-child, + .columns.large-uncentered:last-child { + float: left; } + + .column.large-uncentered.opposite, + .columns.large-uncentered.opposite { + float: right; } + + .push-0 { + position: relative; + left: 0%; + right: auto; } + + .pull-0 { + position: relative; + right: 0%; + left: auto; } + + .push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .push-3 { + position: relative; + left: 25%; + right: auto; } + + .pull-3 { + position: relative; + right: 25%; + left: auto; } + + .push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .push-6 { + position: relative; + left: 50%; + right: auto; } + + .pull-6 { + position: relative; + right: 50%; + left: auto; } + + .push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .push-9 { + position: relative; + left: 75%; + right: auto; } + + .pull-9 { + position: relative; + right: 75%; + left: auto; } + + .push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .pull-11 { + position: relative; + right: 91.66667%; + left: auto; } } +button, .button { + border-style: solid; + border-width: 0px; + cursor: pointer; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-weight: normal; + line-height: normal; + margin: 0 0 1.25rem; + position: relative; + text-decoration: none; + text-align: center; + -webkit-appearance: none; + -webkit-border-radius: 0; + display: inline-block; + padding-top: 1rem; + padding-right: 2rem; + padding-bottom: 1.0625rem; + padding-left: 2rem; + font-size: 1rem; + background-color: #008cba; + border-color: #007095; + color: white; + transition: background-color 300ms ease-out; } + button:hover, button:focus, .button:hover, .button:focus { + background-color: #007095; } + button:hover, button:focus, .button:hover, .button:focus { + color: white; } + button.secondary, .button.secondary { + background-color: #e7e7e7; + border-color: #b9b9b9; + color: #333333; } + button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus { + background-color: #b9b9b9; } + button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus { + color: #333333; } + button.success, .button.success { + background-color: #43ac6a; + border-color: #368a55; + color: white; } + button.success:hover, button.success:focus, .button.success:hover, .button.success:focus { + background-color: #368a55; } + button.success:hover, button.success:focus, .button.success:hover, .button.success:focus { + color: white; } + button.alert, .button.alert { + background-color: #f04124; + border-color: #cf2a0e; + color: white; } + button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus { + background-color: #cf2a0e; } + button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus { + color: white; } + button.warning, .button.warning { + background-color: #f08a24; + border-color: #cf6e0e; + color: white; } + button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus { + background-color: #cf6e0e; } + button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus { + color: white; } + button.info, .button.info { + background-color: #a0d3e8; + border-color: #61b6d9; + color: #333333; } + button.info:hover, button.info:focus, .button.info:hover, .button.info:focus { + background-color: #61b6d9; } + button.info:hover, button.info:focus, .button.info:hover, .button.info:focus { + color: white; } + button.large, .button.large { + padding-top: 1.125rem; + padding-right: 2.25rem; + padding-bottom: 1.1875rem; + padding-left: 2.25rem; + font-size: 1.25rem; } + button.small, .button.small { + padding-top: 0.875rem; + padding-right: 1.75rem; + padding-bottom: 0.9375rem; + padding-left: 1.75rem; + font-size: 0.8125rem; } + button.tiny, .button.tiny { + padding-top: 0.625rem; + padding-right: 1.25rem; + padding-bottom: 0.6875rem; + padding-left: 1.25rem; + font-size: 0.6875rem; } + button.expand, .button.expand { + padding-right: 0; + padding-left: 0; + width: 100%; } + button.left-align, .button.left-align { + text-align: left; + text-indent: 0.75rem; } + button.right-align, .button.right-align { + text-align: right; + padding-right: 0.75rem; } + button.radius, .button.radius { + border-radius: 3px; } + button.round, .button.round { + border-radius: 1000px; } + button.disabled, button[disabled], .button.disabled, .button[disabled] { + background-color: #008cba; + border-color: #007095; + color: white; + cursor: default; + opacity: 0.7; + box-shadow: none; } + button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { + background-color: #007095; } + button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { + color: white; } + button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { + background-color: #008cba; } + button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary { + background-color: #e7e7e7; + border-color: #b9b9b9; + color: #333333; + cursor: default; + opacity: 0.7; + box-shadow: none; } + button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { + background-color: #b9b9b9; } + button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { + color: #333333; } + button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { + background-color: #e7e7e7; } + button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success { + background-color: #43ac6a; + border-color: #368a55; + color: white; + cursor: default; + opacity: 0.7; + box-shadow: none; } + button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { + background-color: #368a55; } + button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { + color: white; } + button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { + background-color: #43ac6a; } + button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert { + background-color: #f04124; + border-color: #cf2a0e; + color: white; + cursor: default; + opacity: 0.7; + box-shadow: none; } + button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { + background-color: #cf2a0e; } + button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { + color: white; } + button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { + background-color: #f04124; } + button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning { + background-color: #f08a24; + border-color: #cf6e0e; + color: white; + cursor: default; + opacity: 0.7; + box-shadow: none; } + button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus { + background-color: #cf6e0e; } + button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus { + color: white; } + button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus { + background-color: #f08a24; } + button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info { + background-color: #a0d3e8; + border-color: #61b6d9; + color: #333333; + cursor: default; + opacity: 0.7; + box-shadow: none; } + button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus { + background-color: #61b6d9; } + button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus { + color: white; } + button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus { + background-color: #a0d3e8; } + +button::-moz-focus-inner { + border: 0; + padding: 0; } + +@media only screen and (min-width: 40.063em) { + button, .button { + display: inline-block; } } +/* Standard Forms */ +form { + margin: 0 0 1rem; } + +/* Using forms within rows, we need to set some defaults */ +form .row .row { + margin: 0 -0.5rem; } + form .row .row .column, + form .row .row .columns { + padding: 0 0.5rem; } + form .row .row.collapse { + margin: 0; } + form .row .row.collapse .column, + form .row .row.collapse .columns { + padding: 0; } + form .row .row.collapse input { + -webkit-border-bottom-right-radius: 0; + -webkit-border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-top-right-radius: 0; } +form .row input.column, +form .row input.columns, +form .row textarea.column, +form .row textarea.columns { + padding-left: 0.5rem; } + +/* Label Styles */ +label { + font-size: 0.875rem; + color: #4d4d4d; + cursor: pointer; + display: block; + font-weight: normal; + line-height: 1.5; + margin-bottom: 0; + /* Styles for required inputs */ } + label.right { + float: none !important; + text-align: right; } + label.inline { + margin: 0 0 1rem 0; + padding: 0.5625rem 0; } + label small { + text-transform: capitalize; + color: #676767; } + +select::-ms-expand { + display: none; } + +/* Attach elements to the beginning or end of an input */ +.prefix, +.postfix { + display: block; + position: relative; + z-index: 2; + text-align: center; + width: 100%; + padding-top: 0; + padding-bottom: 0; + border-style: solid; + border-width: 1px; + overflow: hidden; + font-size: 0.875rem; + height: 2.3125rem; + line-height: 2.3125rem; } + +/* Adjust padding, alignment and radius if pre/post element is a button */ +.postfix.button { + padding-left: 0; + padding-right: 0; + padding-top: 0; + padding-bottom: 0; + text-align: center; + line-height: 2.125rem; + border: none; } + +.prefix.button { + padding-left: 0; + padding-right: 0; + padding-top: 0; + padding-bottom: 0; + text-align: center; + line-height: 2.125rem; + border: none; } + +.prefix.button.radius { + border-radius: 0; + -webkit-border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } + +.postfix.button.radius { + border-radius: 0; + -webkit-border-bottom-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } + +.prefix.button.round { + border-radius: 0; + -webkit-border-bottom-left-radius: 1000px; + -webkit-border-top-left-radius: 1000px; + border-bottom-left-radius: 1000px; + border-top-left-radius: 1000px; } + +.postfix.button.round { + border-radius: 0; + -webkit-border-bottom-right-radius: 1000px; + -webkit-border-top-right-radius: 1000px; + border-bottom-right-radius: 1000px; + border-top-right-radius: 1000px; } + +/* Separate prefix and postfix styles when on span or label so buttons keep their own */ +span.prefix, label.prefix { + background: #f2f2f2; + border-right: none; + color: #333333; + border-color: #cccccc; } + +span.postfix, label.postfix { + background: #f2f2f2; + border-left: none; + color: #333333; + border-color: #cccccc; } + +/* We use this to get basic styling on all basic form elements */ +input[type="text"], +input[type="password"], +input[type="date"], +input[type="datetime"], +input[type="datetime-local"], +input[type="month"], +input[type="week"], +input[type="email"], +input[type="number"], +input[type="search"], +input[type="tel"], +input[type="time"], +input[type="url"], +input[type="color"], +textarea { + -webkit-appearance: none; + -webkit-border-radius: 0px; + background-color: white; + font-family: inherit; + border: 1px solid #cccccc; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + color: rgba(0, 0, 0, 0.75); + display: block; + font-size: 0.875rem; + margin: 0 0 1rem 0; + padding: 0.5rem; + height: 2.3125rem; + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + transition: box-shadow 0.45s, border-color 0.45s ease-in-out; } + input[type="text"]:focus, + input[type="password"]:focus, + input[type="date"]:focus, + input[type="datetime"]:focus, + input[type="datetime-local"]:focus, + input[type="month"]:focus, + input[type="week"]:focus, + input[type="email"]:focus, + input[type="number"]:focus, + input[type="search"]:focus, + input[type="tel"]:focus, + input[type="time"]:focus, + input[type="url"]:focus, + input[type="color"]:focus, + textarea:focus { + box-shadow: 0 0 5px #999999; + border-color: #999999; } + input[type="text"]:focus, + input[type="password"]:focus, + input[type="date"]:focus, + input[type="datetime"]:focus, + input[type="datetime-local"]:focus, + input[type="month"]:focus, + input[type="week"]:focus, + input[type="email"]:focus, + input[type="number"]:focus, + input[type="search"]:focus, + input[type="tel"]:focus, + input[type="time"]:focus, + input[type="url"]:focus, + input[type="color"]:focus, + textarea:focus { + background: #fafafa; + border-color: #999999; + outline: none; } + input[type="text"]:disabled, + input[type="password"]:disabled, + input[type="date"]:disabled, + input[type="datetime"]:disabled, + input[type="datetime-local"]:disabled, + input[type="month"]:disabled, + input[type="week"]:disabled, + input[type="email"]:disabled, + input[type="number"]:disabled, + input[type="search"]:disabled, + input[type="tel"]:disabled, + input[type="time"]:disabled, + input[type="url"]:disabled, + input[type="color"]:disabled, + textarea:disabled { + background-color: #dddddd; + cursor: default; } + input[type="text"][disabled], input[type="text"][readonly], fieldset[disabled] input[type="text"], + input[type="password"][disabled], + input[type="password"][readonly], fieldset[disabled] + input[type="password"], + input[type="date"][disabled], + input[type="date"][readonly], fieldset[disabled] + input[type="date"], + input[type="datetime"][disabled], + input[type="datetime"][readonly], fieldset[disabled] + input[type="datetime"], + input[type="datetime-local"][disabled], + input[type="datetime-local"][readonly], fieldset[disabled] + input[type="datetime-local"], + input[type="month"][disabled], + input[type="month"][readonly], fieldset[disabled] + input[type="month"], + input[type="week"][disabled], + input[type="week"][readonly], fieldset[disabled] + input[type="week"], + input[type="email"][disabled], + input[type="email"][readonly], fieldset[disabled] + input[type="email"], + input[type="number"][disabled], + input[type="number"][readonly], fieldset[disabled] + input[type="number"], + input[type="search"][disabled], + input[type="search"][readonly], fieldset[disabled] + input[type="search"], + input[type="tel"][disabled], + input[type="tel"][readonly], fieldset[disabled] + input[type="tel"], + input[type="time"][disabled], + input[type="time"][readonly], fieldset[disabled] + input[type="time"], + input[type="url"][disabled], + input[type="url"][readonly], fieldset[disabled] + input[type="url"], + input[type="color"][disabled], + input[type="color"][readonly], fieldset[disabled] + input[type="color"], + textarea[disabled], + textarea[readonly], fieldset[disabled] + textarea { + background-color: #dddddd; + cursor: default; } + input[type="text"].radius, + input[type="password"].radius, + input[type="date"].radius, + input[type="datetime"].radius, + input[type="datetime-local"].radius, + input[type="month"].radius, + input[type="week"].radius, + input[type="email"].radius, + input[type="number"].radius, + input[type="search"].radius, + input[type="tel"].radius, + input[type="time"].radius, + input[type="url"].radius, + input[type="color"].radius, + textarea.radius { + border-radius: 3px; } + +form .row .prefix-radius.row.collapse input, +form .row .prefix-radius.row.collapse textarea, +form .row .prefix-radius.row.collapse select { + border-radius: 0; + -webkit-border-bottom-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } +form .row .prefix-radius.row.collapse .prefix { + border-radius: 0; + -webkit-border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } +form .row .postfix-radius.row.collapse input, +form .row .postfix-radius.row.collapse textarea, +form .row .postfix-radius.row.collapse select { + border-radius: 0; + -webkit-border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } +form .row .postfix-radius.row.collapse .postfix { + border-radius: 0; + -webkit-border-bottom-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } +form .row .prefix-round.row.collapse input, +form .row .prefix-round.row.collapse textarea, +form .row .prefix-round.row.collapse select { + border-radius: 0; + -webkit-border-bottom-right-radius: 1000px; + -webkit-border-top-right-radius: 1000px; + border-bottom-right-radius: 1000px; + border-top-right-radius: 1000px; } +form .row .prefix-round.row.collapse .prefix { + border-radius: 0; + -webkit-border-bottom-left-radius: 1000px; + -webkit-border-top-left-radius: 1000px; + border-bottom-left-radius: 1000px; + border-top-left-radius: 1000px; } +form .row .postfix-round.row.collapse input, +form .row .postfix-round.row.collapse textarea, +form .row .postfix-round.row.collapse select { + border-radius: 0; + -webkit-border-bottom-left-radius: 1000px; + -webkit-border-top-left-radius: 1000px; + border-bottom-left-radius: 1000px; + border-top-left-radius: 1000px; } +form .row .postfix-round.row.collapse .postfix { + border-radius: 0; + -webkit-border-bottom-right-radius: 1000px; + -webkit-border-top-right-radius: 1000px; + border-bottom-right-radius: 1000px; + border-top-right-radius: 1000px; } + +input[type="submit"] { + -webkit-appearance: none; + -webkit-border-radius: 0px; } + +/* Respect enforced amount of rows for textarea */ +textarea[rows] { + height: auto; } + +/* Add height value for select elements to match text input height */ +select { + -webkit-appearance: none !important; + -webkit-border-radius: 0px; + background-color: #fafafa; + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+); + background-position: 100% center; + background-repeat: no-repeat; + border: 1px solid #cccccc; + padding: 0.5rem; + font-size: 0.875rem; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + color: rgba(0, 0, 0, 0.75); + line-height: normal; + border-radius: 0; + height: 2.3125rem; } + select.radius { + border-radius: 3px; } + select:hover { + background-color: #f3f3f3; + border-color: #999999; } + select:disabled { + background-color: #dddddd; + cursor: default; } + +/* Adjust margin for form elements below */ +input[type="file"], +input[type="checkbox"], +input[type="radio"], +select { + margin: 0 0 1rem 0; } + +input[type="checkbox"] + label, +input[type="radio"] + label { + display: inline-block; + margin-left: 0.5rem; + margin-right: 1rem; + margin-bottom: 0; + vertical-align: baseline; } + +/* Normalize file input width */ +input[type="file"] { + width: 100%; } + +/* HTML5 Number spinners settings */ +/* We add basic fieldset styling */ +fieldset { + border: 1px solid #dddddd; + padding: 1.25rem; + margin: 1.125rem 0; } + fieldset legend { + font-weight: bold; + background: white; + padding: 0 0.1875rem; + margin: 0; + margin-left: -0.1875rem; } + +/* Error Handling */ +[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error { + display: block; + padding: 0.375rem 0.5625rem 0.5625rem; + margin-top: -1px; + margin-bottom: 1rem; + font-size: 0.75rem; + font-weight: normal; + font-style: italic; + background: #f04124; + color: white; } +[data-abide] span.error, [data-abide] small.error { + display: none; } + +span.error, small.error { + display: block; + padding: 0.375rem 0.5625rem 0.5625rem; + margin-top: -1px; + margin-bottom: 1rem; + font-size: 0.75rem; + font-weight: normal; + font-style: italic; + background: #f04124; + color: white; } + +.error input, +.error textarea, +.error select { + margin-bottom: 0; } +.error input[type="checkbox"], +.error input[type="radio"] { + margin-bottom: 1rem; } +.error label, +.error label.error { + color: #f04124; } +.error small.error { + display: block; + padding: 0.375rem 0.5625rem 0.5625rem; + margin-top: -1px; + margin-bottom: 1rem; + font-size: 0.75rem; + font-weight: normal; + font-style: italic; + background: #f04124; + color: white; } +.error > label > small { + color: #676767; + background: transparent; + padding: 0; + text-transform: capitalize; + font-style: normal; + font-size: 60%; + margin: 0; + display: inline; } +.error span.error-message { + display: block; } + +input.error, +textarea.error, +select.error { + margin-bottom: 0; } + +label.error { + color: #f04124; } + +meta.foundation-mq-topbar { + font-family: "/only screen and (min-width:40.063em)/"; + width: 40.063em; } + +/* Wrapped around .top-bar to contain to grid width */ +.contain-to-grid { + width: 100%; + background: #333333; } + .contain-to-grid .top-bar { + margin-bottom: 0; } + +.fixed { + width: 100%; + left: 0; + position: fixed; + top: 0; + z-index: 99; } + .fixed.expanded:not(.top-bar) { + overflow-y: auto; + height: auto; + width: 100%; + max-height: 100%; } + .fixed.expanded:not(.top-bar) .title-area { + position: fixed; + width: 100%; + z-index: 99; } + .fixed.expanded:not(.top-bar) .top-bar-section { + z-index: 98; + margin-top: 45px; } + +.top-bar { + overflow: hidden; + height: 45px; + line-height: 45px; + position: relative; + background: #333333; + margin-bottom: 0; } + .top-bar ul { + margin-bottom: 0; + list-style: none; } + .top-bar .row { + max-width: none; } + .top-bar form, + .top-bar input { + margin-bottom: 0; } + .top-bar input { + height: 1.8rem; + padding-top: .35rem; + padding-bottom: .35rem; + font-size: 0.75rem; } + .top-bar .button, .top-bar button { + padding-top: 0.4125rem; + padding-bottom: 0.4125rem; + margin-bottom: 0; + font-size: 0.75rem; } + @media only screen and (max-width: 40em) { + .top-bar .button, .top-bar button { + position: relative; + top: -1px; } } + .top-bar .title-area { + position: relative; + margin: 0; } + .top-bar .name { + height: 45px; + margin: 0; + font-size: 16px; } + .top-bar .name h1 { + line-height: 45px; + font-size: 1.0625rem; + margin: 0; } + .top-bar .name h1 a { + font-weight: normal; + color: white; + width: 75%; + display: block; + padding: 0 15px; } + .top-bar .toggle-topbar { + position: absolute; + right: 0; + top: 0; } + .top-bar .toggle-topbar a { + color: white; + text-transform: uppercase; + font-size: 0.8125rem; + font-weight: bold; + position: relative; + display: block; + padding: 0 15px; + height: 45px; + line-height: 45px; } + .top-bar .toggle-topbar.menu-icon { + top: 50%; + margin-top: -16px; } + .top-bar .toggle-topbar.menu-icon a { + height: 34px; + line-height: 33px; + padding: 0 40px 0 15px; + color: white; + position: relative; } + .top-bar .toggle-topbar.menu-icon a span::after { + content: ""; + position: absolute; + display: block; + height: 0; + top: 50%; + margin-top: -8px; + right: 15px; + box-shadow: 0 0px 0 1px white, 0 7px 0 1px white, 0 14px 0 1px white; + width: 16px; } + .top-bar .toggle-topbar.menu-icon a span:hover:after { + box-shadow: 0 0px 0 1px white, 0 7px 0 1px white, 0 14px 0 1px white; } + .top-bar.expanded { + height: auto; + background: transparent; } + .top-bar.expanded .title-area { + background: #333333; } + .top-bar.expanded .toggle-topbar a { + color: #888888; } + .top-bar.expanded .toggle-topbar a::after { + box-shadow: 0 10px 0 1px #888888, 0 16px 0 1px #888888, 0 22px 0 1px #888888; } + +.top-bar-section { + left: 0; + position: relative; + width: auto; + transition: left 300ms ease-out; } + .top-bar-section ul { + padding: 0; + width: 100%; + height: auto; + display: block; + font-size: 16px; + margin: 0; } + .top-bar-section .divider, + .top-bar-section [role="separator"] { + border-top: solid 1px #1a1a1a; + clear: both; + height: 1px; + width: 100%; } + .top-bar-section ul li { + background: #333333; } + .top-bar-section ul li > a { + display: block; + width: 100%; + color: white; + padding: 12px 0 12px 0; + padding-left: 15px; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-size: 0.8125rem; + font-weight: normal; + text-transform: none; } + .top-bar-section ul li > a.button { + font-size: 0.8125rem; + padding-right: 15px; + padding-left: 15px; + background-color: #008cba; + border-color: #007095; + color: white; } + .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus { + background-color: #007095; } + .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus { + color: white; } + .top-bar-section ul li > a.button.secondary { + background-color: #e7e7e7; + border-color: #b9b9b9; + color: #333333; } + .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus { + background-color: #b9b9b9; } + .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus { + color: #333333; } + .top-bar-section ul li > a.button.success { + background-color: #43ac6a; + border-color: #368a55; + color: white; } + .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus { + background-color: #368a55; } + .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus { + color: white; } + .top-bar-section ul li > a.button.alert { + background-color: #f04124; + border-color: #cf2a0e; + color: white; } + .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus { + background-color: #cf2a0e; } + .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus { + color: white; } + .top-bar-section ul li > button { + font-size: 0.8125rem; + padding-right: 15px; + padding-left: 15px; + background-color: #008cba; + border-color: #007095; + color: white; } + .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus { + background-color: #007095; } + .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus { + color: white; } + .top-bar-section ul li > button.secondary { + background-color: #e7e7e7; + border-color: #b9b9b9; + color: #333333; } + .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus { + background-color: #b9b9b9; } + .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus { + color: #333333; } + .top-bar-section ul li > button.success { + background-color: #43ac6a; + border-color: #368a55; + color: white; } + .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus { + background-color: #368a55; } + .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus { + color: white; } + .top-bar-section ul li > button.alert { + background-color: #f04124; + border-color: #cf2a0e; + color: white; } + .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus { + background-color: #cf2a0e; } + .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus { + color: white; } + .top-bar-section ul li:hover:not(.has-form) > a { + background-color: #555555; + background: #272727; + color: white; } + .top-bar-section ul li.active > a { + background: #008cba; + color: white; } + .top-bar-section ul li.active > a:hover { + background: #0078a0; + color: white; } + .top-bar-section .has-form { + padding: 15px; } + .top-bar-section .has-dropdown { + position: relative; } + .top-bar-section .has-dropdown > a:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 5px; + border-color: transparent transparent transparent rgba(255, 255, 255, 0.4); + border-left-style: solid; + margin-right: 15px; + margin-top: -4.5px; + position: absolute; + top: 50%; + right: 0; } + .top-bar-section .has-dropdown.moved { + position: static; } + .top-bar-section .has-dropdown.moved > .dropdown { + display: block; + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; + position: absolute !important; + width: 100%; } + .top-bar-section .has-dropdown.moved > a:after { + display: none; } + .top-bar-section .dropdown { + padding: 0; + position: absolute; + left: 100%; + top: 0; + z-index: 99; + display: block; + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } + .top-bar-section .dropdown li { + width: 100%; + height: auto; } + .top-bar-section .dropdown li a { + font-weight: normal; + padding: 8px 15px; } + .top-bar-section .dropdown li a.parent-link { + font-weight: normal; } + .top-bar-section .dropdown li.title h5, .top-bar-section .dropdown li.parent-link { + margin-bottom: 0; + margin-top: 0; + font-size: 1.125rem; } + .top-bar-section .dropdown li.title h5 a, .top-bar-section .dropdown li.parent-link a { + color: white; + display: block; } + .top-bar-section .dropdown li.title h5 a:hover, .top-bar-section .dropdown li.parent-link a:hover { + background: none; } + .top-bar-section .dropdown li.has-form { + padding: 8px 15px; } + .top-bar-section .dropdown li .button, .top-bar-section .dropdown li button { + top: auto; } + .top-bar-section .dropdown label { + padding: 8px 15px 2px; + margin-bottom: 0; + text-transform: uppercase; + color: #777777; + font-weight: bold; + font-size: 0.625rem; } + +.js-generated { + display: block; } + +@media only screen and (min-width: 40.063em) { + .top-bar { + background: #333333; + overflow: visible; } + .top-bar:before, .top-bar:after { + content: " "; + display: table; } + .top-bar:after { + clear: both; } + .top-bar .toggle-topbar { + display: none; } + .top-bar .title-area { + float: left; } + .top-bar .name h1 a { + width: auto; } + .top-bar input, + .top-bar .button, + .top-bar button { + font-size: 0.875rem; + position: relative; + top: 7px; } + .top-bar.expanded { + background: #333333; } + + .contain-to-grid .top-bar { + max-width: 62.5rem; + margin: 0 auto; + margin-bottom: 0; } + + .top-bar-section { + transition: none 0 0; + left: 0 !important; } + .top-bar-section ul { + width: auto; + height: auto !important; + display: inline; } + .top-bar-section ul li { + float: left; } + .top-bar-section ul li .js-generated { + display: none; } + .top-bar-section li.hover > a:not(.button) { + background-color: #555555; + background: #272727; + color: white; } + .top-bar-section li:not(.has-form) a:not(.button) { + padding: 0 15px; + line-height: 45px; + background: #333333; } + .top-bar-section li:not(.has-form) a:not(.button):hover { + background-color: #555555; + background: #272727; } + .top-bar-section li.active:not(.has-form) a:not(.button) { + padding: 0 15px; + line-height: 45px; + color: white; + background: #008cba; } + .top-bar-section li.active:not(.has-form) a:not(.button):hover { + background: #0078a0; + color: white; } + .top-bar-section .has-dropdown > a { + padding-right: 35px !important; } + .top-bar-section .has-dropdown > a:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 5px; + border-color: rgba(255, 255, 255, 0.4) transparent transparent transparent; + border-top-style: solid; + margin-top: -2.5px; + top: 22.5px; } + .top-bar-section .has-dropdown.moved { + position: relative; } + .top-bar-section .has-dropdown.moved > .dropdown { + display: block; + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } + .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown { + display: block; + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; + position: absolute !important; } + .top-bar-section .has-dropdown > a:focus + .dropdown { + display: block; + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; + position: absolute !important; } + .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after { + border: none; + content: "\00bb"; + top: 1rem; + margin-top: -1px; + right: 5px; + line-height: 1.2; } + .top-bar-section .dropdown { + left: 0; + top: auto; + background: transparent; + min-width: 100%; } + .top-bar-section .dropdown li a { + color: white; + line-height: 45px; + white-space: nowrap; + padding: 12px 15px; + background: #333333; } + .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) { + color: white; + background: #333333; } + .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) { + color: white; + background-color: #555555; + background: #272727; } + .top-bar-section .dropdown li label { + white-space: nowrap; + background: #333333; } + .top-bar-section .dropdown li .dropdown { + left: 100%; + top: 0; } + .top-bar-section > ul > .divider, .top-bar-section > ul > [role="separator"] { + border-bottom: none; + border-top: none; + border-right: solid 1px #4e4e4e; + clear: none; + height: 45px; + width: 0; } + .top-bar-section .has-form { + background: #333333; + padding: 0 15px; + height: 45px; } + .top-bar-section .right li .dropdown { + left: auto; + right: 0; } + .top-bar-section .right li .dropdown li .dropdown { + right: 100%; } + .top-bar-section .left li .dropdown { + right: auto; + left: 0; } + .top-bar-section .left li .dropdown li .dropdown { + left: 100%; } + + .no-js .top-bar-section ul li:hover > a { + background-color: #555555; + background: #272727; + color: white; } + .no-js .top-bar-section ul li:active > a { + background: #008cba; + color: white; } + .no-js .top-bar-section .has-dropdown:hover > .dropdown { + display: block; + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; + position: absolute !important; } + .no-js .top-bar-section .has-dropdown > a:focus + .dropdown { + display: block; + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; + position: absolute !important; } } +.breadcrumbs { + display: block; + padding: 0.5625rem 0.875rem 0.5625rem; + overflow: hidden; + margin-left: 0; + list-style: none; + border-style: solid; + border-width: 1px; + background-color: #f4f4f4; + border-color: gainsboro; + border-radius: 3px; } + .breadcrumbs > * { + margin: 0; + float: left; + font-size: 0.6875rem; + line-height: 0.6875rem; + text-transform: uppercase; + color: #008cba; } + .breadcrumbs > *:hover a, .breadcrumbs > *:focus a { + text-decoration: underline; } + .breadcrumbs > * a { + color: #008cba; } + .breadcrumbs > *.current { + cursor: default; + color: #333333; } + .breadcrumbs > *.current a { + cursor: default; + color: #333333; } + .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a { + text-decoration: none; } + .breadcrumbs > *.unavailable { + color: #999999; } + .breadcrumbs > *.unavailable a { + color: #999999; } + .breadcrumbs > *.unavailable:hover, .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus, + .breadcrumbs > *.unavailable a:focus { + text-decoration: none; + color: #999999; + cursor: default; } + .breadcrumbs > *:before { + content: "/"; + color: #aaaaaa; + margin: 0 0.75rem; + position: relative; + top: 1px; } + .breadcrumbs > *:first-child:before { + content: " "; + margin: 0; } + +/* Accessibility - hides the forward slash */ +[aria-label="breadcrumbs"] [aria-hidden="true"]:after { + content: "/"; } + +.alert-box { + border-style: solid; + border-width: 1px; + display: block; + font-weight: normal; + margin-bottom: 1.25rem; + position: relative; + padding: 0.875rem 1.5rem 0.875rem 0.875rem; + font-size: 0.8125rem; + transition: opacity 300ms ease-out; + background-color: #008cba; + border-color: #0078a0; + color: white; } + .alert-box .close { + font-size: 1.375rem; + padding: 9px 6px 4px; + line-height: 0; + position: absolute; + top: 50%; + margin-top: -0.6875rem; + right: 0.25rem; + color: #333333; + opacity: 0.3; } + .alert-box .close:hover, .alert-box .close:focus { + opacity: 0.5; } + .alert-box.radius { + border-radius: 3px; } + .alert-box.round { + border-radius: 1000px; } + .alert-box.success { + background-color: #43ac6a; + border-color: #3a945b; + color: white; } + .alert-box.alert { + background-color: #f04124; + border-color: #de2d0f; + color: white; } + .alert-box.secondary { + background-color: #e7e7e7; + border-color: #c7c7c7; + color: #4f4f4f; } + .alert-box.warning { + background-color: #f08a24; + border-color: #de770f; + color: white; } + .alert-box.info { + background-color: #a0d3e8; + border-color: #74bfdd; + color: #4f4f4f; } + .alert-box.alert-close { + opacity: 0; } + +.inline-list { + margin: 0 auto 1.0625rem auto; + margin-left: -1.375rem; + margin-right: 0; + padding: 0; + list-style: none; + overflow: hidden; } + .inline-list > li { + list-style: none; + float: left; + margin-left: 1.375rem; + display: block; } + .inline-list > li > * { + display: block; } + +.button-group { + list-style: none; + margin: 0; + left: 0; } + .button-group:before, .button-group:after { + content: " "; + display: table; } + .button-group:after { + clear: both; } + .button-group > li { + margin: 0 -2px; + float: left; + display: inline-block; } + .button-group > li > button, .button-group > li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group > li:first-child button, .button-group > li:first-child .button { + border-left: 0; } + .button-group.stack > li { + margin: 0 -2px; + float: left; + display: inline-block; + display: block; + margin: 0; + float: none; } + .button-group.stack > li > button, .button-group.stack > li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button { + border-left: 0; } + .button-group.stack > li > button, .button-group.stack > li .button { + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.5); + border-left-width: 0px; + margin: 0; + display: block; } + .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button { + border-top: 0; } + .button-group.stack-for-small > li { + margin: 0 -2px; + float: left; + display: inline-block; } + .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button { + border-left: 0; } + @media only screen and (max-width: 40em) { + .button-group.stack-for-small > li { + margin: 0 -2px; + float: left; + display: inline-block; + display: block; + margin: 0; } + .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button { + border-left: 0; } + .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button { + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.5); + border-left-width: 0px; + margin: 0; + display: block; } + .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button { + border-top: 0; } } + .button-group.radius > * { + margin: 0 -2px; + float: left; + display: inline-block; } + .button-group.radius > * > button, .button-group.radius > * .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.radius > *:first-child button, .button-group.radius > *:first-child .button { + border-left: 0; } + .button-group.radius > *, .button-group.radius > * > a, .button-group.radius > * > button, .button-group.radius > * > .button { + border-radius: 0; } + .button-group.radius > *:first-child, .button-group.radius > *:first-child > a, .button-group.radius > *:first-child > button, .button-group.radius > *:first-child > .button { + -webkit-border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } + .button-group.radius > *:last-child, .button-group.radius > *:last-child > a, .button-group.radius > *:last-child > button, .button-group.radius > *:last-child > .button { + -webkit-border-bottom-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } + .button-group.radius.stack > * { + margin: 0 -2px; + float: left; + display: inline-block; + display: block; + margin: 0; } + .button-group.radius.stack > * > button, .button-group.radius.stack > * .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button { + border-left: 0; } + .button-group.radius.stack > * > button, .button-group.radius.stack > * .button { + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.5); + border-left-width: 0px; + margin: 0; + display: block; } + .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button { + border-top: 0; } + .button-group.radius.stack > *, .button-group.radius.stack > * > a, .button-group.radius.stack > * > button, .button-group.radius.stack > * > .button { + border-radius: 0; } + .button-group.radius.stack > *:first-child, .button-group.radius.stack > *:first-child > a, .button-group.radius.stack > *:first-child > button, .button-group.radius.stack > *:first-child > .button { + -webkit-top-left-radius: 3px; + -webkit-top-right-radius: 3px; + border-top-left-radius: 3px; + border-top-right-radius: 3px; } + .button-group.radius.stack > *:last-child, .button-group.radius.stack > *:last-child > a, .button-group.radius.stack > *:last-child > button, .button-group.radius.stack > *:last-child > .button { + -webkit-bottom-left-radius: 3px; + -webkit-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; } + @media only screen and (min-width: 40.063em) { + .button-group.radius.stack-for-small > * { + margin: 0 -2px; + float: left; + display: inline-block; } + .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button { + border-left: 0; } + .button-group.radius.stack-for-small > *, .button-group.radius.stack-for-small > * > a, .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * > .button { + border-radius: 0; } + .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button { + -webkit-border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } + .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button { + -webkit-border-bottom-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } } + @media only screen and (max-width: 40em) { + .button-group.radius.stack-for-small > * { + margin: 0 -2px; + float: left; + display: inline-block; + display: block; + margin: 0; } + .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button { + border-left: 0; } + .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button { + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.5); + border-left-width: 0px; + margin: 0; + display: block; } + .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button { + border-top: 0; } + .button-group.radius.stack-for-small > *, .button-group.radius.stack-for-small > * > a, .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * > .button { + border-radius: 0; } + .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button { + -webkit-top-left-radius: 3px; + -webkit-top-right-radius: 3px; + border-top-left-radius: 3px; + border-top-right-radius: 3px; } + .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button { + -webkit-bottom-left-radius: 3px; + -webkit-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; } } + .button-group.round > * { + margin: 0 -2px; + float: left; + display: inline-block; } + .button-group.round > * > button, .button-group.round > * .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.round > *:first-child button, .button-group.round > *:first-child .button { + border-left: 0; } + .button-group.round > *, .button-group.round > * > a, .button-group.round > * > button, .button-group.round > * > .button { + border-radius: 0; } + .button-group.round > *:first-child, .button-group.round > *:first-child > a, .button-group.round > *:first-child > button, .button-group.round > *:first-child > .button { + -webkit-border-bottom-left-radius: 1000px; + -webkit-border-top-left-radius: 1000px; + border-bottom-left-radius: 1000px; + border-top-left-radius: 1000px; } + .button-group.round > *:last-child, .button-group.round > *:last-child > a, .button-group.round > *:last-child > button, .button-group.round > *:last-child > .button { + -webkit-border-bottom-right-radius: 1000px; + -webkit-border-top-right-radius: 1000px; + border-bottom-right-radius: 1000px; + border-top-right-radius: 1000px; } + .button-group.round.stack > * { + margin: 0 -2px; + float: left; + display: inline-block; + display: block; + margin: 0; } + .button-group.round.stack > * > button, .button-group.round.stack > * .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button { + border-left: 0; } + .button-group.round.stack > * > button, .button-group.round.stack > * .button { + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.5); + border-left-width: 0px; + margin: 0; + display: block; } + .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button { + border-top: 0; } + .button-group.round.stack > *, .button-group.round.stack > * > a, .button-group.round.stack > * > button, .button-group.round.stack > * > .button { + border-radius: 0; } + .button-group.round.stack > *:first-child, .button-group.round.stack > *:first-child > a, .button-group.round.stack > *:first-child > button, .button-group.round.stack > *:first-child > .button { + -webkit-top-left-radius: 1rem; + -webkit-top-right-radius: 1rem; + border-top-left-radius: 1rem; + border-top-right-radius: 1rem; } + .button-group.round.stack > *:last-child, .button-group.round.stack > *:last-child > a, .button-group.round.stack > *:last-child > button, .button-group.round.stack > *:last-child > .button { + -webkit-bottom-left-radius: 1rem; + -webkit-bottom-right-radius: 1rem; + border-bottom-left-radius: 1rem; + border-bottom-right-radius: 1rem; } + @media only screen and (min-width: 40.063em) { + .button-group.round.stack-for-small > * { + margin: 0 -2px; + float: left; + display: inline-block; } + .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button { + border-left: 0; } + .button-group.round.stack-for-small > *, .button-group.round.stack-for-small > * > a, .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * > .button { + border-radius: 0; } + .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button { + -webkit-border-bottom-left-radius: 1000px; + -webkit-border-top-left-radius: 1000px; + border-bottom-left-radius: 1000px; + border-top-left-radius: 1000px; } + .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button { + -webkit-border-bottom-right-radius: 1000px; + -webkit-border-top-right-radius: 1000px; + border-bottom-right-radius: 1000px; + border-top-right-radius: 1000px; } } + @media only screen and (max-width: 40em) { + .button-group.round.stack-for-small > * { + margin: 0 -2px; + float: left; + display: inline-block; + display: block; + margin: 0; } + .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button { + border-left: 0; } + .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button { + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.5); + border-left-width: 0px; + margin: 0; + display: block; } + .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button { + border-top: 0; } + .button-group.round.stack-for-small > *, .button-group.round.stack-for-small > * > a, .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * > .button { + border-radius: 0; } + .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button { + -webkit-top-left-radius: 1rem; + -webkit-top-right-radius: 1rem; + border-top-left-radius: 1rem; + border-top-right-radius: 1rem; } + .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button { + -webkit-bottom-left-radius: 1rem; + -webkit-bottom-right-radius: 1rem; + border-bottom-left-radius: 1rem; + border-bottom-right-radius: 1rem; } } + .button-group.even-2 li { + margin: 0 -2px; + float: left; + display: inline-block; + width: 50%; } + .button-group.even-2 li > button, .button-group.even-2 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button { + border-left: 0; } + .button-group.even-2 li button, .button-group.even-2 li .button { + width: 100%; } + .button-group.even-3 li { + margin: 0 -2px; + float: left; + display: inline-block; + width: 33.33333%; } + .button-group.even-3 li > button, .button-group.even-3 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button { + border-left: 0; } + .button-group.even-3 li button, .button-group.even-3 li .button { + width: 100%; } + .button-group.even-4 li { + margin: 0 -2px; + float: left; + display: inline-block; + width: 25%; } + .button-group.even-4 li > button, .button-group.even-4 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button { + border-left: 0; } + .button-group.even-4 li button, .button-group.even-4 li .button { + width: 100%; } + .button-group.even-5 li { + margin: 0 -2px; + float: left; + display: inline-block; + width: 20%; } + .button-group.even-5 li > button, .button-group.even-5 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button { + border-left: 0; } + .button-group.even-5 li button, .button-group.even-5 li .button { + width: 100%; } + .button-group.even-6 li { + margin: 0 -2px; + float: left; + display: inline-block; + width: 16.66667%; } + .button-group.even-6 li > button, .button-group.even-6 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button { + border-left: 0; } + .button-group.even-6 li button, .button-group.even-6 li .button { + width: 100%; } + .button-group.even-7 li { + margin: 0 -2px; + float: left; + display: inline-block; + width: 14.28571%; } + .button-group.even-7 li > button, .button-group.even-7 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button { + border-left: 0; } + .button-group.even-7 li button, .button-group.even-7 li .button { + width: 100%; } + .button-group.even-8 li { + margin: 0 -2px; + float: left; + display: inline-block; + width: 12.5%; } + .button-group.even-8 li > button, .button-group.even-8 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button { + border-left: 0; } + .button-group.even-8 li button, .button-group.even-8 li .button { + width: 100%; } + +.button-bar:before, .button-bar:after { + content: " "; + display: table; } +.button-bar:after { + clear: both; } +.button-bar .button-group { + float: left; + margin-right: 0.625rem; } + .button-bar .button-group div { + overflow: hidden; } + +/* Panels */ +.panel { + border-style: solid; + border-width: 1px; + border-color: #d8d8d8; + margin-bottom: 1.25rem; + padding: 1.25rem; + background: #f2f2f2; + color: #333333; } + .panel > :first-child { + margin-top: 0; } + .panel > :last-child { + margin-bottom: 0; } + .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6, .panel p, .panel li, .panel dl { + color: #333333; } + .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 { + line-height: 1; + margin-bottom: 0.625rem; } + .panel h1.subheader, .panel h2.subheader, .panel h3.subheader, .panel h4.subheader, .panel h5.subheader, .panel h6.subheader { + line-height: 1.4; } + .panel.callout { + border-style: solid; + border-width: 1px; + border-color: #b6edff; + margin-bottom: 1.25rem; + padding: 1.25rem; + background: #ecfaff; + color: #333333; } + .panel.callout > :first-child { + margin-top: 0; } + .panel.callout > :last-child { + margin-bottom: 0; } + .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6, .panel.callout p, .panel.callout li, .panel.callout dl { + color: #333333; } + .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6 { + line-height: 1; + margin-bottom: 0.625rem; } + .panel.callout h1.subheader, .panel.callout h2.subheader, .panel.callout h3.subheader, .panel.callout h4.subheader, .panel.callout h5.subheader, .panel.callout h6.subheader { + line-height: 1.4; } + .panel.callout a:not(.button) { + color: #008cba; } + .panel.radius { + border-radius: 3px; } + +.dropdown.button, button.dropdown { + position: relative; + padding-right: 3.5625rem; } + .dropdown.button:after, button.dropdown:after { + position: absolute; + content: ""; + width: 0; + height: 0; + display: block; + border-style: solid; + border-color: white transparent transparent transparent; + top: 50%; } + .dropdown.button:after, button.dropdown:after { + border-width: 0.375rem; + right: 1.40625rem; + margin-top: -0.15625rem; } + .dropdown.button:after, button.dropdown:after { + border-color: white transparent transparent transparent; } + .dropdown.button.tiny, button.dropdown.tiny { + padding-right: 2.625rem; } + .dropdown.button.tiny:before, button.dropdown.tiny:before { + border-width: 0.375rem; + right: 1.125rem; + margin-top: -0.125rem; } + .dropdown.button.tiny:after, button.dropdown.tiny:after { + border-color: white transparent transparent transparent; } + .dropdown.button.small, button.dropdown.small { + padding-right: 3.0625rem; } + .dropdown.button.small:after, button.dropdown.small:after { + border-width: 0.4375rem; + right: 1.3125rem; + margin-top: -0.15625rem; } + .dropdown.button.small:after, button.dropdown.small:after { + border-color: white transparent transparent transparent; } + .dropdown.button.large, button.dropdown.large { + padding-right: 3.625rem; } + .dropdown.button.large:after, button.dropdown.large:after { + border-width: 0.3125rem; + right: 1.71875rem; + margin-top: -0.15625rem; } + .dropdown.button.large:after, button.dropdown.large:after { + border-color: white transparent transparent transparent; } + .dropdown.button.secondary:after, button.dropdown.secondary:after { + border-color: #333333 transparent transparent transparent; } + +/* Image Thumbnails */ +.th { + line-height: 0; + display: inline-block; + border: solid 4px white; + max-width: 100%; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2); + transition: all 200ms ease-out; } + .th:hover, .th:focus { + box-shadow: 0 0 6px 1px rgba(0, 140, 186, 0.5); } + .th.radius { + border-radius: 3px; } + +.toolbar { + background: #333333; + width: 100%; + font-size: 0; + display: inline-block; } + .toolbar.label-bottom .tab .tab-content i, .toolbar.label-bottom .tab .tab-content img { + margin-bottom: 10px; } + .toolbar.label-right .tab .tab-content i, .toolbar.label-right .tab .tab-content img { + margin-right: 10px; + display: inline-block; } + .toolbar.label-right .tab .tab-content label { + display: inline-block; } + .toolbar.vertical.label-right .tab .tab-content { + text-align: left; } + .toolbar.vertical { + height: 100%; + width: auto; } + .toolbar.vertical .tab { + width: auto; + margin: auto; + float: none; } + .toolbar .tab { + text-align: center; + width: 25%; + margin: 0 auto; + display: block; + padding: 20px; + float: left; } + .toolbar .tab:hover { + background: rgba(255, 255, 255, 0.1); } + +.toolbar .tab-content { + font-size: 16px; + text-align: center; } + .toolbar .tab-content label { + color: #cccccc; } + .toolbar .tab-content i { + font-size: 30px; + display: block; + margin: 0 auto; + color: #cccccc; + vertical-align: middle; } + .toolbar .tab-content img { + width: 30px; + height: 30px; + display: block; + margin: 0 auto; } + +/* Pricing Tables */ +.pricing-table { + border: solid 1px #dddddd; + margin-left: 0; + margin-bottom: 1.25rem; } + .pricing-table * { + list-style: none; + line-height: 1; } + .pricing-table .title { + background-color: #333333; + padding: 0.9375rem 1.25rem; + text-align: center; + color: #eeeeee; + font-weight: normal; + font-size: 1rem; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; } + .pricing-table .price { + background-color: #f6f6f6; + padding: 0.9375rem 1.25rem; + text-align: center; + color: #333333; + font-weight: normal; + font-size: 2rem; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; } + .pricing-table .description { + background-color: white; + padding: 0.9375rem; + text-align: center; + color: #777777; + font-size: 0.75rem; + font-weight: normal; + line-height: 1.4; + border-bottom: dotted 1px #dddddd; } + .pricing-table .bullet-item { + background-color: white; + padding: 0.9375rem; + text-align: center; + color: #333333; + font-size: 0.875rem; + font-weight: normal; + border-bottom: dotted 1px #dddddd; } + .pricing-table .cta-button { + background-color: white; + text-align: center; + padding: 1.25rem 1.25rem 0; } + +@-webkit-keyframes rotate { + from { + -webkit-transform: rotate(0deg); } + + to { + -webkit-transform: rotate(360deg); } } + +@-moz-keyframes rotate { + from { + -moz-transform: rotate(0deg); } + + to { + -moz-transform: rotate(360deg); } } + +@-o-keyframes rotate { + from { + -o-transform: rotate(0deg); } + + to { + -o-transform: rotate(360deg); } } + +@keyframes rotate { + from { + transform: rotate(0deg); } + + to { + transform: rotate(360deg); } } + +/* Orbit Graceful Loading */ +.slideshow-wrapper { + position: relative; } + .slideshow-wrapper ul { + list-style-type: none; + margin: 0; } + .slideshow-wrapper ul li, + .slideshow-wrapper ul li .orbit-caption { + display: none; } + .slideshow-wrapper ul li:first-child { + display: block; } + .slideshow-wrapper .orbit-container { + background-color: transparent; } + .slideshow-wrapper .orbit-container li { + display: block; } + .slideshow-wrapper .orbit-container li .orbit-caption { + display: block; } + .slideshow-wrapper .orbit-container .orbit-bullets li { + display: inline-block; } + .slideshow-wrapper .preloader { + display: block; + width: 40px; + height: 40px; + position: absolute; + top: 50%; + left: 50%; + margin-top: -20px; + margin-left: -20px; + border: solid 3px; + border-color: #555555 white; + border-radius: 1000px; + animation-name: rotate; + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-timing-function: linear; } + +.orbit-container { + overflow: hidden; + width: 100%; + position: relative; + background: none; } + .orbit-container .orbit-slides-container { + list-style: none; + margin: 0; + padding: 0; + position: relative; + -webkit-transform: translateZ(0); } + .orbit-container .orbit-slides-container img { + display: block; + max-width: 100%; } + .orbit-container .orbit-slides-container > * { + position: absolute; + top: 0; + width: 100%; + margin-left: 100%; } + .orbit-container .orbit-slides-container > *:first-child { + margin-left: 0%; } + .orbit-container .orbit-slides-container > * .orbit-caption { + position: absolute; + bottom: 0; + background-color: rgba(51, 51, 51, 0.8); + color: white; + width: 100%; + padding: 0.625rem 0.875rem; + font-size: 0.875rem; } + .orbit-container .orbit-slide-number { + position: absolute; + top: 10px; + left: 10px; + font-size: 12px; + color: white; + background: rgba(0, 0, 0, 0); + z-index: 10; } + .orbit-container .orbit-slide-number span { + font-weight: 700; + padding: 0.3125rem; } + .orbit-container .orbit-timer { + position: absolute; + top: 12px; + right: 10px; + height: 6px; + width: 100px; + z-index: 10; } + .orbit-container .orbit-timer .orbit-progress { + height: 3px; + background-color: rgba(255, 255, 255, 0.3); + display: block; + width: 0%; + position: relative; + right: 20px; + top: 5px; } + .orbit-container .orbit-timer > span { + display: none; + position: absolute; + top: 0px; + right: 0; + width: 11px; + height: 14px; + border: solid 4px white; + border-top: none; + border-bottom: none; } + .orbit-container .orbit-timer.paused > span { + right: -4px; + top: 0px; + width: 11px; + height: 14px; + border: inset 8px; + border-left-style: solid; + border-color: transparent; + border-left-color: white; } + .orbit-container .orbit-timer.paused > span.dark { + border-left-color: #333333; } + .orbit-container:hover .orbit-timer > span { + display: block; } + .orbit-container .orbit-prev, + .orbit-container .orbit-next { + position: absolute; + top: 45%; + margin-top: -25px; + width: 36px; + height: 60px; + line-height: 50px; + color: white; + background-color: transparent; + text-indent: -9999px !important; + z-index: 10; } + .orbit-container .orbit-prev:hover, + .orbit-container .orbit-next:hover { + background-color: rgba(0, 0, 0, 0.3); } + .orbit-container .orbit-prev > span, + .orbit-container .orbit-next > span { + position: absolute; + top: 50%; + margin-top: -10px; + display: block; + width: 0; + height: 0; + border: inset 10px; } + .orbit-container .orbit-prev { + left: 0; } + .orbit-container .orbit-prev > span { + border-right-style: solid; + border-color: transparent; + border-right-color: white; } + .orbit-container .orbit-prev:hover > span { + border-right-color: white; } + .orbit-container .orbit-next { + right: 0; } + .orbit-container .orbit-next > span { + border-color: transparent; + border-left-style: solid; + border-left-color: white; + left: 50%; + margin-left: -4px; } + .orbit-container .orbit-next:hover > span { + border-left-color: white; } + +.orbit-bullets-container { + text-align: center; } + +.orbit-bullets { + margin: 0 auto 30px auto; + overflow: hidden; + position: relative; + top: 10px; + float: none; + text-align: center; + display: block; } + .orbit-bullets li { + cursor: pointer; + display: inline-block; + width: 0.5625rem; + height: 0.5625rem; + background: #cccccc; + float: none; + margin-right: 6px; + border-radius: 1000px; } + .orbit-bullets li.active { + background: #999999; } + .orbit-bullets li:last-child { + margin-right: 0; } + +.touch .orbit-container .orbit-prev, +.touch .orbit-container .orbit-next { + display: none; } +.touch .orbit-bullets { + display: none; } + +@media only screen and (min-width: 40.063em) { + .touch .orbit-container .orbit-prev, + .touch .orbit-container .orbit-next { + display: inherit; } + .touch .orbit-bullets { + display: block; } } +@media only screen and (max-width: 40em) { + .orbit-stack-on-small .orbit-slides-container { + height: auto !important; } + .orbit-stack-on-small .orbit-slides-container > * { + position: relative; + margin: 0% !important; + opacity: 1 !important; } + .orbit-stack-on-small .orbit-slide-number { + display: none; } + + .orbit-timer { + display: none; } + + .orbit-next, .orbit-prev { + display: none; } + + .orbit-bullets { + display: none; } } +[data-magellan-expedition], [data-magellan-expedition-clone] { + background: white; + z-index: 50; + min-width: 100%; + padding: 10px; } + [data-magellan-expedition] .sub-nav, [data-magellan-expedition-clone] .sub-nav { + margin-bottom: 0; } + [data-magellan-expedition] .sub-nav dd, [data-magellan-expedition-clone] .sub-nav dd { + margin-bottom: 0; } + [data-magellan-expedition] .sub-nav a, [data-magellan-expedition-clone] .sub-nav a { + line-height: 1.8em; } + +.icon-bar { + width: 100%; + font-size: 0; + display: inline-block; + background: #333333; } + .icon-bar > * { + text-align: center; + font-size: 1rem; + width: 25%; + margin: 0 auto; + display: block; + padding: 1.25rem; + float: left; } + .icon-bar > * i, .icon-bar > * img { + display: block; + margin: 0 auto; } + .icon-bar > * i + label, .icon-bar > * img + label { + margin-top: .0625rem; } + .icon-bar > * i { + font-size: 1.875rem; + vertical-align: middle; } + .icon-bar > * img { + width: 1.875rem; + height: 1.875rem; } + .icon-bar.label-right > * i, .icon-bar.label-right > * img { + margin: 0 .0625rem 0 0; + display: inline-block; } + .icon-bar.label-right > * i + label, .icon-bar.label-right > * img + label { + margin-top: 0; } + .icon-bar.label-right > * label { + display: inline-block; } + .icon-bar.vertical.label-right > * { + text-align: left; } + .icon-bar.vertical, .icon-bar.small-vertical { + height: 100%; + width: auto; } + .icon-bar.vertical .item, .icon-bar.small-vertical .item { + width: auto; + margin: auto; + float: none; } + @media only screen and (min-width: 40.063em) { + .icon-bar.medium-vertical { + height: 100%; + width: auto; } + .icon-bar.medium-vertical .item { + width: auto; + margin: auto; + float: none; } } + @media only screen and (min-width: 64.063em) { + .icon-bar.large-vertical { + height: 100%; + width: auto; } + .icon-bar.large-vertical .item { + width: auto; + margin: auto; + float: none; } } + .icon-bar > * { + font-size: 1rem; + padding: 1.25rem; } + .icon-bar > * i + label, .icon-bar > * img + label { + margin-top: .0625rem; } + .icon-bar > * i { + font-size: 1.875rem; } + .icon-bar > * img { + width: 1.875rem; + height: 1.875rem; } + .icon-bar > *:hover { + background: #008cba; } + .icon-bar > * label { + color: white; } + .icon-bar > * i { + color: white; } + +.icon-bar.two-up .item { + width: 50%; } +.icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item { + width: auto; } +@media only screen and (min-width: 40.063em) { + .icon-bar.two-up.medium-vertical .item { + width: auto; } } +@media only screen and (min-width: 64.063em) { + .icon-bar.two-up.large-vertical .item { + width: auto; } } +.icon-bar.three-up .item { + width: 33.3333%; } +.icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item { + width: auto; } +@media only screen and (min-width: 40.063em) { + .icon-bar.three-up.medium-vertical .item { + width: auto; } } +@media only screen and (min-width: 64.063em) { + .icon-bar.three-up.large-vertical .item { + width: auto; } } +.icon-bar.four-up .item { + width: 25%; } +.icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item { + width: auto; } +@media only screen and (min-width: 40.063em) { + .icon-bar.four-up.medium-vertical .item { + width: auto; } } +@media only screen and (min-width: 64.063em) { + .icon-bar.four-up.large-vertical .item { + width: auto; } } +.icon-bar.five-up .item { + width: 20%; } +.icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item { + width: auto; } +@media only screen and (min-width: 40.063em) { + .icon-bar.five-up.medium-vertical .item { + width: auto; } } +@media only screen and (min-width: 64.063em) { + .icon-bar.five-up.large-vertical .item { + width: auto; } } +.icon-bar.six-up .item { + width: 16.66667%; } +.icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item { + width: auto; } +@media only screen and (min-width: 40.063em) { + .icon-bar.six-up.medium-vertical .item { + width: auto; } } +@media only screen and (min-width: 64.063em) { + .icon-bar.six-up.large-vertical .item { + width: auto; } } + +.text-left { + text-align: left !important; } + +.text-right { + text-align: right !important; } + +.text-center { + text-align: center !important; } + +.text-justify { + text-align: justify !important; } + +@media only screen and (max-width: 40em) { + .small-only-text-left { + text-align: left !important; } + + .small-only-text-right { + text-align: right !important; } + + .small-only-text-center { + text-align: center !important; } + + .small-only-text-justify { + text-align: justify !important; } } +@media only screen { + .small-text-left { + text-align: left !important; } + + .small-text-right { + text-align: right !important; } + + .small-text-center { + text-align: center !important; } + + .small-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 40.063em) and (max-width: 64em) { + .medium-only-text-left { + text-align: left !important; } + + .medium-only-text-right { + text-align: right !important; } + + .medium-only-text-center { + text-align: center !important; } + + .medium-only-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 40.063em) { + .medium-text-left { + text-align: left !important; } + + .medium-text-right { + text-align: right !important; } + + .medium-text-center { + text-align: center !important; } + + .medium-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 64.063em) and (max-width: 90em) { + .large-only-text-left { + text-align: left !important; } + + .large-only-text-right { + text-align: right !important; } + + .large-only-text-center { + text-align: center !important; } + + .large-only-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 64.063em) { + .large-text-left { + text-align: left !important; } + + .large-text-right { + text-align: right !important; } + + .large-text-center { + text-align: center !important; } + + .large-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 90.063em) and (max-width: 120em) { + .xlarge-only-text-left { + text-align: left !important; } + + .xlarge-only-text-right { + text-align: right !important; } + + .xlarge-only-text-center { + text-align: center !important; } + + .xlarge-only-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 90.063em) { + .xlarge-text-left { + text-align: left !important; } + + .xlarge-text-right { + text-align: right !important; } + + .xlarge-text-center { + text-align: center !important; } + + .xlarge-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 120.063em) and (max-width: 99999999em) { + .xxlarge-only-text-left { + text-align: left !important; } + + .xxlarge-only-text-right { + text-align: right !important; } + + .xxlarge-only-text-center { + text-align: center !important; } + + .xxlarge-only-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 120.063em) { + .xxlarge-text-left { + text-align: left !important; } + + .xxlarge-text-right { + text-align: right !important; } + + .xxlarge-text-center { + text-align: center !important; } + + .xxlarge-text-justify { + text-align: justify !important; } } +/* Typography resets */ +div, +dl, +dt, +dd, +ul, +ol, +li, +h1, +h2, +h3, +h4, +h5, +h6, +pre, +form, +p, +blockquote, +th, +td { + margin: 0; + padding: 0; } + +/* Default Link Styles */ +a { + color: #008cba; + text-decoration: none; + line-height: inherit; } + a:hover, a:focus { + color: #0078a0; } + a img { + border: none; } + +/* Default paragraph styles */ +p { + font-family: inherit; + font-weight: normal; + font-size: 1rem; + line-height: 1.6; + margin-bottom: 1.25rem; + text-rendering: optimizeLegibility; } + p.lead { + font-size: 1.21875rem; + line-height: 1.6; } + p aside { + font-size: 0.875rem; + line-height: 1.35; + font-style: italic; } + +/* Default header styles */ +h1, h2, h3, h4, h5, h6 { + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-weight: normal; + font-style: normal; + color: #222222; + text-rendering: optimizeLegibility; + margin-top: 0.2rem; + margin-bottom: 0.5rem; + line-height: 1.4; } + h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { + font-size: 60%; + color: #6f6f6f; + line-height: 0; } + +h1 { + font-size: 2.125rem; } + +h2 { + font-size: 1.6875rem; } + +h3 { + font-size: 1.375rem; } + +h4 { + font-size: 1.125rem; } + +h5 { + font-size: 1.125rem; } + +h6 { + font-size: 1rem; } + +.subheader { + line-height: 1.4; + color: #6f6f6f; + font-weight: normal; + margin-top: 0.2rem; + margin-bottom: 0.5rem; } + +hr { + border: solid #dddddd; + border-width: 1px 0 0; + clear: both; + margin: 1.25rem 0 1.1875rem; + height: 0; } + +/* Helpful Typography Defaults */ +em, +i { + font-style: italic; + line-height: inherit; } + +strong, +b { + font-weight: bold; + line-height: inherit; } + +small { + font-size: 60%; + line-height: inherit; } + +code { + font-family: Consolas, "Liberation Mono", Courier, monospace; + font-weight: normal; + color: #333333; + background-color: #f8f8f8; + border-width: 1px; + border-style: solid; + border-color: #dfdfdf; + padding: 0.125rem 0.3125rem 0.0625rem; } + +/* Lists */ +ul, +ol, +dl { + font-size: 1rem; + line-height: 1.6; + margin-bottom: 1.25rem; + list-style-position: outside; + font-family: inherit; } + +ul { + margin-left: 1.1rem; } + ul.no-bullet { + margin-left: 0; } + ul.no-bullet li ul, + ul.no-bullet li ol { + margin-left: 1.25rem; + margin-bottom: 0; + list-style: none; } + +/* Unordered Lists */ +ul li ul, +ul li ol { + margin-left: 1.25rem; + margin-bottom: 0; } +ul.square li ul, ul.circle li ul, ul.disc li ul { + list-style: inherit; } +ul.square { + list-style-type: square; + margin-left: 1.1rem; } +ul.circle { + list-style-type: circle; + margin-left: 1.1rem; } +ul.disc { + list-style-type: disc; + margin-left: 1.1rem; } +ul.no-bullet { + list-style: none; } + +/* Ordered Lists */ +ol { + margin-left: 1.4rem; } + ol li ul, + ol li ol { + margin-left: 1.25rem; + margin-bottom: 0; } + +/* Definition Lists */ +dl dt { + margin-bottom: 0.3rem; + font-weight: bold; } +dl dd { + margin-bottom: 0.75rem; } + +/* Abbreviations */ +abbr, +acronym { + text-transform: uppercase; + font-size: 90%; + color: #222222; + cursor: help; } + +abbr { + text-transform: none; } + abbr[title] { + border-bottom: 1px dotted #dddddd; } + +/* Blockquotes */ +blockquote { + margin: 0 0 1.25rem; + padding: 0.5625rem 1.25rem 0 1.1875rem; + border-left: 1px solid #dddddd; } + blockquote cite { + display: block; + font-size: 0.8125rem; + color: #555555; } + blockquote cite:before { + content: "\2014 \0020"; } + blockquote cite a, + blockquote cite a:visited { + color: #555555; } + +blockquote, +blockquote p { + line-height: 1.6; + color: #6f6f6f; } + +/* Microformats */ +.vcard { + display: inline-block; + margin: 0 0 1.25rem 0; + border: 1px solid #dddddd; + padding: 0.625rem 0.75rem; } + .vcard li { + margin: 0; + display: block; } + .vcard .fn { + font-weight: bold; + font-size: 0.9375rem; } + +.vevent .summary { + font-weight: bold; } +.vevent abbr { + cursor: default; + text-decoration: none; + font-weight: bold; + border: none; + padding: 0 0.0625rem; } + +@media only screen and (min-width: 40.063em) { + h1, h2, h3, h4, h5, h6 { + line-height: 1.4; } + + h1 { + font-size: 2.75rem; } + + h2 { + font-size: 2.3125rem; } + + h3 { + font-size: 1.6875rem; } + + h4 { + font-size: 1.4375rem; } + + h5 { + font-size: 1.125rem; } + + h6 { + font-size: 1rem; } } +/* + * Print styles. + * + * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ + * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com) +*/ +.print-only { + display: none !important; } + +@media print { + * { + background: transparent !important; + color: black !important; + /* Black prints faster: h5bp.com/s */ + box-shadow: none !important; + text-shadow: none !important; } + + a, + a:visited { + text-decoration: underline; } + + a[href]:after { + content: " (" attr(href) ")"; } + + abbr[title]:after { + content: " (" attr(title) ")"; } + + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; } + + pre, + blockquote { + border: 1px solid #999999; + page-break-inside: avoid; } + + thead { + display: table-header-group; + /* h5bp.com/t */ } + + tr, + img { + page-break-inside: avoid; } + + img { + max-width: 100% !important; } + + @page { + margin: 0.5cm; } + + p, + h2, + h3 { + orphans: 3; + widows: 3; } + + h2, + h3 { + page-break-after: avoid; } + + .hide-on-print { + display: none !important; } + + .print-only { + display: block !important; } + + .hide-for-print { + display: none !important; } + + .show-for-print { + display: inherit !important; } } +.tabs { + margin-bottom: 0 !important; + margin-left: 0; } + .tabs:before, .tabs:after { + content: " "; + display: table; } + .tabs:after { + clear: both; } + .tabs dd, .tabs .tab-title { + position: relative; + margin-bottom: 0 !important; + list-style: none; + float: left; } + .tabs dd > a, .tabs .tab-title > a { + display: block; + background-color: #efefef; + color: #222222; + padding: 1rem 2rem; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-size: 1rem; } + .tabs dd > a:hover, .tabs .tab-title > a:hover { + background-color: #e1e1e1; } + .tabs dd.active a, .tabs .tab-title.active a { + background-color: white; + color: #222222; } + .tabs.radius dd:first-child a, .tabs.radius .tab:first-child a { + -webkit-border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } + .tabs.radius dd:last-child a, .tabs.radius .tab:last-child a { + -webkit-border-bottom-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } + .tabs.vertical dd, .tabs.vertical .tab-title { + position: inherit; + float: none; + display: block; + top: auto; } + +.tabs-content { + margin-bottom: 1.5rem; + width: 100%; } + .tabs-content:before, .tabs-content:after { + content: " "; + display: table; } + .tabs-content:after { + clear: both; } + .tabs-content > .content { + display: none; + float: left; + padding: 0.9375rem 0; + width: 100%; } + .tabs-content > .content.active { + display: block; + float: none; } + .tabs-content > .content.contained { + padding: 0.9375rem; } + .tabs-content.vertical { + display: block; } + .tabs-content.vertical > .content { + padding: 0 0.9375rem; } + +@media only screen and (min-width: 40.063em) { + .tabs.vertical { + width: 20%; + max-width: 20%; + float: left; + margin: 0 0 1.25rem; } + + .tabs-content.vertical { + width: 80%; + max-width: 80%; + float: left; + margin-left: -1px; + padding-left: 1rem; } } +.no-js .tabs-content > .content { + display: block; + float: none; } + +ul.pagination { + display: block; + min-height: 1.5rem; + margin-left: -0.3125rem; } + ul.pagination li { + height: 1.5rem; + color: #222222; + font-size: 0.875rem; + margin-left: 0.3125rem; } + ul.pagination li a, ul.pagination li button { + display: block; + padding: 0.0625rem 0.625rem 0.0625rem; + color: #999999; + background: none; + border-radius: 3px; + font-weight: normal; + font-size: 1em; + line-height: inherit; + transition: background-color 300ms ease-out; } + ul.pagination li:hover a, + ul.pagination li a:focus, ul.pagination li:hover button, + ul.pagination li button:focus { + background: #e6e6e6; } + ul.pagination li.unavailable a, ul.pagination li.unavailable button { + cursor: default; + color: #999999; } + ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus, ul.pagination li.unavailable:hover button, ul.pagination li.unavailable button:focus { + background: transparent; } + ul.pagination li.current a, ul.pagination li.current button { + background: #008cba; + color: white; + font-weight: bold; + cursor: default; } + ul.pagination li.current a:hover, ul.pagination li.current a:focus, ul.pagination li.current button:hover, ul.pagination li.current button:focus { + background: #008cba; } + ul.pagination li { + float: left; + display: block; } + +/* Pagination centred wrapper */ +.pagination-centered { + text-align: center; } + .pagination-centered ul.pagination li { + float: none; + display: inline-block; } + +.side-nav { + display: block; + margin: 0; + padding: 0.875rem 0; + list-style-type: none; + list-style-position: outside; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; } + .side-nav li { + margin: 0 0 0.4375rem 0; + font-size: 0.875rem; + font-weight: normal; } + .side-nav li a:not(.button) { + display: block; + color: #008cba; + margin: 0; + padding: 0.4375rem 0.875rem; } + .side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus { + background: rgba(0, 0, 0, 0.025); + color: #1cc7ff; } + .side-nav li.active > a:first-child:not(.button) { + color: #1cc7ff; + font-weight: normal; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; } + .side-nav li.divider { + border-top: 1px solid; + height: 0; + padding: 0; + list-style: none; + border-top-color: white; } + .side-nav li.heading { + color: #008cba; + font-size: 0.875rem; + font-weight: bold; + text-transform: uppercase; } + +.accordion { + margin-bottom: 0; } + .accordion:before, .accordion:after { + content: " "; + display: table; } + .accordion:after { + clear: both; } + .accordion .accordion-navigation, .accordion dd { + display: block; + margin-bottom: 0 !important; } + .accordion .accordion-navigation.active > a, .accordion dd.active > a { + background: #e8e8e8; } + .accordion .accordion-navigation > a, .accordion dd > a { + background: #efefef; + color: #222222; + padding: 1rem; + display: block; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-size: 1rem; } + .accordion .accordion-navigation > a:hover, .accordion dd > a:hover { + background: #e3e3e3; } + .accordion .accordion-navigation > .content, .accordion dd > .content { + display: none; + padding: 0.9375rem; } + .accordion .accordion-navigation > .content.active, .accordion dd > .content.active { + display: block; + background: white; } + +.split.button { + position: relative; + padding-right: 5.0625rem; } + .split.button span { + display: block; + height: 100%; + position: absolute; + right: 0; + top: 0; + border-left: solid 1px; } + .split.button span:after { + position: absolute; + content: ""; + width: 0; + height: 0; + display: block; + border-style: inset; + top: 50%; + left: 50%; } + .split.button span:active { + background-color: rgba(0, 0, 0, 0.1); } + .split.button span { + border-left-color: rgba(255, 255, 255, 0.5); } + .split.button span { + width: 3.09375rem; } + .split.button span:after { + border-top-style: solid; + border-width: 0.375rem; + top: 48%; + margin-left: -0.375rem; } + .split.button span:after { + border-color: white transparent transparent transparent; } + .split.button.secondary span { + border-left-color: rgba(255, 255, 255, 0.5); } + .split.button.secondary span:after { + border-color: white transparent transparent transparent; } + .split.button.alert span { + border-left-color: rgba(255, 255, 255, 0.5); } + .split.button.success span { + border-left-color: rgba(255, 255, 255, 0.5); } + .split.button.tiny { + padding-right: 3.75rem; } + .split.button.tiny span { + width: 2.25rem; } + .split.button.tiny span:after { + border-top-style: solid; + border-width: 0.375rem; + top: 48%; + margin-left: -0.375rem; } + .split.button.small { + padding-right: 4.375rem; } + .split.button.small span { + width: 2.625rem; } + .split.button.small span:after { + border-top-style: solid; + border-width: 0.4375rem; + top: 48%; + margin-left: -0.375rem; } + .split.button.large { + padding-right: 5.5rem; } + .split.button.large span { + width: 3.4375rem; } + .split.button.large span:after { + border-top-style: solid; + border-width: 0.3125rem; + top: 48%; + margin-left: -0.375rem; } + .split.button.expand { + padding-left: 2rem; } + .split.button.secondary span:after { + border-color: #333333 transparent transparent transparent; } + .split.button.radius span { + -webkit-border-bottom-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } + .split.button.round span { + -webkit-border-bottom-right-radius: 1000px; + -webkit-border-top-right-radius: 1000px; + border-bottom-right-radius: 1000px; + border-top-right-radius: 1000px; } + +.reveal-modal-bg { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: black; + background: rgba(0, 0, 0, 0.45); + z-index: 1004; + display: none; + left: 0; } + +.reveal-modal, dialog { + visibility: hidden; + display: none; + position: absolute; + z-index: 1005; + width: 100vw; + top: 0; + border-radius: 3px; + left: 0; + background-color: white; + padding: 1.25rem; + border: solid 1px #666666; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); + padding: 1.875rem; } + @media only screen and (max-width: 40em) { + .reveal-modal, dialog { + min-height: 100vh; } } + .reveal-modal .column, dialog .column, .reveal-modal .columns, dialog .columns { + min-width: 0; } + .reveal-modal > :first-child, dialog > :first-child { + margin-top: 0; } + .reveal-modal > :last-child, dialog > :last-child { + margin-bottom: 0; } + @media only screen and (min-width: 40.063em) { + .reveal-modal, dialog { + width: 80%; + max-width: 62.5rem; + left: 0; + right: 0; + margin: 0 auto; } } + @media only screen and (min-width: 40.063em) { + .reveal-modal, dialog { + top: 6.25rem; } } + .reveal-modal.radius, dialog.radius { + border-radius: 3px; } + .reveal-modal.round, dialog.round { + border-radius: 1000px; } + .reveal-modal.collapse, dialog.collapse { + padding: 0; } + @media only screen and (min-width: 40.063em) { + .reveal-modal.tiny, dialog.tiny { + width: 30%; + max-width: 62.5rem; + left: 0; + right: 0; + margin: 0 auto; } } + @media only screen and (min-width: 40.063em) { + .reveal-modal.small, dialog.small { + width: 40%; + max-width: 62.5rem; + left: 0; + right: 0; + margin: 0 auto; } } + @media only screen and (min-width: 40.063em) { + .reveal-modal.medium, dialog.medium { + width: 60%; + max-width: 62.5rem; + left: 0; + right: 0; + margin: 0 auto; } } + @media only screen and (min-width: 40.063em) { + .reveal-modal.large, dialog.large { + width: 70%; + max-width: 62.5rem; + left: 0; + right: 0; + margin: 0 auto; } } + @media only screen and (min-width: 40.063em) { + .reveal-modal.xlarge, dialog.xlarge { + width: 95%; + max-width: 62.5rem; + left: 0; + right: 0; + margin: 0 auto; } } + .reveal-modal.full, dialog.full { + top: 0; + left: 0; + height: 100%; + height: 100vh; + min-height: 100vh; + margin-left: 0 !important; } + @media only screen and (min-width: 40.063em) { + .reveal-modal.full, dialog.full { + width: 100vw; + max-width: 62.5rem; + left: 0; + right: 0; + margin: 0 auto; } } + .reveal-modal .close-reveal-modal, dialog .close-reveal-modal { + font-size: 2.5rem; + line-height: 1; + position: absolute; + top: 0.5rem; + right: 0.6875rem; + color: #aaaaaa; + font-weight: bold; + cursor: pointer; } + +dialog { + display: none; } + dialog::backdrop, dialog + .backdrop { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: black; + background: rgba(0, 0, 0, 0.45); + z-index: auto; + display: none; + left: 0; } + dialog[open] { + display: block; } + +@media print { + dialog, .reveal-modal, dialog { + display: none; + background: white !important; } } +/* Tooltips */ +.has-tip { + border-bottom: dotted 1px #cccccc; + cursor: help; + font-weight: bold; + color: #333333; } + .has-tip:hover, .has-tip:focus { + border-bottom: dotted 1px #003f54; + color: #008cba; } + .has-tip.tip-left, .has-tip.tip-right { + float: none !important; } + +.tooltip { + display: none; + position: absolute; + z-index: 1006; + font-weight: normal; + font-size: 0.875rem; + line-height: 1.3; + padding: 0.75rem; + max-width: 300px; + left: 50%; + width: 100%; + color: white; + background: #333333; } + .tooltip > .nub { + display: block; + left: 5px; + position: absolute; + width: 0; + height: 0; + border: solid 5px; + border-color: transparent transparent #333333 transparent; + top: -10px; + pointer-events: none; } + .tooltip > .nub.rtl { + left: auto; + right: 5px; } + .tooltip.radius { + border-radius: 3px; } + .tooltip.round { + border-radius: 1000px; } + .tooltip.round > .nub { + left: 2rem; } + .tooltip.opened { + color: #008cba !important; + border-bottom: dotted 1px #003f54 !important; } + +.tap-to-close { + display: block; + font-size: 0.625rem; + color: #777777; + font-weight: normal; } + +@media only screen and (min-width: 40.063em) { + .tooltip > .nub { + border-color: transparent transparent #333333 transparent; + top: -10px; } + .tooltip.tip-top > .nub { + border-color: #333333 transparent transparent transparent; + top: auto; + bottom: -10px; } + .tooltip.tip-left, .tooltip.tip-right { + float: none !important; } + .tooltip.tip-left > .nub { + border-color: transparent transparent transparent #333333; + right: -10px; + left: auto; + top: 50%; + margin-top: -5px; } + .tooltip.tip-right > .nub { + border-color: transparent #333333 transparent transparent; + right: auto; + left: -10px; + top: 50%; + margin-top: -5px; } } +/* Clearing Styles */ +.clearing-thumbs, [data-clearing] { + margin-bottom: 0; + margin-left: 0; + list-style: none; } + .clearing-thumbs:before, .clearing-thumbs:after, [data-clearing]:before, [data-clearing]:after { + content: " "; + display: table; } + .clearing-thumbs:after, [data-clearing]:after { + clear: both; } + .clearing-thumbs li, [data-clearing] li { + float: left; + margin-right: 10px; } + .clearing-thumbs[class*="block-grid-"] li, [data-clearing][class*="block-grid-"] li { + margin-right: 0; } + +.clearing-blackout { + background: #333333; + position: fixed; + width: 100%; + height: 100%; + top: 0; + left: 0; + z-index: 998; } + .clearing-blackout .clearing-close { + display: block; } + +.clearing-container { + position: relative; + z-index: 998; + height: 100%; + overflow: hidden; + margin: 0; } + +.clearing-touch-label { + position: absolute; + top: 50%; + left: 50%; + color: #aaaaaa; + font-size: 0.6em; } + +.visible-img { + height: 95%; + position: relative; } + .visible-img img { + position: absolute; + left: 50%; + top: 50%; + margin-left: -50%; + max-height: 100%; + max-width: 100%; } + +.clearing-caption { + color: #cccccc; + font-size: 0.875em; + line-height: 1.3; + margin-bottom: 0; + text-align: center; + bottom: 0; + background: #333333; + width: 100%; + padding: 10px 30px 20px; + position: absolute; + left: 0; } + +.clearing-close { + z-index: 999; + padding-left: 20px; + padding-top: 10px; + font-size: 30px; + line-height: 1; + color: #cccccc; + display: none; } + .clearing-close:hover, .clearing-close:focus { + color: #cccccc; } + +.clearing-assembled .clearing-container { + height: 100%; } + .clearing-assembled .clearing-container .carousel > ul { + display: none; } + +.clearing-feature li { + display: none; } + .clearing-feature li.clearing-featured-img { + display: block; } + +@media only screen and (min-width: 40.063em) { + .clearing-main-prev, + .clearing-main-next { + position: absolute; + height: 100%; + width: 40px; + top: 0; } + .clearing-main-prev > span, + .clearing-main-next > span { + position: absolute; + top: 50%; + display: block; + width: 0; + height: 0; + border: solid 12px; } + .clearing-main-prev > span:hover, + .clearing-main-next > span:hover { + opacity: 0.8; } + + .clearing-main-prev { + left: 0; } + .clearing-main-prev > span { + left: 5px; + border-color: transparent; + border-right-color: #cccccc; } + + .clearing-main-next { + right: 0; } + .clearing-main-next > span { + border-color: transparent; + border-left-color: #cccccc; } + + .clearing-main-prev.disabled, + .clearing-main-next.disabled { + opacity: 0.3; } + + .clearing-assembled .clearing-container .carousel { + background: rgba(51, 51, 51, 0.8); + height: 120px; + margin-top: 10px; + text-align: center; } + .clearing-assembled .clearing-container .carousel > ul { + display: inline-block; + z-index: 999; + height: 100%; + position: relative; + float: none; } + .clearing-assembled .clearing-container .carousel > ul li { + display: block; + width: 120px; + min-height: inherit; + float: left; + overflow: hidden; + margin-right: 0; + padding: 0; + position: relative; + cursor: pointer; + opacity: 0.4; + clear: none; } + .clearing-assembled .clearing-container .carousel > ul li.fix-height img { + height: 100%; + max-width: none; } + .clearing-assembled .clearing-container .carousel > ul li a.th { + border: none; + box-shadow: none; + display: block; } + .clearing-assembled .clearing-container .carousel > ul li img { + cursor: pointer !important; + width: 100% !important; } + .clearing-assembled .clearing-container .carousel > ul li.visible { + opacity: 1; } + .clearing-assembled .clearing-container .carousel > ul li:hover { + opacity: 0.8; } + .clearing-assembled .clearing-container .visible-img { + background: #333333; + overflow: hidden; + height: 85%; } + + .clearing-close { + position: absolute; + top: 10px; + right: 20px; + padding-left: 0; + padding-top: 0; } } +/* Progress Bar */ +.progress { + background-color: #f6f6f6; + height: 1.5625rem; + border: 1px solid white; + padding: 0.125rem; + margin-bottom: 0.625rem; } + .progress .meter { + background: #008cba; + height: 100%; + display: block; } + .progress.secondary .meter { + background: #e7e7e7; + height: 100%; + display: block; } + .progress.success .meter { + background: #43ac6a; + height: 100%; + display: block; } + .progress.alert .meter { + background: #f04124; + height: 100%; + display: block; } + .progress.radius { + border-radius: 3px; } + .progress.radius .meter { + border-radius: 2px; } + .progress.round { + border-radius: 1000px; } + .progress.round .meter { + border-radius: 999px; } + +.sub-nav { + display: block; + width: auto; + overflow: hidden; + margin: -0.25rem 0 1.125rem; + padding-top: 0.25rem; + margin-right: 0; + margin-left: -0.75rem; } + .sub-nav dt { + text-transform: uppercase; } + .sub-nav dt, + .sub-nav dd, + .sub-nav li { + float: left; + display: inline; + margin-left: 1rem; + margin-bottom: 0.625rem; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-weight: normal; + font-size: 0.875rem; + color: #999999; } + .sub-nav dt a, + .sub-nav dd a, + .sub-nav li a { + text-decoration: none; + color: #999999; + padding: 0.1875rem 1rem; } + .sub-nav dt a:hover, + .sub-nav dd a:hover, + .sub-nav li a:hover { + color: #737373; } + .sub-nav dt.active a, + .sub-nav dd.active a, + .sub-nav li.active a { + border-radius: 3px; + font-weight: normal; + background: #008cba; + padding: 0.1875rem 1rem; + cursor: default; + color: white; } + .sub-nav dt.active a:hover, + .sub-nav dd.active a:hover, + .sub-nav li.active a:hover { + background: #0078a0; } + +/* Foundation Joyride */ +.joyride-list { + display: none; } + +/* Default styles for the container */ +.joyride-tip-guide { + display: none; + position: absolute; + background: #333333; + color: white; + z-index: 101; + top: 0; + left: 2.5%; + font-family: inherit; + font-weight: normal; + width: 95%; } + +.lt-ie9 .joyride-tip-guide { + max-width: 800px; + left: 50%; + margin-left: -400px; } + +.joyride-content-wrapper { + width: 100%; + padding: 1.125rem 1.25rem 1.5rem; } + .joyride-content-wrapper .button { + margin-bottom: 0 !important; } + .joyride-content-wrapper .joyride-prev-tip { + margin-right: 10px; } + +/* Add a little css triangle pip, older browser just miss out on the fanciness of it */ +.joyride-tip-guide .joyride-nub { + display: block; + position: absolute; + left: 22px; + width: 0; + height: 0; + border: 10px solid #333333; } + .joyride-tip-guide .joyride-nub.top { + border-top-style: solid; + border-color: #333333; + border-top-color: transparent !important; + border-left-color: transparent !important; + border-right-color: transparent !important; + top: -20px; } + .joyride-tip-guide .joyride-nub.bottom { + border-bottom-style: solid; + border-color: #333333 !important; + border-bottom-color: transparent !important; + border-left-color: transparent !important; + border-right-color: transparent !important; + bottom: -20px; } + .joyride-tip-guide .joyride-nub.right { + right: -20px; } + .joyride-tip-guide .joyride-nub.left { + left: -20px; } + +/* Typography */ +.joyride-tip-guide h1, +.joyride-tip-guide h2, +.joyride-tip-guide h3, +.joyride-tip-guide h4, +.joyride-tip-guide h5, +.joyride-tip-guide h6 { + line-height: 1.25; + margin: 0; + font-weight: bold; + color: white; } + +.joyride-tip-guide p { + margin: 0 0 1.125rem 0; + font-size: 0.875rem; + line-height: 1.3; } + +.joyride-timer-indicator-wrap { + width: 50px; + height: 3px; + border: solid 1px #555555; + position: absolute; + right: 1.0625rem; + bottom: 1rem; } + +.joyride-timer-indicator { + display: block; + width: 0; + height: inherit; + background: #666666; } + +.joyride-close-tip { + position: absolute; + right: 12px; + top: 10px; + color: #777777 !important; + text-decoration: none; + font-size: 24px; + font-weight: normal; + line-height: .5 !important; } + .joyride-close-tip:hover, .joyride-close-tip:focus { + color: #eeeeee !important; } + +.joyride-modal-bg { + position: fixed; + height: 100%; + width: 100%; + background: transparent; + background: rgba(0, 0, 0, 0.5); + z-index: 100; + display: none; + top: 0; + left: 0; + cursor: pointer; } + +.joyride-expose-wrapper { + background-color: white; + position: absolute; + border-radius: 3px; + z-index: 102; + box-shadow: 0 0 15px white; } + +.joyride-expose-cover { + background: transparent; + border-radius: 3px; + position: absolute; + z-index: 9999; + top: 0; + left: 0; } + +/* Styles for screens that are at least 768px; */ +@media only screen and (min-width: 40.063em) { + .joyride-tip-guide { + width: 300px; + left: inherit; } + .joyride-tip-guide .joyride-nub.bottom { + border-color: #333333 !important; + border-bottom-color: transparent !important; + border-left-color: transparent !important; + border-right-color: transparent !important; + bottom: -20px; } + .joyride-tip-guide .joyride-nub.right { + border-color: #333333 !important; + border-top-color: transparent !important; + border-right-color: transparent !important; + border-bottom-color: transparent !important; + top: 22px; + left: auto; + right: -20px; } + .joyride-tip-guide .joyride-nub.left { + border-color: #333333 !important; + border-top-color: transparent !important; + border-left-color: transparent !important; + border-bottom-color: transparent !important; + top: 22px; + left: -20px; + right: auto; } } +.label { + font-weight: normal; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + text-align: center; + text-decoration: none; + line-height: 1; + white-space: nowrap; + display: inline-block; + position: relative; + margin-bottom: inherit; + padding: 0.25rem 0.5rem 0.25rem; + font-size: 0.6875rem; + background-color: #008cba; + color: white; } + .label.radius { + border-radius: 3px; } + .label.round { + border-radius: 1000px; } + .label.alert { + background-color: #f04124; + color: white; } + .label.warning { + background-color: #f08a24; + color: white; } + .label.success { + background-color: #43ac6a; + color: white; } + .label.secondary { + background-color: #e7e7e7; + color: #333333; } + .label.info { + background-color: #a0d3e8; + color: #333333; } + +.off-canvas-wrap { + -webkit-backface-visibility: hidden; + position: relative; + width: 100%; + overflow: hidden; } + .off-canvas-wrap.move-right, .off-canvas-wrap.move-left { + min-height: 100%; + -webkit-overflow-scrolling: touch; } + +.inner-wrap { + -webkit-backface-visibility: hidden; + position: relative; + width: 100%; + -webkit-transition: -webkit-transform 500ms ease; + -moz-transition: -moz-transform 500ms ease; + -ms-transition: -ms-transform 500ms ease; + -o-transition: -o-transform 500ms ease; + transition: transform 500ms ease; } + .inner-wrap:before, .inner-wrap:after { + content: " "; + display: table; } + .inner-wrap:after { + clear: both; } + +.tab-bar { + -webkit-backface-visibility: hidden; + background: #333333; + color: white; + height: 2.8125rem; + line-height: 2.8125rem; + position: relative; } + .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 { + color: white; + font-weight: bold; + line-height: 2.8125rem; + margin: 0; } + .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 { + font-size: 1.125rem; } + +.left-small { + width: 2.8125rem; + height: 2.8125rem; + position: absolute; + top: 0; + border-right: solid 1px #1a1a1a; + left: 0; } + +.right-small { + width: 2.8125rem; + height: 2.8125rem; + position: absolute; + top: 0; + border-left: solid 1px #1a1a1a; + right: 0; } + +.tab-bar-section { + padding: 0 0.625rem; + position: absolute; + text-align: center; + height: 2.8125rem; + top: 0; } + @media only screen and (min-width: 40.063em) { + .tab-bar-section.left, .tab-bar-section.right { + text-align: left; } } + .tab-bar-section.left { + left: 0; + right: 2.8125rem; } + .tab-bar-section.right { + left: 2.8125rem; + right: 0; } + .tab-bar-section.middle { + left: 2.8125rem; + right: 2.8125rem; } + +.tab-bar .menu-icon { + text-indent: 2.1875rem; + width: 2.8125rem; + height: 2.8125rem; + display: block; + padding: 0; + color: white; + position: relative; + transform: translate3d(0, 0, 0); } + .tab-bar .menu-icon span::after { + content: ""; + position: absolute; + display: block; + height: 0; + top: 50%; + margin-top: -0.5rem; + left: 0.90625rem; + box-shadow: 0 0px 0 1px white, 0 7px 0 1px white, 0 14px 0 1px white; + width: 1rem; } + .tab-bar .menu-icon span:hover:after { + box-shadow: 0 0px 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3; } + +.left-off-canvas-menu { + -webkit-backface-visibility: hidden; + width: 15.625rem; + top: 0; + bottom: 0; + position: absolute; + overflow-x: hidden; + overflow-y: auto; + background: #333333; + z-index: 1001; + box-sizing: content-box; + transition: transform 500ms ease 0s; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + -ms-transform: translate(-100.5%, 0); + -webkit-transform: translate3d(-100.5%, 0, 0); + -moz-transform: translate3d(-100.5%, 0, 0); + -ms-transform: translate3d(-100.5%, 0, 0); + -o-transform: translate3d(-100.5%, 0, 0); + transform: translate3d(-100.5%, 0, 0); + left: 0; } + .left-off-canvas-menu * { + -webkit-backface-visibility: hidden; } + +.right-off-canvas-menu { + -webkit-backface-visibility: hidden; + width: 15.625rem; + top: 0; + bottom: 0; + position: absolute; + overflow-x: hidden; + overflow-y: auto; + background: #333333; + z-index: 1001; + box-sizing: content-box; + transition: transform 500ms ease 0s; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + -ms-transform: translate(100.5%, 0); + -webkit-transform: translate3d(100.5%, 0, 0); + -moz-transform: translate3d(100.5%, 0, 0); + -ms-transform: translate3d(100.5%, 0, 0); + -o-transform: translate3d(100.5%, 0, 0); + transform: translate3d(100.5%, 0, 0); + right: 0; } + .right-off-canvas-menu * { + -webkit-backface-visibility: hidden; } + +ul.off-canvas-list { + list-style-type: none; + padding: 0; + margin: 0; } + ul.off-canvas-list li label { + display: block; + padding: 0.3rem 0.9375rem; + color: #999999; + text-transform: uppercase; + font-size: 0.75rem; + font-weight: bold; + background: #444444; + border-top: 1px solid #5e5e5e; + border-bottom: none; + margin: 0; } + ul.off-canvas-list li a { + display: block; + padding: 0.66667rem; + color: rgba(255, 255, 255, 0.7); + border-bottom: 1px solid #262626; + transition: background 300ms ease; } + ul.off-canvas-list li a:hover { + background: #242424; } + +.move-right > .inner-wrap { + -ms-transform: translate(15.625rem, 0); + -webkit-transform: translate3d(15.625rem, 0, 0); + -moz-transform: translate3d(15.625rem, 0, 0); + -ms-transform: translate3d(15.625rem, 0, 0); + -o-transform: translate3d(15.625rem, 0, 0); + transform: translate3d(15.625rem, 0, 0); } +.move-right .exit-off-canvas { + -webkit-backface-visibility: hidden; + transition: background 300ms ease; + cursor: pointer; + box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); + display: block; + position: absolute; + background: rgba(255, 255, 255, 0.2); + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1002; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + @media only screen and (min-width: 40.063em) { + .move-right .exit-off-canvas:hover { + background: rgba(255, 255, 255, 0.05); } } + +.move-left > .inner-wrap { + -ms-transform: translate(-15.625rem, 0); + -webkit-transform: translate3d(-15.625rem, 0, 0); + -moz-transform: translate3d(-15.625rem, 0, 0); + -ms-transform: translate3d(-15.625rem, 0, 0); + -o-transform: translate3d(-15.625rem, 0, 0); + transform: translate3d(-15.625rem, 0, 0); } +.move-left .exit-off-canvas { + -webkit-backface-visibility: hidden; + transition: background 300ms ease; + cursor: pointer; + box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); + display: block; + position: absolute; + background: rgba(255, 255, 255, 0.2); + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1002; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + @media only screen and (min-width: 40.063em) { + .move-left .exit-off-canvas:hover { + background: rgba(255, 255, 255, 0.05); } } + +.offcanvas-overlap .left-off-canvas-menu, .offcanvas-overlap .right-off-canvas-menu { + -ms-transform: none; + -webkit-transform: none; + -moz-transform: none; + -o-transform: none; + transform: none; + z-index: 1003; } +.offcanvas-overlap .exit-off-canvas { + -webkit-backface-visibility: hidden; + transition: background 300ms ease; + cursor: pointer; + box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); + display: block; + position: absolute; + background: rgba(255, 255, 255, 0.2); + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1002; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + @media only screen and (min-width: 40.063em) { + .offcanvas-overlap .exit-off-canvas:hover { + background: rgba(255, 255, 255, 0.05); } } + +.offcanvas-overlap-left .right-off-canvas-menu { + -ms-transform: none; + -webkit-transform: none; + -moz-transform: none; + -o-transform: none; + transform: none; + z-index: 1003; } +.offcanvas-overlap-left .exit-off-canvas { + -webkit-backface-visibility: hidden; + transition: background 300ms ease; + cursor: pointer; + box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); + display: block; + position: absolute; + background: rgba(255, 255, 255, 0.2); + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1002; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + @media only screen and (min-width: 40.063em) { + .offcanvas-overlap-left .exit-off-canvas:hover { + background: rgba(255, 255, 255, 0.05); } } + +.offcanvas-overlap-right .left-off-canvas-menu { + -ms-transform: none; + -webkit-transform: none; + -moz-transform: none; + -o-transform: none; + transform: none; + z-index: 1003; } +.offcanvas-overlap-right .exit-off-canvas { + -webkit-backface-visibility: hidden; + transition: background 300ms ease; + cursor: pointer; + box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); + display: block; + position: absolute; + background: rgba(255, 255, 255, 0.2); + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1002; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + @media only screen and (min-width: 40.063em) { + .offcanvas-overlap-right .exit-off-canvas:hover { + background: rgba(255, 255, 255, 0.05); } } + +.no-csstransforms .left-off-canvas-menu { + left: -15.625rem; } +.no-csstransforms .right-off-canvas-menu { + right: -15.625rem; } +.no-csstransforms .move-left > .inner-wrap { + right: 15.625rem; } +.no-csstransforms .move-right > .inner-wrap { + left: 15.625rem; } + +.left-submenu { + -webkit-backface-visibility: hidden; + width: 15.625rem; + top: 0; + bottom: 0; + position: absolute; + margin: 0; + overflow-x: hidden; + overflow-y: auto; + background: #333333; + z-index: 1002; + box-sizing: content-box; + -webkit-overflow-scrolling: touch; + -ms-transform: translate(-100%, 0); + -webkit-transform: translate3d(-100%, 0, 0); + -moz-transform: translate3d(-100%, 0, 0); + -ms-transform: translate3d(-100%, 0, 0); + -o-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + left: 0; + -webkit-transition: -webkit-transform 500ms ease; + -moz-transition: -moz-transform 500ms ease; + -ms-transition: -ms-transform 500ms ease; + -o-transition: -o-transform 500ms ease; + transition: transform 500ms ease; } + .left-submenu * { + -webkit-backface-visibility: hidden; } + .left-submenu .back > a { + padding: 0.3rem 0.9375rem; + color: #999999; + text-transform: uppercase; + font-weight: bold; + background: #444444; + border-top: 1px solid #5e5e5e; + border-bottom: none; + margin: 0; } + .left-submenu .back > a:hover { + background: #303030; + border-top: 1px solid #5e5e5e; + border-bottom: none; } + .left-submenu .back > a:before { + content: "\AB"; + margin-right: 0.5rem; + display: inline; } + .left-submenu.move-right { + -ms-transform: translate(0%, 0); + -webkit-transform: translate3d(0%, 0, 0); + -moz-transform: translate3d(0%, 0, 0); + -ms-transform: translate3d(0%, 0, 0); + -o-transform: translate3d(0%, 0, 0); + transform: translate3d(0%, 0, 0); } + +.right-submenu { + -webkit-backface-visibility: hidden; + width: 15.625rem; + top: 0; + bottom: 0; + position: absolute; + margin: 0; + overflow-x: hidden; + overflow-y: auto; + background: #333333; + z-index: 1002; + box-sizing: content-box; + -webkit-overflow-scrolling: touch; + -ms-transform: translate(100%, 0); + -webkit-transform: translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0); + -ms-transform: translate3d(100%, 0, 0); + -o-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + right: 0; + -webkit-transition: -webkit-transform 500ms ease; + -moz-transition: -moz-transform 500ms ease; + -ms-transition: -ms-transform 500ms ease; + -o-transition: -o-transform 500ms ease; + transition: transform 500ms ease; } + .right-submenu * { + -webkit-backface-visibility: hidden; } + .right-submenu .back > a { + padding: 0.3rem 0.9375rem; + color: #999999; + text-transform: uppercase; + font-weight: bold; + background: #444444; + border-top: 1px solid #5e5e5e; + border-bottom: none; + margin: 0; } + .right-submenu .back > a:hover { + background: #303030; + border-top: 1px solid #5e5e5e; + border-bottom: none; } + .right-submenu .back > a:after { + content: "\BB"; + margin-left: 0.5rem; + display: inline; } + .right-submenu.move-left { + -ms-transform: translate(0%, 0); + -webkit-transform: translate3d(0%, 0, 0); + -moz-transform: translate3d(0%, 0, 0); + -ms-transform: translate3d(0%, 0, 0); + -o-transform: translate3d(0%, 0, 0); + transform: translate3d(0%, 0, 0); } + +.left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after { + content: "\BB"; + margin-left: 0.5rem; + display: inline; } + +.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before { + content: "\AB"; + margin-right: 0.5rem; + display: inline; } + +/* Foundation Dropdowns */ +.f-dropdown { + position: absolute; + left: -9999px; + list-style: none; + margin-left: 0; + width: 100%; + max-height: none; + height: auto; + background: white; + border: solid 1px #cccccc; + font-size: 0.875rem; + z-index: 89; + margin-top: 2px; + max-width: 200px; } + .f-dropdown > *:first-child { + margin-top: 0; } + .f-dropdown > *:last-child { + margin-bottom: 0; } + .f-dropdown:before { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 6px; + border-color: transparent transparent white transparent; + border-bottom-style: solid; + position: absolute; + top: -12px; + left: 10px; + z-index: 89; } + .f-dropdown:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 7px; + border-color: transparent transparent #cccccc transparent; + border-bottom-style: solid; + position: absolute; + top: -14px; + left: 9px; + z-index: 88; } + .f-dropdown.right:before { + left: auto; + right: 10px; } + .f-dropdown.right:after { + left: auto; + right: 9px; } + .f-dropdown.drop-right { + position: absolute; + left: -9999px; + list-style: none; + margin-left: 0; + width: 100%; + max-height: none; + height: auto; + background: white; + border: solid 1px #cccccc; + font-size: 0.875rem; + z-index: 89; + margin-top: 0; + margin-left: 2px; + max-width: 200px; } + .f-dropdown.drop-right > *:first-child { + margin-top: 0; } + .f-dropdown.drop-right > *:last-child { + margin-bottom: 0; } + .f-dropdown.drop-right:before { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 6px; + border-color: transparent white transparent transparent; + border-right-style: solid; + position: absolute; + top: 10px; + left: -12px; + z-index: 89; } + .f-dropdown.drop-right:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 7px; + border-color: transparent #cccccc transparent transparent; + border-right-style: solid; + position: absolute; + top: 9px; + left: -14px; + z-index: 88; } + .f-dropdown.drop-left { + position: absolute; + left: -9999px; + list-style: none; + margin-left: 0; + width: 100%; + max-height: none; + height: auto; + background: white; + border: solid 1px #cccccc; + font-size: 0.875rem; + z-index: 89; + margin-top: 0; + margin-left: -2px; + max-width: 200px; } + .f-dropdown.drop-left > *:first-child { + margin-top: 0; } + .f-dropdown.drop-left > *:last-child { + margin-bottom: 0; } + .f-dropdown.drop-left:before { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 6px; + border-color: transparent transparent transparent white; + border-left-style: solid; + position: absolute; + top: 10px; + right: -12px; + left: auto; + z-index: 89; } + .f-dropdown.drop-left:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 7px; + border-color: transparent transparent transparent #cccccc; + border-left-style: solid; + position: absolute; + top: 9px; + right: -14px; + left: auto; + z-index: 88; } + .f-dropdown.drop-top { + position: absolute; + left: -9999px; + list-style: none; + margin-left: 0; + width: 100%; + max-height: none; + height: auto; + background: white; + border: solid 1px #cccccc; + font-size: 0.875rem; + z-index: 89; + margin-top: -2px; + margin-left: 0; + max-width: 200px; } + .f-dropdown.drop-top > *:first-child { + margin-top: 0; } + .f-dropdown.drop-top > *:last-child { + margin-bottom: 0; } + .f-dropdown.drop-top:before { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 6px; + border-color: white transparent transparent transparent; + border-top-style: solid; + position: absolute; + top: auto; + bottom: -12px; + left: 10px; + right: auto; + z-index: 89; } + .f-dropdown.drop-top:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 7px; + border-color: #cccccc transparent transparent transparent; + border-top-style: solid; + position: absolute; + top: auto; + bottom: -14px; + left: 9px; + right: auto; + z-index: 88; } + .f-dropdown li { + font-size: 0.875rem; + cursor: pointer; + line-height: 1.125rem; + margin: 0; } + .f-dropdown li:hover, .f-dropdown li:focus { + background: #eeeeee; } + .f-dropdown li.radius { + border-radius: 3px; } + .f-dropdown li a { + display: block; + padding: 0.5rem; + color: #555555; } + .f-dropdown.content { + position: absolute; + left: -9999px; + list-style: none; + margin-left: 0; + padding: 1.25rem; + width: 100%; + height: auto; + max-height: none; + background: white; + border: solid 1px #cccccc; + font-size: 0.875rem; + z-index: 89; + max-width: 200px; } + .f-dropdown.content > *:first-child { + margin-top: 0; } + .f-dropdown.content > *:last-child { + margin-bottom: 0; } + .f-dropdown.tiny { + max-width: 200px; } + .f-dropdown.small { + max-width: 300px; } + .f-dropdown.medium { + max-width: 500px; } + .f-dropdown.large { + max-width: 800px; } + .f-dropdown.mega { + width: 100% !important; + max-width: 100% !important; } + .f-dropdown.mega.open { + left: 0 !important; } + +table { + background: white; + margin-bottom: 1.25rem; + border: solid 1px #dddddd; + table-layout: auto; } + table caption { + background: transparent; + color: #222222; + font-size: 1rem; + font-weight: bold; } + table thead { + background: whitesmoke; } + table thead tr th, + table thead tr td { + padding: 0.5rem 0.625rem 0.625rem; + font-size: 0.875rem; + font-weight: bold; + color: #222222; } + table tfoot { + background: whitesmoke; } + table tfoot tr th, + table tfoot tr td { + padding: 0.5rem 0.625rem 0.625rem; + font-size: 0.875rem; + font-weight: bold; + color: #222222; } + table tr th, + table tr td { + padding: 0.5625rem 0.625rem; + font-size: 0.875rem; + color: #222222; + text-align: left; } + table tr.even, table tr.alt, table tr:nth-of-type(even) { + background: #f9f9f9; } + table thead tr th, + table tfoot tr th, + table tfoot tr td, + table tbody tr th, + table tbody tr td, + table tr td { + display: table-cell; + line-height: 1.125rem; } + +.range-slider { + display: block; + position: relative; + width: 100%; + height: 1rem; + border: 1px solid #dddddd; + margin: 1.25rem 0; + -ms-touch-action: none; + touch-action: none; + background: #fafafa; } + .range-slider.vertical-range { + display: block; + position: relative; + width: 100%; + height: 1rem; + border: 1px solid #dddddd; + margin: 1.25rem 0; + -ms-touch-action: none; + touch-action: none; + display: inline-block; + width: 1rem; + height: 12.5rem; } + .range-slider.vertical-range .range-slider-handle { + margin-top: 0; + margin-left: -0.5rem; + position: absolute; + bottom: -10.5rem; } + .range-slider.vertical-range .range-slider-active-segment { + width: 0.875rem; + height: auto; + bottom: 0; } + .range-slider.radius { + background: #fafafa; + border-radius: 3px; } + .range-slider.radius .range-slider-handle { + background: #008cba; + border-radius: 3px; } + .range-slider.radius .range-slider-handle:hover { + background: #007ba4; } + .range-slider.round { + background: #fafafa; + border-radius: 1000px; } + .range-slider.round .range-slider-handle { + background: #008cba; + border-radius: 1000px; } + .range-slider.round .range-slider-handle:hover { + background: #007ba4; } + .range-slider.disabled, .range-slider[disabled] { + background: #fafafa; + cursor: default; + opacity: 0.7; } + .range-slider.disabled .range-slider-handle, .range-slider[disabled] .range-slider-handle { + background: #008cba; + cursor: default; + opacity: 0.7; } + .range-slider.disabled .range-slider-handle:hover, .range-slider[disabled] .range-slider-handle:hover { + background: #007ba4; } + +.range-slider-active-segment { + display: inline-block; + position: absolute; + height: 0.875rem; + background: #e5e5e5; } + +.range-slider-handle { + display: inline-block; + position: absolute; + z-index: 1; + top: -0.3125rem; + width: 2rem; + height: 1.375rem; + border: 1px solid none; + cursor: pointer; + -ms-touch-action: manipulation; + touch-action: manipulation; + background: #008cba; } + .range-slider-handle:hover { + background: #007ba4; } + +[class*="block-grid-"] { + display: block; + padding: 0; + margin: 0 -0.625rem; } + [class*="block-grid-"]:before, [class*="block-grid-"]:after { + content: " "; + display: table; } + [class*="block-grid-"]:after { + clear: both; } + [class*="block-grid-"] > li { + display: block; + height: auto; + float: left; + padding: 0 0.625rem 1.25rem; } + +@media only screen { + .small-block-grid-1 > li { + width: 100%; + list-style: none; } + .small-block-grid-1 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-1 > li:nth-of-type(1n+1) { + clear: both; } + + .small-block-grid-2 > li { + width: 50%; + list-style: none; } + .small-block-grid-2 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-2 > li:nth-of-type(2n+1) { + clear: both; } + + .small-block-grid-3 > li { + width: 33.33333%; + list-style: none; } + .small-block-grid-3 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-3 > li:nth-of-type(3n+1) { + clear: both; } + + .small-block-grid-4 > li { + width: 25%; + list-style: none; } + .small-block-grid-4 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-4 > li:nth-of-type(4n+1) { + clear: both; } + + .small-block-grid-5 > li { + width: 20%; + list-style: none; } + .small-block-grid-5 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-5 > li:nth-of-type(5n+1) { + clear: both; } + + .small-block-grid-6 > li { + width: 16.66667%; + list-style: none; } + .small-block-grid-6 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-6 > li:nth-of-type(6n+1) { + clear: both; } + + .small-block-grid-7 > li { + width: 14.28571%; + list-style: none; } + .small-block-grid-7 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-7 > li:nth-of-type(7n+1) { + clear: both; } + + .small-block-grid-8 > li { + width: 12.5%; + list-style: none; } + .small-block-grid-8 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-8 > li:nth-of-type(8n+1) { + clear: both; } + + .small-block-grid-9 > li { + width: 11.11111%; + list-style: none; } + .small-block-grid-9 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-9 > li:nth-of-type(9n+1) { + clear: both; } + + .small-block-grid-10 > li { + width: 10%; + list-style: none; } + .small-block-grid-10 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-10 > li:nth-of-type(10n+1) { + clear: both; } + + .small-block-grid-11 > li { + width: 9.09091%; + list-style: none; } + .small-block-grid-11 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-11 > li:nth-of-type(11n+1) { + clear: both; } + + .small-block-grid-12 > li { + width: 8.33333%; + list-style: none; } + .small-block-grid-12 > li:nth-of-type(1n) { + clear: none; } + .small-block-grid-12 > li:nth-of-type(12n+1) { + clear: both; } } +@media only screen and (min-width: 40.063em) { + .medium-block-grid-1 > li { + width: 100%; + list-style: none; } + .medium-block-grid-1 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-1 > li:nth-of-type(1n+1) { + clear: both; } + + .medium-block-grid-2 > li { + width: 50%; + list-style: none; } + .medium-block-grid-2 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-2 > li:nth-of-type(2n+1) { + clear: both; } + + .medium-block-grid-3 > li { + width: 33.33333%; + list-style: none; } + .medium-block-grid-3 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-3 > li:nth-of-type(3n+1) { + clear: both; } + + .medium-block-grid-4 > li { + width: 25%; + list-style: none; } + .medium-block-grid-4 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-4 > li:nth-of-type(4n+1) { + clear: both; } + + .medium-block-grid-5 > li { + width: 20%; + list-style: none; } + .medium-block-grid-5 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-5 > li:nth-of-type(5n+1) { + clear: both; } + + .medium-block-grid-6 > li { + width: 16.66667%; + list-style: none; } + .medium-block-grid-6 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-6 > li:nth-of-type(6n+1) { + clear: both; } + + .medium-block-grid-7 > li { + width: 14.28571%; + list-style: none; } + .medium-block-grid-7 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-7 > li:nth-of-type(7n+1) { + clear: both; } + + .medium-block-grid-8 > li { + width: 12.5%; + list-style: none; } + .medium-block-grid-8 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-8 > li:nth-of-type(8n+1) { + clear: both; } + + .medium-block-grid-9 > li { + width: 11.11111%; + list-style: none; } + .medium-block-grid-9 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-9 > li:nth-of-type(9n+1) { + clear: both; } + + .medium-block-grid-10 > li { + width: 10%; + list-style: none; } + .medium-block-grid-10 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-10 > li:nth-of-type(10n+1) { + clear: both; } + + .medium-block-grid-11 > li { + width: 9.09091%; + list-style: none; } + .medium-block-grid-11 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-11 > li:nth-of-type(11n+1) { + clear: both; } + + .medium-block-grid-12 > li { + width: 8.33333%; + list-style: none; } + .medium-block-grid-12 > li:nth-of-type(1n) { + clear: none; } + .medium-block-grid-12 > li:nth-of-type(12n+1) { + clear: both; } } +@media only screen and (min-width: 64.063em) { + .large-block-grid-1 > li { + width: 100%; + list-style: none; } + .large-block-grid-1 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-1 > li:nth-of-type(1n+1) { + clear: both; } + + .large-block-grid-2 > li { + width: 50%; + list-style: none; } + .large-block-grid-2 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-2 > li:nth-of-type(2n+1) { + clear: both; } + + .large-block-grid-3 > li { + width: 33.33333%; + list-style: none; } + .large-block-grid-3 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-3 > li:nth-of-type(3n+1) { + clear: both; } + + .large-block-grid-4 > li { + width: 25%; + list-style: none; } + .large-block-grid-4 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-4 > li:nth-of-type(4n+1) { + clear: both; } + + .large-block-grid-5 > li { + width: 20%; + list-style: none; } + .large-block-grid-5 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-5 > li:nth-of-type(5n+1) { + clear: both; } + + .large-block-grid-6 > li { + width: 16.66667%; + list-style: none; } + .large-block-grid-6 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-6 > li:nth-of-type(6n+1) { + clear: both; } + + .large-block-grid-7 > li { + width: 14.28571%; + list-style: none; } + .large-block-grid-7 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-7 > li:nth-of-type(7n+1) { + clear: both; } + + .large-block-grid-8 > li { + width: 12.5%; + list-style: none; } + .large-block-grid-8 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-8 > li:nth-of-type(8n+1) { + clear: both; } + + .large-block-grid-9 > li { + width: 11.11111%; + list-style: none; } + .large-block-grid-9 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-9 > li:nth-of-type(9n+1) { + clear: both; } + + .large-block-grid-10 > li { + width: 10%; + list-style: none; } + .large-block-grid-10 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-10 > li:nth-of-type(10n+1) { + clear: both; } + + .large-block-grid-11 > li { + width: 9.09091%; + list-style: none; } + .large-block-grid-11 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-11 > li:nth-of-type(11n+1) { + clear: both; } + + .large-block-grid-12 > li { + width: 8.33333%; + list-style: none; } + .large-block-grid-12 > li:nth-of-type(1n) { + clear: none; } + .large-block-grid-12 > li:nth-of-type(12n+1) { + clear: both; } } +.flex-video { + position: relative; + padding-top: 1.5625rem; + padding-bottom: 67.5%; + height: 0; + margin-bottom: 1rem; + overflow: hidden; } + .flex-video.widescreen { + padding-bottom: 56.34%; } + .flex-video.vimeo { + padding-top: 0; } + .flex-video iframe, + .flex-video object, + .flex-video embed, + .flex-video video { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +.keystroke, +kbd { + background-color: #ededed; + border-color: #dddddd; + color: #222222; + border-style: solid; + border-width: 1px; + margin: 0; + font-family: "Consolas", "Menlo", "Courier", monospace; + font-size: inherit; + padding: 0.125rem 0.25rem 0; + border-radius: 3px; } + +.switch { + padding: 0; + border: none; + position: relative; } + .switch label { + display: block; + margin-bottom: 1rem; + position: relative; + color: transparent; + background: #dddddd; + text-indent: 100%; + width: 4rem; + height: 2rem; + cursor: pointer; + transition: left 0.15s ease-out; } + .switch input { + opacity: 0; + position: absolute; + top: 9px; + left: 10px; + padding: 0; } + .switch input + label { + margin-left: 0; + margin-right: 0; } + .switch label:after { + content: ""; + display: block; + background: white; + position: absolute; + top: .25rem; + left: .25rem; + width: 1.5rem; + height: 1.5rem; + -webkit-transition: left 0.15s ease-out; + -moz-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + .switch input:checked + label { + background: #008cba; } + .switch input:checked + label:after { + left: 2.25rem; } + .switch label { + width: 4rem; + height: 2rem; } + .switch label:after { + width: 1.5rem; + height: 1.5rem; } + .switch input:checked + label:after { + left: 2.25rem; } + .switch label { + color: transparent; + background: #dddddd; } + .switch label:after { + background: white; } + .switch input:checked + label { + background: #008cba; } + .switch.large label { + width: 5rem; + height: 2.5rem; } + .switch.large label:after { + width: 2rem; + height: 2rem; } + .switch.large input:checked + label:after { + left: 2.75rem; } + .switch.small label { + width: 3.5rem; + height: 1.75rem; } + .switch.small label:after { + width: 1.25rem; + height: 1.25rem; } + .switch.small input:checked + label:after { + left: 2rem; } + .switch.tiny label { + width: 3rem; + height: 1.5rem; } + .switch.tiny label:after { + width: 1rem; + height: 1rem; } + .switch.tiny input:checked + label:after { + left: 1.75rem; } + .switch.radius label { + border-radius: 4px; } + .switch.radius label:after { + border-radius: 3px; } + .switch.round { + border-radius: 1000px; } + .switch.round label { + border-radius: 2rem; } + .switch.round label:after { + border-radius: 2rem; } + +/* small displays */ +@media only screen { + .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { + display: inherit !important; } + + .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { + display: none !important; } + + .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up { + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; } + + .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } + + table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { + display: table; } + + thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { + display: table-header-group !important; } + + tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { + display: table-row-group !important; } + + tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { + display: table-row !important; } + + th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { + display: table-cell !important; } } +/* medium displays */ +@media only screen and (min-width: 40.063em) { + .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { + display: inherit !important; } + + .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { + display: none !important; } + + .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up { + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; } + + .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } + + table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { + display: table; } + + thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { + display: table-header-group !important; } + + tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { + display: table-row-group !important; } + + tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { + display: table-row !important; } + + th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { + display: table-cell !important; } } +/* large displays */ +@media only screen and (min-width: 64.063em) { + .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { + display: inherit !important; } + + .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { + display: none !important; } + + .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up { + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; } + + .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } + + table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { + display: table; } + + thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { + display: table-header-group !important; } + + tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { + display: table-row-group !important; } + + tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { + display: table-row !important; } + + th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { + display: table-cell !important; } } +/* xlarge displays */ +@media only screen and (min-width: 90.063em) { + .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { + display: inherit !important; } + + .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { + display: none !important; } + + .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up { + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; } + + .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } + + table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { + display: table; } + + thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { + display: table-header-group !important; } + + tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { + display: table-row-group !important; } + + tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { + display: table-row !important; } + + th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { + display: table-cell !important; } } +/* xxlarge displays */ +@media only screen and (min-width: 120.063em) { + .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { + display: inherit !important; } + + .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { + display: none !important; } + + .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up { + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; } + + .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } + + table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xxlarge-only, table.show-for-xxlarge-up { + display: table; } + + thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up { + display: table-header-group !important; } + + tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up { + display: table-row-group !important; } + + tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up { + display: table-row !important; } + + th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up { + display: table-cell !important; } } +/* Orientation targeting */ +.show-for-landscape, +.hide-for-portrait { + display: inherit !important; } + +.hide-for-landscape, +.show-for-portrait { + display: none !important; } + +/* Specific visibility for tables */ +table.hide-for-landscape, table.show-for-portrait { + display: table; } + +thead.hide-for-landscape, thead.show-for-portrait { + display: table-header-group !important; } + +tbody.hide-for-landscape, tbody.show-for-portrait { + display: table-row-group !important; } + +tr.hide-for-landscape, tr.show-for-portrait { + display: table-row !important; } + +td.hide-for-landscape, td.show-for-portrait, +th.hide-for-landscape, +th.show-for-portrait { + display: table-cell !important; } + +@media only screen and (orientation: landscape) { + .show-for-landscape, + .hide-for-portrait { + display: inherit !important; } + + .hide-for-landscape, + .show-for-portrait { + display: none !important; } + + /* Specific visibility for tables */ + table.show-for-landscape, table.hide-for-portrait { + display: table; } + + thead.show-for-landscape, thead.hide-for-portrait { + display: table-header-group !important; } + + tbody.show-for-landscape, tbody.hide-for-portrait { + display: table-row-group !important; } + + tr.show-for-landscape, tr.hide-for-portrait { + display: table-row !important; } + + td.show-for-landscape, td.hide-for-portrait, + th.show-for-landscape, + th.hide-for-portrait { + display: table-cell !important; } } +@media only screen and (orientation: portrait) { + .show-for-portrait, + .hide-for-landscape { + display: inherit !important; } + + .hide-for-portrait, + .show-for-landscape { + display: none !important; } + + /* Specific visibility for tables */ + table.show-for-portrait, table.hide-for-landscape { + display: table; } + + thead.show-for-portrait, thead.hide-for-landscape { + display: table-header-group !important; } + + tbody.show-for-portrait, tbody.hide-for-landscape { + display: table-row-group !important; } + + tr.show-for-portrait, tr.hide-for-landscape { + display: table-row !important; } + + td.show-for-portrait, td.hide-for-landscape, + th.show-for-portrait, + th.hide-for-landscape { + display: table-cell !important; } } +/* Touch-enabled device targeting */ +.show-for-touch { + display: none !important; } + +.hide-for-touch { + display: inherit !important; } + +.touch .show-for-touch { + display: inherit !important; } + +.touch .hide-for-touch { + display: none !important; } + +/* Specific visibility for tables */ +table.hide-for-touch { + display: table; } + +.touch table.show-for-touch { + display: table; } + +thead.hide-for-touch { + display: table-header-group !important; } + +.touch thead.show-for-touch { + display: table-header-group !important; } + +tbody.hide-for-touch { + display: table-row-group !important; } + +.touch tbody.show-for-touch { + display: table-row-group !important; } + +tr.hide-for-touch { + display: table-row !important; } + +.touch tr.show-for-touch { + display: table-row !important; } + +td.hide-for-touch { + display: table-cell !important; } + +.touch td.show-for-touch { + display: table-cell !important; } + +th.hide-for-touch { + display: table-cell !important; } + +.touch th.show-for-touch { + display: table-cell !important; } + +/* Print visibility */ +@media print { + .show-for-print { + display: block; } + + .hide-for-print { + display: none; } + + table.show-for-print { + display: table; } + + 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 { + display: table-cell !important; } + + th.show-for-print { + display: table-cell !important; } } diff --git a/ajax/libs/foundation/5.4.5/css/foundation.min.css b/ajax/libs/foundation/5.4.5/css/foundation.min.css new file mode 100644 index 000000000..d04021a4f --- /dev/null +++ b/ajax/libs/foundation/5.4.5/css/foundation.min.css @@ -0,0 +1 @@ +meta.foundation-version{font-family:"/5.4.5/"}meta.foundation-mq-small{font-family:"/only screen/";width:0em}meta.foundation-mq-medium{font-family:"/only screen and (min-width:40.063em)/";width:40.063em}meta.foundation-mq-large{font-family:"/only screen and (min-width:64.063em)/";width:64.063em}meta.foundation-mq-xlarge{font-family:"/only screen and (min-width:90.063em)/";width:90.063em}meta.foundation-mq-xxlarge{font-family:"/only screen and (min-width:120.063em)/";width:120.063em}meta.foundation-data-attribute-namespace{font-family:false}html,body{height:100%}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{font-size:100%}body{background:#fff;color:#222;padding:0;margin:0;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;font-style:normal;line-height:1.5;position:relative;cursor:auto}a:hover{cursor:pointer}img{max-width:100%;height:auto}img{-ms-interpolation-mode:bicubic}#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object{max-width:none !important}.left{float:left !important}.right{float:right !important}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.hide{display:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle}textarea{height:auto;min-height:50px}select{width:100%}.row{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5rem}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row.collapse>.column,.row.collapse>.columns{padding-left:0;padding-right:0}.row.collapse .row{margin-left:0;margin-right:0}.row .row{width:auto;margin-left:-0.9375rem;margin-right:-0.9375rem;margin-top:0;margin-bottom:0;max-width:none}.row .row:before,.row .row:after{content:" ";display:table}.row .row:after{clear:both}.row .row.collapse{width:auto;margin:0;max-width:none}.row .row.collapse:before,.row .row.collapse:after{content:" ";display:table}.row .row.collapse:after{clear:both}.column,.columns{padding-left:0.9375rem;padding-right:0.9375rem;width:100%;float:left}[class*="column"]+[class*="column"]:last-child{float:right}[class*="column"]+[class*="column"].end{float:left}@media only screen{.small-push-0{position:relative;left:0%;right:auto}.small-pull-0{position:relative;right:0%;left:auto}.small-push-1{position:relative;left:8.33333%;right:auto}.small-pull-1{position:relative;right:8.33333%;left:auto}.small-push-2{position:relative;left:16.66667%;right:auto}.small-pull-2{position:relative;right:16.66667%;left:auto}.small-push-3{position:relative;left:25%;right:auto}.small-pull-3{position:relative;right:25%;left:auto}.small-push-4{position:relative;left:33.33333%;right:auto}.small-pull-4{position:relative;right:33.33333%;left:auto}.small-push-5{position:relative;left:41.66667%;right:auto}.small-pull-5{position:relative;right:41.66667%;left:auto}.small-push-6{position:relative;left:50%;right:auto}.small-pull-6{position:relative;right:50%;left:auto}.small-push-7{position:relative;left:58.33333%;right:auto}.small-pull-7{position:relative;right:58.33333%;left:auto}.small-push-8{position:relative;left:66.66667%;right:auto}.small-pull-8{position:relative;right:66.66667%;left:auto}.small-push-9{position:relative;left:75%;right:auto}.small-pull-9{position:relative;right:75%;left:auto}.small-push-10{position:relative;left:83.33333%;right:auto}.small-pull-10{position:relative;right:83.33333%;left:auto}.small-push-11{position:relative;left:91.66667%;right:auto}.small-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.small-1{width:8.33333%}.small-2{width:16.66667%}.small-3{width:25%}.small-4{width:33.33333%}.small-5{width:41.66667%}.small-6{width:50%}.small-7{width:58.33333%}.small-8{width:66.66667%}.small-9{width:75%}.small-10{width:83.33333%}.small-11{width:91.66667%}.small-12{width:100%}.small-offset-0{margin-left:0% !important}.small-offset-1{margin-left:8.33333% !important}.small-offset-2{margin-left:16.66667% !important}.small-offset-3{margin-left:25% !important}.small-offset-4{margin-left:33.33333% !important}.small-offset-5{margin-left:41.66667% !important}.small-offset-6{margin-left:50% !important}.small-offset-7{margin-left:58.33333% !important}.small-offset-8{margin-left:66.66667% !important}.small-offset-9{margin-left:75% !important}.small-offset-10{margin-left:83.33333% !important}.small-offset-11{margin-left:91.66667% !important}.small-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}.column.small-centered,.columns.small-centered{margin-left:auto;margin-right:auto;float:none}.column.small-uncentered,.columns.small-uncentered{margin-left:0;margin-right:0;float:left}.column.small-centered:last-child,.columns.small-centered:last-child{float:none}.column.small-uncentered:last-child,.columns.small-uncentered:last-child{float:left}.column.small-uncentered.opposite,.columns.small-uncentered.opposite{float:right}}@media only screen and (min-width: 40.063em){.medium-push-0{position:relative;left:0%;right:auto}.medium-pull-0{position:relative;right:0%;left:auto}.medium-push-1{position:relative;left:8.33333%;right:auto}.medium-pull-1{position:relative;right:8.33333%;left:auto}.medium-push-2{position:relative;left:16.66667%;right:auto}.medium-pull-2{position:relative;right:16.66667%;left:auto}.medium-push-3{position:relative;left:25%;right:auto}.medium-pull-3{position:relative;right:25%;left:auto}.medium-push-4{position:relative;left:33.33333%;right:auto}.medium-pull-4{position:relative;right:33.33333%;left:auto}.medium-push-5{position:relative;left:41.66667%;right:auto}.medium-pull-5{position:relative;right:41.66667%;left:auto}.medium-push-6{position:relative;left:50%;right:auto}.medium-pull-6{position:relative;right:50%;left:auto}.medium-push-7{position:relative;left:58.33333%;right:auto}.medium-pull-7{position:relative;right:58.33333%;left:auto}.medium-push-8{position:relative;left:66.66667%;right:auto}.medium-pull-8{position:relative;right:66.66667%;left:auto}.medium-push-9{position:relative;left:75%;right:auto}.medium-pull-9{position:relative;right:75%;left:auto}.medium-push-10{position:relative;left:83.33333%;right:auto}.medium-pull-10{position:relative;right:83.33333%;left:auto}.medium-push-11{position:relative;left:91.66667%;right:auto}.medium-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.medium-1{width:8.33333%}.medium-2{width:16.66667%}.medium-3{width:25%}.medium-4{width:33.33333%}.medium-5{width:41.66667%}.medium-6{width:50%}.medium-7{width:58.33333%}.medium-8{width:66.66667%}.medium-9{width:75%}.medium-10{width:83.33333%}.medium-11{width:91.66667%}.medium-12{width:100%}.medium-offset-0{margin-left:0% !important}.medium-offset-1{margin-left:8.33333% !important}.medium-offset-2{margin-left:16.66667% !important}.medium-offset-3{margin-left:25% !important}.medium-offset-4{margin-left:33.33333% !important}.medium-offset-5{margin-left:41.66667% !important}.medium-offset-6{margin-left:50% !important}.medium-offset-7{margin-left:58.33333% !important}.medium-offset-8{margin-left:66.66667% !important}.medium-offset-9{margin-left:75% !important}.medium-offset-10{margin-left:83.33333% !important}.medium-offset-11{margin-left:91.66667% !important}.medium-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}.column.medium-centered,.columns.medium-centered{margin-left:auto;margin-right:auto;float:none}.column.medium-uncentered,.columns.medium-uncentered{margin-left:0;margin-right:0;float:left}.column.medium-centered:last-child,.columns.medium-centered:last-child{float:none}.column.medium-uncentered:last-child,.columns.medium-uncentered:last-child{float:left}.column.medium-uncentered.opposite,.columns.medium-uncentered.opposite{float:right}.push-0{position:relative;left:0%;right:auto}.pull-0{position:relative;right:0%;left:auto}.push-1{position:relative;left:8.33333%;right:auto}.pull-1{position:relative;right:8.33333%;left:auto}.push-2{position:relative;left:16.66667%;right:auto}.pull-2{position:relative;right:16.66667%;left:auto}.push-3{position:relative;left:25%;right:auto}.pull-3{position:relative;right:25%;left:auto}.push-4{position:relative;left:33.33333%;right:auto}.pull-4{position:relative;right:33.33333%;left:auto}.push-5{position:relative;left:41.66667%;right:auto}.pull-5{position:relative;right:41.66667%;left:auto}.push-6{position:relative;left:50%;right:auto}.pull-6{position:relative;right:50%;left:auto}.push-7{position:relative;left:58.33333%;right:auto}.pull-7{position:relative;right:58.33333%;left:auto}.push-8{position:relative;left:66.66667%;right:auto}.pull-8{position:relative;right:66.66667%;left:auto}.push-9{position:relative;left:75%;right:auto}.pull-9{position:relative;right:75%;left:auto}.push-10{position:relative;left:83.33333%;right:auto}.pull-10{position:relative;right:83.33333%;left:auto}.push-11{position:relative;left:91.66667%;right:auto}.pull-11{position:relative;right:91.66667%;left:auto}}@media only screen and (min-width: 64.063em){.large-push-0{position:relative;left:0%;right:auto}.large-pull-0{position:relative;right:0%;left:auto}.large-push-1{position:relative;left:8.33333%;right:auto}.large-pull-1{position:relative;right:8.33333%;left:auto}.large-push-2{position:relative;left:16.66667%;right:auto}.large-pull-2{position:relative;right:16.66667%;left:auto}.large-push-3{position:relative;left:25%;right:auto}.large-pull-3{position:relative;right:25%;left:auto}.large-push-4{position:relative;left:33.33333%;right:auto}.large-pull-4{position:relative;right:33.33333%;left:auto}.large-push-5{position:relative;left:41.66667%;right:auto}.large-pull-5{position:relative;right:41.66667%;left:auto}.large-push-6{position:relative;left:50%;right:auto}.large-pull-6{position:relative;right:50%;left:auto}.large-push-7{position:relative;left:58.33333%;right:auto}.large-pull-7{position:relative;right:58.33333%;left:auto}.large-push-8{position:relative;left:66.66667%;right:auto}.large-pull-8{position:relative;right:66.66667%;left:auto}.large-push-9{position:relative;left:75%;right:auto}.large-pull-9{position:relative;right:75%;left:auto}.large-push-10{position:relative;left:83.33333%;right:auto}.large-pull-10{position:relative;right:83.33333%;left:auto}.large-push-11{position:relative;left:91.66667%;right:auto}.large-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.large-1{width:8.33333%}.large-2{width:16.66667%}.large-3{width:25%}.large-4{width:33.33333%}.large-5{width:41.66667%}.large-6{width:50%}.large-7{width:58.33333%}.large-8{width:66.66667%}.large-9{width:75%}.large-10{width:83.33333%}.large-11{width:91.66667%}.large-12{width:100%}.large-offset-0{margin-left:0% !important}.large-offset-1{margin-left:8.33333% !important}.large-offset-2{margin-left:16.66667% !important}.large-offset-3{margin-left:25% !important}.large-offset-4{margin-left:33.33333% !important}.large-offset-5{margin-left:41.66667% !important}.large-offset-6{margin-left:50% !important}.large-offset-7{margin-left:58.33333% !important}.large-offset-8{margin-left:66.66667% !important}.large-offset-9{margin-left:75% !important}.large-offset-10{margin-left:83.33333% !important}.large-offset-11{margin-left:91.66667% !important}.large-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}.column.large-centered,.columns.large-centered{margin-left:auto;margin-right:auto;float:none}.column.large-uncentered,.columns.large-uncentered{margin-left:0;margin-right:0;float:left}.column.large-centered:last-child,.columns.large-centered:last-child{float:none}.column.large-uncentered:last-child,.columns.large-uncentered:last-child{float:left}.column.large-uncentered.opposite,.columns.large-uncentered.opposite{float:right}.push-0{position:relative;left:0%;right:auto}.pull-0{position:relative;right:0%;left:auto}.push-1{position:relative;left:8.33333%;right:auto}.pull-1{position:relative;right:8.33333%;left:auto}.push-2{position:relative;left:16.66667%;right:auto}.pull-2{position:relative;right:16.66667%;left:auto}.push-3{position:relative;left:25%;right:auto}.pull-3{position:relative;right:25%;left:auto}.push-4{position:relative;left:33.33333%;right:auto}.pull-4{position:relative;right:33.33333%;left:auto}.push-5{position:relative;left:41.66667%;right:auto}.pull-5{position:relative;right:41.66667%;left:auto}.push-6{position:relative;left:50%;right:auto}.pull-6{position:relative;right:50%;left:auto}.push-7{position:relative;left:58.33333%;right:auto}.pull-7{position:relative;right:58.33333%;left:auto}.push-8{position:relative;left:66.66667%;right:auto}.pull-8{position:relative;right:66.66667%;left:auto}.push-9{position:relative;left:75%;right:auto}.pull-9{position:relative;right:75%;left:auto}.push-10{position:relative;left:83.33333%;right:auto}.pull-10{position:relative;right:83.33333%;left:auto}.push-11{position:relative;left:91.66667%;right:auto}.pull-11{position:relative;right:91.66667%;left:auto}}button,.button{border-style:solid;border-width:0px;cursor:pointer;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;line-height:normal;margin:0 0 1.25rem;position:relative;text-decoration:none;text-align:center;-webkit-appearance:none;-webkit-border-radius:0;display:inline-block;padding-top:1rem;padding-right:2rem;padding-bottom:1.0625rem;padding-left:2rem;font-size:1rem;background-color:#008cba;border-color:#007095;color:#fff;transition:background-color 300ms ease-out}button:hover,button:focus,.button:hover,.button:focus{background-color:#007095}button:hover,button:focus,.button:hover,.button:focus{color:#fff}button.secondary,.button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}button.secondary:hover,button.secondary:focus,.button.secondary:hover,.button.secondary:focus{background-color:#b9b9b9}button.secondary:hover,button.secondary:focus,.button.secondary:hover,.button.secondary:focus{color:#333}button.success,.button.success{background-color:#43ac6a;border-color:#368a55;color:#fff}button.success:hover,button.success:focus,.button.success:hover,.button.success:focus{background-color:#368a55}button.success:hover,button.success:focus,.button.success:hover,.button.success:focus{color:#fff}button.alert,.button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}button.alert:hover,button.alert:focus,.button.alert:hover,.button.alert:focus{background-color:#cf2a0e}button.alert:hover,button.alert:focus,.button.alert:hover,.button.alert:focus{color:#fff}button.warning,.button.warning{background-color:#f08a24;border-color:#cf6e0e;color:#fff}button.warning:hover,button.warning:focus,.button.warning:hover,.button.warning:focus{background-color:#cf6e0e}button.warning:hover,button.warning:focus,.button.warning:hover,.button.warning:focus{color:#fff}button.info,.button.info{background-color:#a0d3e8;border-color:#61b6d9;color:#333}button.info:hover,button.info:focus,.button.info:hover,.button.info:focus{background-color:#61b6d9}button.info:hover,button.info:focus,.button.info:hover,.button.info:focus{color:#fff}button.large,.button.large{padding-top:1.125rem;padding-right:2.25rem;padding-bottom:1.1875rem;padding-left:2.25rem;font-size:1.25rem}button.small,.button.small{padding-top:0.875rem;padding-right:1.75rem;padding-bottom:0.9375rem;padding-left:1.75rem;font-size:0.8125rem}button.tiny,.button.tiny{padding-top:0.625rem;padding-right:1.25rem;padding-bottom:0.6875rem;padding-left:1.25rem;font-size:0.6875rem}button.expand,.button.expand{padding-right:0;padding-left:0;width:100%}button.left-align,.button.left-align{text-align:left;text-indent:0.75rem}button.right-align,.button.right-align{text-align:right;padding-right:0.75rem}button.radius,.button.radius{border-radius:3px}button.round,.button.round{border-radius:1000px}button.disabled,button[disabled],.button.disabled,.button[disabled]{background-color:#008cba;border-color:#007095;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{background-color:#007095}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{color:#fff}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{background-color:#008cba}button.disabled.secondary,button[disabled].secondary,.button.disabled.secondary,.button[disabled].secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333;cursor:default;opacity:0.7;box-shadow:none}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#b9b9b9}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{color:#333}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#e7e7e7}button.disabled.success,button[disabled].success,.button.disabled.success,.button[disabled].success{background-color:#43ac6a;border-color:#368a55;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#368a55}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{color:#fff}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#43ac6a}button.disabled.alert,button[disabled].alert,.button.disabled.alert,.button[disabled].alert{background-color:#f04124;border-color:#cf2a0e;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#cf2a0e}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{color:#fff}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#f04124}button.disabled.warning,button[disabled].warning,.button.disabled.warning,.button[disabled].warning{background-color:#f08a24;border-color:#cf6e0e;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{background-color:#cf6e0e}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{color:#fff}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{background-color:#f08a24}button.disabled.info,button[disabled].info,.button.disabled.info,.button[disabled].info{background-color:#a0d3e8;border-color:#61b6d9;color:#333;cursor:default;opacity:0.7;box-shadow:none}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{background-color:#61b6d9}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{color:#fff}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{background-color:#a0d3e8}button::-moz-focus-inner{border:0;padding:0}@media only screen and (min-width: 40.063em){button,.button{display:inline-block}}form{margin:0 0 1rem}form .row .row{margin:0 -0.5rem}form .row .row .column,form .row .row .columns{padding:0 0.5rem}form .row .row.collapse{margin:0}form .row .row.collapse .column,form .row .row.collapse .columns{padding:0}form .row .row.collapse input{-webkit-border-bottom-right-radius:0;-webkit-border-top-right-radius:0;border-bottom-right-radius:0;border-top-right-radius:0}form .row input.column,form .row input.columns,form .row textarea.column,form .row textarea.columns{padding-left:0.5rem}label{font-size:0.875rem;color:#4d4d4d;cursor:pointer;display:block;font-weight:normal;line-height:1.5;margin-bottom:0}label.right{float:none !important;text-align:right}label.inline{margin:0 0 1rem 0;padding:0.5625rem 0}label small{text-transform:capitalize;color:#676767}select::-ms-expand{display:none}.prefix,.postfix{display:block;position:relative;z-index:2;text-align:center;width:100%;padding-top:0;padding-bottom:0;border-style:solid;border-width:1px;overflow:hidden;font-size:0.875rem;height:2.3125rem;line-height:2.3125rem}.postfix.button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;text-align:center;line-height:2.125rem;border:none}.prefix.button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;text-align:center;line-height:2.125rem;border:none}.prefix.button.radius{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.postfix.button.radius{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.prefix.button.round{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.postfix.button.round{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}span.prefix,label.prefix{background:#f2f2f2;border-right:none;color:#333;border-color:#ccc}span.postfix,label.postfix{background:#f2f2f2;border-left:none;color:#333;border-color:#ccc}input[type="text"],input[type="password"],input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="month"],input[type="week"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="time"],input[type="url"],input[type="color"],textarea{-webkit-appearance:none;-webkit-border-radius:0px;background-color:#fff;font-family:inherit;border:1px solid #ccc;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);color:rgba(0,0,0,0.75);display:block;font-size:0.875rem;margin:0 0 1rem 0;padding:0.5rem;height:2.3125rem;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;transition:box-shadow 0.45s,border-color 0.45s ease-in-out}input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,input[type="color"]:focus,textarea:focus{box-shadow:0 0 5px #999;border-color:#999}input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,input[type="color"]:focus,textarea:focus{background:#fafafa;border-color:#999;outline:none}input[type="text"]:disabled,input[type="password"]:disabled,input[type="date"]:disabled,input[type="datetime"]:disabled,input[type="datetime-local"]:disabled,input[type="month"]:disabled,input[type="week"]:disabled,input[type="email"]:disabled,input[type="number"]:disabled,input[type="search"]:disabled,input[type="tel"]:disabled,input[type="time"]:disabled,input[type="url"]:disabled,input[type="color"]:disabled,textarea:disabled{background-color:#ddd;cursor:default}input[type="text"][disabled],input[type="text"][readonly],fieldset[disabled] input[type="text"],input[type="password"][disabled],input[type="password"][readonly],fieldset[disabled] input[type="password"],input[type="date"][disabled],input[type="date"][readonly],fieldset[disabled] input[type="date"],input[type="datetime"][disabled],input[type="datetime"][readonly],fieldset[disabled] input[type="datetime"],input[type="datetime-local"][disabled],input[type="datetime-local"][readonly],fieldset[disabled] input[type="datetime-local"],input[type="month"][disabled],input[type="month"][readonly],fieldset[disabled] input[type="month"],input[type="week"][disabled],input[type="week"][readonly],fieldset[disabled] input[type="week"],input[type="email"][disabled],input[type="email"][readonly],fieldset[disabled] input[type="email"],input[type="number"][disabled],input[type="number"][readonly],fieldset[disabled] input[type="number"],input[type="search"][disabled],input[type="search"][readonly],fieldset[disabled] input[type="search"],input[type="tel"][disabled],input[type="tel"][readonly],fieldset[disabled] input[type="tel"],input[type="time"][disabled],input[type="time"][readonly],fieldset[disabled] input[type="time"],input[type="url"][disabled],input[type="url"][readonly],fieldset[disabled] input[type="url"],input[type="color"][disabled],input[type="color"][readonly],fieldset[disabled] input[type="color"],textarea[disabled],textarea[readonly],fieldset[disabled] textarea{background-color:#ddd;cursor:default}input[type="text"].radius,input[type="password"].radius,input[type="date"].radius,input[type="datetime"].radius,input[type="datetime-local"].radius,input[type="month"].radius,input[type="week"].radius,input[type="email"].radius,input[type="number"].radius,input[type="search"].radius,input[type="tel"].radius,input[type="time"].radius,input[type="url"].radius,input[type="color"].radius,textarea.radius{border-radius:3px}form .row .prefix-radius.row.collapse input,form .row .prefix-radius.row.collapse textarea,form .row .prefix-radius.row.collapse select{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}form .row .prefix-radius.row.collapse .prefix{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}form .row .postfix-radius.row.collapse input,form .row .postfix-radius.row.collapse textarea,form .row .postfix-radius.row.collapse select{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}form .row .postfix-radius.row.collapse .postfix{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}form .row .prefix-round.row.collapse input,form .row .prefix-round.row.collapse textarea,form .row .prefix-round.row.collapse select{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}form .row .prefix-round.row.collapse .prefix{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}form .row .postfix-round.row.collapse input,form .row .postfix-round.row.collapse textarea,form .row .postfix-round.row.collapse select{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}form .row .postfix-round.row.collapse .postfix{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}input[type="submit"]{-webkit-appearance:none;-webkit-border-radius:0px}textarea[rows]{height:auto}select{-webkit-appearance:none !important;-webkit-border-radius:0px;background-color:#fafafa;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);background-position:100% center;background-repeat:no-repeat;border:1px solid #ccc;padding:0.5rem;font-size:0.875rem;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;color:rgba(0,0,0,0.75);line-height:normal;border-radius:0;height:2.3125rem}select.radius{border-radius:3px}select:hover{background-color:#f3f3f3;border-color:#999}select:disabled{background-color:#ddd;cursor:default}input[type="file"],input[type="checkbox"],input[type="radio"],select{margin:0 0 1rem 0}input[type="checkbox"]+label,input[type="radio"]+label{display:inline-block;margin-left:0.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}input[type="file"]{width:100%}fieldset{border:1px solid #ddd;padding:1.25rem;margin:1.125rem 0}fieldset legend{font-weight:bold;background:#fff;padding:0 0.1875rem;margin:0;margin-left:-0.1875rem}[data-abide] .error small.error,[data-abide] .error span.error,[data-abide] span.error,[data-abide] small.error{display:block;padding:0.375rem 0.5625rem 0.5625rem;margin-top:-1px;margin-bottom:1rem;font-size:0.75rem;font-weight:normal;font-style:italic;background:#f04124;color:#fff}[data-abide] span.error,[data-abide] small.error{display:none}span.error,small.error{display:block;padding:0.375rem 0.5625rem 0.5625rem;margin-top:-1px;margin-bottom:1rem;font-size:0.75rem;font-weight:normal;font-style:italic;background:#f04124;color:#fff}.error input,.error textarea,.error select{margin-bottom:0}.error input[type="checkbox"],.error input[type="radio"]{margin-bottom:1rem}.error label,.error label.error{color:#f04124}.error small.error{display:block;padding:0.375rem 0.5625rem 0.5625rem;margin-top:-1px;margin-bottom:1rem;font-size:0.75rem;font-weight:normal;font-style:italic;background:#f04124;color:#fff}.error>label>small{color:#676767;background:transparent;padding:0;text-transform:capitalize;font-style:normal;font-size:60%;margin:0;display:inline}.error span.error-message{display:block}input.error,textarea.error,select.error{margin-bottom:0}label.error{color:#f04124}meta.foundation-mq-topbar{font-family:"/only screen and (min-width:40.063em)/";width:40.063em}.contain-to-grid{width:100%;background:#333}.contain-to-grid .top-bar{margin-bottom:0}.fixed{width:100%;left:0;position:fixed;top:0;z-index:99}.fixed.expanded:not(.top-bar){overflow-y:auto;height:auto;width:100%;max-height:100%}.fixed.expanded:not(.top-bar) .title-area{position:fixed;width:100%;z-index:99}.fixed.expanded:not(.top-bar) .top-bar-section{z-index:98;margin-top:45px}.top-bar{overflow:hidden;height:45px;line-height:45px;position:relative;background:#333;margin-bottom:0}.top-bar ul{margin-bottom:0;list-style:none}.top-bar .row{max-width:none}.top-bar form,.top-bar input{margin-bottom:0}.top-bar input{height:1.8rem;padding-top:.35rem;padding-bottom:.35rem;font-size:0.75rem}.top-bar .button,.top-bar button{padding-top:0.4125rem;padding-bottom:0.4125rem;margin-bottom:0;font-size:0.75rem}@media only screen and (max-width: 40em){.top-bar .button,.top-bar button{position:relative;top:-1px}}.top-bar .title-area{position:relative;margin:0}.top-bar .name{height:45px;margin:0;font-size:16px}.top-bar .name h1{line-height:45px;font-size:1.0625rem;margin:0}.top-bar .name h1 a{font-weight:normal;color:#fff;width:75%;display:block;padding:0 15px}.top-bar .toggle-topbar{position:absolute;right:0;top:0}.top-bar .toggle-topbar a{color:#fff;text-transform:uppercase;font-size:0.8125rem;font-weight:bold;position:relative;display:block;padding:0 15px;height:45px;line-height:45px}.top-bar .toggle-topbar.menu-icon{top:50%;margin-top:-16px}.top-bar .toggle-topbar.menu-icon a{height:34px;line-height:33px;padding:0 40px 0 15px;color:#fff;position:relative}.top-bar .toggle-topbar.menu-icon a span::after{content:"";position:absolute;display:block;height:0;top:50%;margin-top:-8px;right:15px;box-shadow:0 0px 0 1px #fff,0 7px 0 1px #fff,0 14px 0 1px #fff;width:16px}.top-bar .toggle-topbar.menu-icon a span:hover:after{box-shadow:0 0px 0 1px #fff,0 7px 0 1px #fff,0 14px 0 1px #fff}.top-bar.expanded{height:auto;background:transparent}.top-bar.expanded .title-area{background:#333}.top-bar.expanded .toggle-topbar a{color:#888}.top-bar.expanded .toggle-topbar a::after{box-shadow:0 10px 0 1px #888,0 16px 0 1px #888,0 22px 0 1px #888}.top-bar-section{left:0;position:relative;width:auto;transition:left 300ms ease-out}.top-bar-section ul{padding:0;width:100%;height:auto;display:block;font-size:16px;margin:0}.top-bar-section .divider,.top-bar-section [role="separator"]{border-top:solid 1px #1a1a1a;clear:both;height:1px;width:100%}.top-bar-section ul li{background:#333}.top-bar-section ul li>a{display:block;width:100%;color:#fff;padding:12px 0 12px 0;padding-left:15px;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:0.8125rem;font-weight:normal;text-transform:none}.top-bar-section ul li>a.button{font-size:0.8125rem;padding-right:15px;padding-left:15px;background-color:#008cba;border-color:#007095;color:#fff}.top-bar-section ul li>a.button:hover,.top-bar-section ul li>a.button:focus{background-color:#007095}.top-bar-section ul li>a.button:hover,.top-bar-section ul li>a.button:focus{color:#fff}.top-bar-section ul li>a.button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}.top-bar-section ul li>a.button.secondary:hover,.top-bar-section ul li>a.button.secondary:focus{background-color:#b9b9b9}.top-bar-section ul li>a.button.secondary:hover,.top-bar-section ul li>a.button.secondary:focus{color:#333}.top-bar-section ul li>a.button.success{background-color:#43ac6a;border-color:#368a55;color:#fff}.top-bar-section ul li>a.button.success:hover,.top-bar-section ul li>a.button.success:focus{background-color:#368a55}.top-bar-section ul li>a.button.success:hover,.top-bar-section ul li>a.button.success:focus{color:#fff}.top-bar-section ul li>a.button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}.top-bar-section ul li>a.button.alert:hover,.top-bar-section ul li>a.button.alert:focus{background-color:#cf2a0e}.top-bar-section ul li>a.button.alert:hover,.top-bar-section ul li>a.button.alert:focus{color:#fff}.top-bar-section ul li>button{font-size:0.8125rem;padding-right:15px;padding-left:15px;background-color:#008cba;border-color:#007095;color:#fff}.top-bar-section ul li>button:hover,.top-bar-section ul li>button:focus{background-color:#007095}.top-bar-section ul li>button:hover,.top-bar-section ul li>button:focus{color:#fff}.top-bar-section ul li>button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}.top-bar-section ul li>button.secondary:hover,.top-bar-section ul li>button.secondary:focus{background-color:#b9b9b9}.top-bar-section ul li>button.secondary:hover,.top-bar-section ul li>button.secondary:focus{color:#333}.top-bar-section ul li>button.success{background-color:#43ac6a;border-color:#368a55;color:#fff}.top-bar-section ul li>button.success:hover,.top-bar-section ul li>button.success:focus{background-color:#368a55}.top-bar-section ul li>button.success:hover,.top-bar-section ul li>button.success:focus{color:#fff}.top-bar-section ul li>button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}.top-bar-section ul li>button.alert:hover,.top-bar-section ul li>button.alert:focus{background-color:#cf2a0e}.top-bar-section ul li>button.alert:hover,.top-bar-section ul li>button.alert:focus{color:#fff}.top-bar-section ul li:hover:not(.has-form)>a{background-color:#555;background:#272727;color:#fff}.top-bar-section ul li.active>a{background:#008cba;color:#fff}.top-bar-section ul li.active>a:hover{background:#0078a0;color:#fff}.top-bar-section .has-form{padding:15px}.top-bar-section .has-dropdown{position:relative}.top-bar-section .has-dropdown>a:after{content:"";display:block;width:0;height:0;border:inset 5px;border-color:transparent transparent transparent rgba(255,255,255,0.4);border-left-style:solid;margin-right:15px;margin-top:-4.5px;position:absolute;top:50%;right:0}.top-bar-section .has-dropdown.moved{position:static}.top-bar-section .has-dropdown.moved>.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important;width:100%}.top-bar-section .has-dropdown.moved>a:after{display:none}.top-bar-section .dropdown{padding:0;position:absolute;left:100%;top:0;z-index:99;display:block;position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}.top-bar-section .dropdown li{width:100%;height:auto}.top-bar-section .dropdown li a{font-weight:normal;padding:8px 15px}.top-bar-section .dropdown li a.parent-link{font-weight:normal}.top-bar-section .dropdown li.title h5,.top-bar-section .dropdown li.parent-link{margin-bottom:0;margin-top:0;font-size:1.125rem}.top-bar-section .dropdown li.title h5 a,.top-bar-section .dropdown li.parent-link a{color:#fff;display:block}.top-bar-section .dropdown li.title h5 a:hover,.top-bar-section .dropdown li.parent-link a:hover{background:none}.top-bar-section .dropdown li.has-form{padding:8px 15px}.top-bar-section .dropdown li .button,.top-bar-section .dropdown li button{top:auto}.top-bar-section .dropdown label{padding:8px 15px 2px;margin-bottom:0;text-transform:uppercase;color:#777;font-weight:bold;font-size:0.625rem}.js-generated{display:block}@media only screen and (min-width: 40.063em){.top-bar{background:#333;overflow:visible}.top-bar:before,.top-bar:after{content:" ";display:table}.top-bar:after{clear:both}.top-bar .toggle-topbar{display:none}.top-bar .title-area{float:left}.top-bar .name h1 a{width:auto}.top-bar input,.top-bar .button,.top-bar button{font-size:0.875rem;position:relative;top:7px}.top-bar.expanded{background:#333}.contain-to-grid .top-bar{max-width:62.5rem;margin:0 auto;margin-bottom:0}.top-bar-section{transition:none 0 0;left:0 !important}.top-bar-section ul{width:auto;height:auto !important;display:inline}.top-bar-section ul li{float:left}.top-bar-section ul li .js-generated{display:none}.top-bar-section li.hover>a:not(.button){background-color:#555;background:#272727;color:#fff}.top-bar-section li:not(.has-form) a:not(.button){padding:0 15px;line-height:45px;background:#333}.top-bar-section li:not(.has-form) a:not(.button):hover{background-color:#555;background:#272727}.top-bar-section li.active:not(.has-form) a:not(.button){padding:0 15px;line-height:45px;color:#fff;background:#008cba}.top-bar-section li.active:not(.has-form) a:not(.button):hover{background:#0078a0;color:#fff}.top-bar-section .has-dropdown>a{padding-right:35px !important}.top-bar-section .has-dropdown>a:after{content:"";display:block;width:0;height:0;border:inset 5px;border-color:rgba(255,255,255,0.4) transparent transparent transparent;border-top-style:solid;margin-top:-2.5px;top:22.5px}.top-bar-section .has-dropdown.moved{position:relative}.top-bar-section .has-dropdown.moved>.dropdown{display:block;position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}.top-bar-section .has-dropdown.hover>.dropdown,.top-bar-section .has-dropdown.not-click:hover>.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important}.top-bar-section .has-dropdown>a:focus+.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important}.top-bar-section .has-dropdown .dropdown li.has-dropdown>a:after{border:none;content:"\00bb";top:1rem;margin-top:-1px;right:5px;line-height:1.2}.top-bar-section .dropdown{left:0;top:auto;background:transparent;min-width:100%}.top-bar-section .dropdown li a{color:#fff;line-height:45px;white-space:nowrap;padding:12px 15px;background:#333}.top-bar-section .dropdown li:not(.has-form):not(.active)>a:not(.button){color:#fff;background:#333}.top-bar-section .dropdown li:not(.has-form):not(.active):hover>a:not(.button){color:#fff;background-color:#555;background:#272727}.top-bar-section .dropdown li label{white-space:nowrap;background:#333}.top-bar-section .dropdown li .dropdown{left:100%;top:0}.top-bar-section>ul>.divider,.top-bar-section>ul>[role="separator"]{border-bottom:none;border-top:none;border-right:solid 1px #4e4e4e;clear:none;height:45px;width:0}.top-bar-section .has-form{background:#333;padding:0 15px;height:45px}.top-bar-section .right li .dropdown{left:auto;right:0}.top-bar-section .right li .dropdown li .dropdown{right:100%}.top-bar-section .left li .dropdown{right:auto;left:0}.top-bar-section .left li .dropdown li .dropdown{left:100%}.no-js .top-bar-section ul li:hover>a{background-color:#555;background:#272727;color:#fff}.no-js .top-bar-section ul li:active>a{background:#008cba;color:#fff}.no-js .top-bar-section .has-dropdown:hover>.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important}.no-js .top-bar-section .has-dropdown>a:focus+.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important}}.breadcrumbs{display:block;padding:0.5625rem 0.875rem 0.5625rem;overflow:hidden;margin-left:0;list-style:none;border-style:solid;border-width:1px;background-color:#f4f4f4;border-color:#dcdcdc;border-radius:3px}.breadcrumbs>*{margin:0;float:left;font-size:0.6875rem;line-height:0.6875rem;text-transform:uppercase;color:#008cba}.breadcrumbs>*:hover a,.breadcrumbs>*:focus a{text-decoration:underline}.breadcrumbs>* a{color:#008cba}.breadcrumbs>*.current{cursor:default;color:#333}.breadcrumbs>*.current a{cursor:default;color:#333}.breadcrumbs>*.current:hover,.breadcrumbs>*.current:hover a,.breadcrumbs>*.current:focus,.breadcrumbs>*.current:focus a{text-decoration:none}.breadcrumbs>*.unavailable{color:#999}.breadcrumbs>*.unavailable a{color:#999}.breadcrumbs>*.unavailable:hover,.breadcrumbs>*.unavailable:hover a,.breadcrumbs>*.unavailable:focus,.breadcrumbs>*.unavailable a:focus{text-decoration:none;color:#999;cursor:default}.breadcrumbs>*:before{content:"/";color:#aaa;margin:0 0.75rem;position:relative;top:1px}.breadcrumbs>*:first-child:before{content:" ";margin:0}[aria-label="breadcrumbs"] [aria-hidden="true"]:after{content:"/"}.alert-box{border-style:solid;border-width:1px;display:block;font-weight:normal;margin-bottom:1.25rem;position:relative;padding:0.875rem 1.5rem 0.875rem 0.875rem;font-size:0.8125rem;transition:opacity 300ms ease-out;background-color:#008cba;border-color:#0078a0;color:#fff}.alert-box .close{font-size:1.375rem;padding:9px 6px 4px;line-height:0;position:absolute;top:50%;margin-top:-0.6875rem;right:0.25rem;color:#333;opacity:0.3}.alert-box .close:hover,.alert-box .close:focus{opacity:0.5}.alert-box.radius{border-radius:3px}.alert-box.round{border-radius:1000px}.alert-box.success{background-color:#43ac6a;border-color:#3a945b;color:#fff}.alert-box.alert{background-color:#f04124;border-color:#de2d0f;color:#fff}.alert-box.secondary{background-color:#e7e7e7;border-color:#c7c7c7;color:#4f4f4f}.alert-box.warning{background-color:#f08a24;border-color:#de770f;color:#fff}.alert-box.info{background-color:#a0d3e8;border-color:#74bfdd;color:#4f4f4f}.alert-box.alert-close{opacity:0}.inline-list{margin:0 auto 1.0625rem auto;margin-left:-1.375rem;margin-right:0;padding:0;list-style:none;overflow:hidden}.inline-list>li{list-style:none;float:left;margin-left:1.375rem;display:block}.inline-list>li>*{display:block}.button-group{list-style:none;margin:0;left:0}.button-group:before,.button-group:after{content:" ";display:table}.button-group:after{clear:both}.button-group>li{margin:0 -2px;float:left;display:inline-block}.button-group>li>button,.button-group>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group>li:first-child button,.button-group>li:first-child .button{border-left:0}.button-group.stack>li{margin:0 -2px;float:left;display:inline-block;display:block;margin:0;float:none}.button-group.stack>li>button,.button-group.stack>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack>li:first-child button,.button-group.stack>li:first-child .button{border-left:0}.button-group.stack>li>button,.button-group.stack>li .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.stack>li:first-child button,.button-group.stack>li:first-child .button{border-top:0}.button-group.stack-for-small>li{margin:0 -2px;float:left;display:inline-block}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-left:0}@media only screen and (max-width: 40em){.button-group.stack-for-small>li{margin:0 -2px;float:left;display:inline-block;display:block;margin:0}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-left:0}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-top:0}}.button-group.radius>*{margin:0 -2px;float:left;display:inline-block}.button-group.radius>*>button,.button-group.radius>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius>*:first-child button,.button-group.radius>*:first-child .button{border-left:0}.button-group.radius>*,.button-group.radius>*>a,.button-group.radius>*>button,.button-group.radius>*>.button{border-radius:0}.button-group.radius>*:first-child,.button-group.radius>*:first-child>a,.button-group.radius>*:first-child>button,.button-group.radius>*:first-child>.button{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.button-group.radius>*:last-child,.button-group.radius>*:last-child>a,.button-group.radius>*:last-child>button,.button-group.radius>*:last-child>.button{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.button-group.radius.stack>*{margin:0 -2px;float:left;display:inline-block;display:block;margin:0}.button-group.radius.stack>*>button,.button-group.radius.stack>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack>*:first-child button,.button-group.radius.stack>*:first-child .button{border-left:0}.button-group.radius.stack>*>button,.button-group.radius.stack>* .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.radius.stack>*:first-child button,.button-group.radius.stack>*:first-child .button{border-top:0}.button-group.radius.stack>*,.button-group.radius.stack>*>a,.button-group.radius.stack>*>button,.button-group.radius.stack>*>.button{border-radius:0}.button-group.radius.stack>*:first-child,.button-group.radius.stack>*:first-child>a,.button-group.radius.stack>*:first-child>button,.button-group.radius.stack>*:first-child>.button{-webkit-top-left-radius:3px;-webkit-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.button-group.radius.stack>*:last-child,.button-group.radius.stack>*:last-child>a,.button-group.radius.stack>*:last-child>button,.button-group.radius.stack>*:last-child>.button{-webkit-bottom-left-radius:3px;-webkit-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}@media only screen and (min-width: 40.063em){.button-group.radius.stack-for-small>*{margin:0 -2px;float:left;display:inline-block}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-left:0}.button-group.radius.stack-for-small>*,.button-group.radius.stack-for-small>*>a,.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>*>.button{border-radius:0}.button-group.radius.stack-for-small>*:first-child,.button-group.radius.stack-for-small>*:first-child>a,.button-group.radius.stack-for-small>*:first-child>button,.button-group.radius.stack-for-small>*:first-child>.button{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.button-group.radius.stack-for-small>*:last-child,.button-group.radius.stack-for-small>*:last-child>a,.button-group.radius.stack-for-small>*:last-child>button,.button-group.radius.stack-for-small>*:last-child>.button{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}}@media only screen and (max-width: 40em){.button-group.radius.stack-for-small>*{margin:0 -2px;float:left;display:inline-block;display:block;margin:0}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-left:0}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-top:0}.button-group.radius.stack-for-small>*,.button-group.radius.stack-for-small>*>a,.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>*>.button{border-radius:0}.button-group.radius.stack-for-small>*:first-child,.button-group.radius.stack-for-small>*:first-child>a,.button-group.radius.stack-for-small>*:first-child>button,.button-group.radius.stack-for-small>*:first-child>.button{-webkit-top-left-radius:3px;-webkit-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.button-group.radius.stack-for-small>*:last-child,.button-group.radius.stack-for-small>*:last-child>a,.button-group.radius.stack-for-small>*:last-child>button,.button-group.radius.stack-for-small>*:last-child>.button{-webkit-bottom-left-radius:3px;-webkit-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}}.button-group.round>*{margin:0 -2px;float:left;display:inline-block}.button-group.round>*>button,.button-group.round>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round>*:first-child button,.button-group.round>*:first-child .button{border-left:0}.button-group.round>*,.button-group.round>*>a,.button-group.round>*>button,.button-group.round>*>.button{border-radius:0}.button-group.round>*:first-child,.button-group.round>*:first-child>a,.button-group.round>*:first-child>button,.button-group.round>*:first-child>.button{-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.button-group.round>*:last-child,.button-group.round>*:last-child>a,.button-group.round>*:last-child>button,.button-group.round>*:last-child>.button{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}.button-group.round.stack>*{margin:0 -2px;float:left;display:inline-block;display:block;margin:0}.button-group.round.stack>*>button,.button-group.round.stack>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack>*:first-child button,.button-group.round.stack>*:first-child .button{border-left:0}.button-group.round.stack>*>button,.button-group.round.stack>* .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.round.stack>*:first-child button,.button-group.round.stack>*:first-child .button{border-top:0}.button-group.round.stack>*,.button-group.round.stack>*>a,.button-group.round.stack>*>button,.button-group.round.stack>*>.button{border-radius:0}.button-group.round.stack>*:first-child,.button-group.round.stack>*:first-child>a,.button-group.round.stack>*:first-child>button,.button-group.round.stack>*:first-child>.button{-webkit-top-left-radius:1rem;-webkit-top-right-radius:1rem;border-top-left-radius:1rem;border-top-right-radius:1rem}.button-group.round.stack>*:last-child,.button-group.round.stack>*:last-child>a,.button-group.round.stack>*:last-child>button,.button-group.round.stack>*:last-child>.button{-webkit-bottom-left-radius:1rem;-webkit-bottom-right-radius:1rem;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}@media only screen and (min-width: 40.063em){.button-group.round.stack-for-small>*{margin:0 -2px;float:left;display:inline-block}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-left:0}.button-group.round.stack-for-small>*,.button-group.round.stack-for-small>*>a,.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>*>.button{border-radius:0}.button-group.round.stack-for-small>*:first-child,.button-group.round.stack-for-small>*:first-child>a,.button-group.round.stack-for-small>*:first-child>button,.button-group.round.stack-for-small>*:first-child>.button{-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.button-group.round.stack-for-small>*:last-child,.button-group.round.stack-for-small>*:last-child>a,.button-group.round.stack-for-small>*:last-child>button,.button-group.round.stack-for-small>*:last-child>.button{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}}@media only screen and (max-width: 40em){.button-group.round.stack-for-small>*{margin:0 -2px;float:left;display:inline-block;display:block;margin:0}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-left:0}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-top:0}.button-group.round.stack-for-small>*,.button-group.round.stack-for-small>*>a,.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>*>.button{border-radius:0}.button-group.round.stack-for-small>*:first-child,.button-group.round.stack-for-small>*:first-child>a,.button-group.round.stack-for-small>*:first-child>button,.button-group.round.stack-for-small>*:first-child>.button{-webkit-top-left-radius:1rem;-webkit-top-right-radius:1rem;border-top-left-radius:1rem;border-top-right-radius:1rem}.button-group.round.stack-for-small>*:last-child,.button-group.round.stack-for-small>*:last-child>a,.button-group.round.stack-for-small>*:last-child>button,.button-group.round.stack-for-small>*:last-child>.button{-webkit-bottom-left-radius:1rem;-webkit-bottom-right-radius:1rem;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}}.button-group.even-2 li{margin:0 -2px;float:left;display:inline-block;width:50%}.button-group.even-2 li>button,.button-group.even-2 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-2 li:first-child button,.button-group.even-2 li:first-child .button{border-left:0}.button-group.even-2 li button,.button-group.even-2 li .button{width:100%}.button-group.even-3 li{margin:0 -2px;float:left;display:inline-block;width:33.33333%}.button-group.even-3 li>button,.button-group.even-3 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-3 li:first-child button,.button-group.even-3 li:first-child .button{border-left:0}.button-group.even-3 li button,.button-group.even-3 li .button{width:100%}.button-group.even-4 li{margin:0 -2px;float:left;display:inline-block;width:25%}.button-group.even-4 li>button,.button-group.even-4 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-4 li:first-child button,.button-group.even-4 li:first-child .button{border-left:0}.button-group.even-4 li button,.button-group.even-4 li .button{width:100%}.button-group.even-5 li{margin:0 -2px;float:left;display:inline-block;width:20%}.button-group.even-5 li>button,.button-group.even-5 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-5 li:first-child button,.button-group.even-5 li:first-child .button{border-left:0}.button-group.even-5 li button,.button-group.even-5 li .button{width:100%}.button-group.even-6 li{margin:0 -2px;float:left;display:inline-block;width:16.66667%}.button-group.even-6 li>button,.button-group.even-6 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-6 li:first-child button,.button-group.even-6 li:first-child .button{border-left:0}.button-group.even-6 li button,.button-group.even-6 li .button{width:100%}.button-group.even-7 li{margin:0 -2px;float:left;display:inline-block;width:14.28571%}.button-group.even-7 li>button,.button-group.even-7 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-7 li:first-child button,.button-group.even-7 li:first-child .button{border-left:0}.button-group.even-7 li button,.button-group.even-7 li .button{width:100%}.button-group.even-8 li{margin:0 -2px;float:left;display:inline-block;width:12.5%}.button-group.even-8 li>button,.button-group.even-8 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-8 li:first-child button,.button-group.even-8 li:first-child .button{border-left:0}.button-group.even-8 li button,.button-group.even-8 li .button{width:100%}.button-bar:before,.button-bar:after{content:" ";display:table}.button-bar:after{clear:both}.button-bar .button-group{float:left;margin-right:0.625rem}.button-bar .button-group div{overflow:hidden}.panel{border-style:solid;border-width:1px;border-color:#d8d8d8;margin-bottom:1.25rem;padding:1.25rem;background:#f2f2f2;color:#333}.panel>:first-child{margin-top:0}.panel>:last-child{margin-bottom:0}.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,.panel h6,.panel p,.panel li,.panel dl{color:#333}.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,.panel h6{line-height:1;margin-bottom:0.625rem}.panel h1.subheader,.panel h2.subheader,.panel h3.subheader,.panel h4.subheader,.panel h5.subheader,.panel h6.subheader{line-height:1.4}.panel.callout{border-style:solid;border-width:1px;border-color:#b6edff;margin-bottom:1.25rem;padding:1.25rem;background:#ecfaff;color:#333}.panel.callout>:first-child{margin-top:0}.panel.callout>:last-child{margin-bottom:0}.panel.callout h1,.panel.callout h2,.panel.callout h3,.panel.callout h4,.panel.callout h5,.panel.callout h6,.panel.callout p,.panel.callout li,.panel.callout dl{color:#333}.panel.callout h1,.panel.callout h2,.panel.callout h3,.panel.callout h4,.panel.callout h5,.panel.callout h6{line-height:1;margin-bottom:0.625rem}.panel.callout h1.subheader,.panel.callout h2.subheader,.panel.callout h3.subheader,.panel.callout h4.subheader,.panel.callout h5.subheader,.panel.callout h6.subheader{line-height:1.4}.panel.callout a:not(.button){color:#008cba}.panel.radius{border-radius:3px}.dropdown.button,button.dropdown{position:relative;padding-right:3.5625rem}.dropdown.button:after,button.dropdown:after{position:absolute;content:"";width:0;height:0;display:block;border-style:solid;border-color:#fff transparent transparent transparent;top:50%}.dropdown.button:after,button.dropdown:after{border-width:0.375rem;right:1.40625rem;margin-top:-0.15625rem}.dropdown.button:after,button.dropdown:after{border-color:#fff transparent transparent transparent}.dropdown.button.tiny,button.dropdown.tiny{padding-right:2.625rem}.dropdown.button.tiny:before,button.dropdown.tiny:before{border-width:0.375rem;right:1.125rem;margin-top:-0.125rem}.dropdown.button.tiny:after,button.dropdown.tiny:after{border-color:#fff transparent transparent transparent}.dropdown.button.small,button.dropdown.small{padding-right:3.0625rem}.dropdown.button.small:after,button.dropdown.small:after{border-width:0.4375rem;right:1.3125rem;margin-top:-0.15625rem}.dropdown.button.small:after,button.dropdown.small:after{border-color:#fff transparent transparent transparent}.dropdown.button.large,button.dropdown.large{padding-right:3.625rem}.dropdown.button.large:after,button.dropdown.large:after{border-width:0.3125rem;right:1.71875rem;margin-top:-0.15625rem}.dropdown.button.large:after,button.dropdown.large:after{border-color:#fff transparent transparent transparent}.dropdown.button.secondary:after,button.dropdown.secondary:after{border-color:#333 transparent transparent transparent}.th{line-height:0;display:inline-block;border:solid 4px #fff;max-width:100%;box-shadow:0 0 0 1px rgba(0,0,0,0.2);transition:all 200ms ease-out}.th:hover,.th:focus{box-shadow:0 0 6px 1px rgba(0,140,186,0.5)}.th.radius{border-radius:3px}.toolbar{background:#333;width:100%;font-size:0;display:inline-block}.toolbar.label-bottom .tab .tab-content i,.toolbar.label-bottom .tab .tab-content img{margin-bottom:10px}.toolbar.label-right .tab .tab-content i,.toolbar.label-right .tab .tab-content img{margin-right:10px;display:inline-block}.toolbar.label-right .tab .tab-content label{display:inline-block}.toolbar.vertical.label-right .tab .tab-content{text-align:left}.toolbar.vertical{height:100%;width:auto}.toolbar.vertical .tab{width:auto;margin:auto;float:none}.toolbar .tab{text-align:center;width:25%;margin:0 auto;display:block;padding:20px;float:left}.toolbar .tab:hover{background:rgba(255,255,255,0.1)}.toolbar .tab-content{font-size:16px;text-align:center}.toolbar .tab-content label{color:#ccc}.toolbar .tab-content i{font-size:30px;display:block;margin:0 auto;color:#ccc;vertical-align:middle}.toolbar .tab-content img{width:30px;height:30px;display:block;margin:0 auto}.pricing-table{border:solid 1px #ddd;margin-left:0;margin-bottom:1.25rem}.pricing-table *{list-style:none;line-height:1}.pricing-table .title{background-color:#333;padding:0.9375rem 1.25rem;text-align:center;color:#eee;font-weight:normal;font-size:1rem;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif}.pricing-table .price{background-color:#f6f6f6;padding:0.9375rem 1.25rem;text-align:center;color:#333;font-weight:normal;font-size:2rem;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif}.pricing-table .description{background-color:#fff;padding:0.9375rem;text-align:center;color:#777;font-size:0.75rem;font-weight:normal;line-height:1.4;border-bottom:dotted 1px #ddd}.pricing-table .bullet-item{background-color:#fff;padding:0.9375rem;text-align:center;color:#333;font-size:0.875rem;font-weight:normal;border-bottom:dotted 1px #ddd}.pricing-table .cta-button{background-color:#fff;text-align:center;padding:1.25rem 1.25rem 0}@-webkit-keyframes rotate{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@-moz-keyframes rotate{from{-moz-transform:rotate(0deg)}to{-moz-transform:rotate(360deg)}}@-o-keyframes rotate{from{-o-transform:rotate(0deg)}to{-o-transform:rotate(360deg)}}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.slideshow-wrapper{position:relative}.slideshow-wrapper ul{list-style-type:none;margin:0}.slideshow-wrapper ul li,.slideshow-wrapper ul li .orbit-caption{display:none}.slideshow-wrapper ul li:first-child{display:block}.slideshow-wrapper .orbit-container{background-color:transparent}.slideshow-wrapper .orbit-container li{display:block}.slideshow-wrapper .orbit-container li .orbit-caption{display:block}.slideshow-wrapper .orbit-container .orbit-bullets li{display:inline-block}.slideshow-wrapper .preloader{display:block;width:40px;height:40px;position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-20px;border:solid 3px;border-color:#555 #fff;border-radius:1000px;animation-name:rotate;animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:linear}.orbit-container{overflow:hidden;width:100%;position:relative;background:none}.orbit-container .orbit-slides-container{list-style:none;margin:0;padding:0;position:relative;-webkit-transform:translateZ(0)}.orbit-container .orbit-slides-container img{display:block;max-width:100%}.orbit-container .orbit-slides-container>*{position:absolute;top:0;width:100%;margin-left:100%}.orbit-container .orbit-slides-container>*:first-child{margin-left:0%}.orbit-container .orbit-slides-container>* .orbit-caption{position:absolute;bottom:0;background-color:rgba(51,51,51,0.8);color:#fff;width:100%;padding:0.625rem 0.875rem;font-size:0.875rem}.orbit-container .orbit-slide-number{position:absolute;top:10px;left:10px;font-size:12px;color:#fff;background:rgba(0,0,0,0);z-index:10}.orbit-container .orbit-slide-number span{font-weight:700;padding:0.3125rem}.orbit-container .orbit-timer{position:absolute;top:12px;right:10px;height:6px;width:100px;z-index:10}.orbit-container .orbit-timer .orbit-progress{height:3px;background-color:rgba(255,255,255,0.3);display:block;width:0%;position:relative;right:20px;top:5px}.orbit-container .orbit-timer>span{display:none;position:absolute;top:0px;right:0;width:11px;height:14px;border:solid 4px #fff;border-top:none;border-bottom:none}.orbit-container .orbit-timer.paused>span{right:-4px;top:0px;width:11px;height:14px;border:inset 8px;border-left-style:solid;border-color:transparent;border-left-color:#fff}.orbit-container .orbit-timer.paused>span.dark{border-left-color:#333}.orbit-container:hover .orbit-timer>span{display:block}.orbit-container .orbit-prev,.orbit-container .orbit-next{position:absolute;top:45%;margin-top:-25px;width:36px;height:60px;line-height:50px;color:white;background-color:transparent;text-indent:-9999px !important;z-index:10}.orbit-container .orbit-prev:hover,.orbit-container .orbit-next:hover{background-color:rgba(0,0,0,0.3)}.orbit-container .orbit-prev>span,.orbit-container .orbit-next>span{position:absolute;top:50%;margin-top:-10px;display:block;width:0;height:0;border:inset 10px}.orbit-container .orbit-prev{left:0}.orbit-container .orbit-prev>span{border-right-style:solid;border-color:transparent;border-right-color:#fff}.orbit-container .orbit-prev:hover>span{border-right-color:#fff}.orbit-container .orbit-next{right:0}.orbit-container .orbit-next>span{border-color:transparent;border-left-style:solid;border-left-color:#fff;left:50%;margin-left:-4px}.orbit-container .orbit-next:hover>span{border-left-color:#fff}.orbit-bullets-container{text-align:center}.orbit-bullets{margin:0 auto 30px auto;overflow:hidden;position:relative;top:10px;float:none;text-align:center;display:block}.orbit-bullets li{cursor:pointer;display:inline-block;width:0.5625rem;height:0.5625rem;background:#ccc;float:none;margin-right:6px;border-radius:1000px}.orbit-bullets li.active{background:#999}.orbit-bullets li:last-child{margin-right:0}.touch .orbit-container .orbit-prev,.touch .orbit-container .orbit-next{display:none}.touch .orbit-bullets{display:none}@media only screen and (min-width: 40.063em){.touch .orbit-container .orbit-prev,.touch .orbit-container .orbit-next{display:inherit}.touch .orbit-bullets{display:block}}@media only screen and (max-width: 40em){.orbit-stack-on-small .orbit-slides-container{height:auto !important}.orbit-stack-on-small .orbit-slides-container>*{position:relative;margin:0% !important;opacity:1 !important}.orbit-stack-on-small .orbit-slide-number{display:none}.orbit-timer{display:none}.orbit-next,.orbit-prev{display:none}.orbit-bullets{display:none}}[data-magellan-expedition],[data-magellan-expedition-clone]{background:#fff;z-index:50;min-width:100%;padding:10px}[data-magellan-expedition] .sub-nav,[data-magellan-expedition-clone] .sub-nav{margin-bottom:0}[data-magellan-expedition] .sub-nav dd,[data-magellan-expedition-clone] .sub-nav dd{margin-bottom:0}[data-magellan-expedition] .sub-nav a,[data-magellan-expedition-clone] .sub-nav a{line-height:1.8em}.icon-bar{width:100%;font-size:0;display:inline-block;background:#333}.icon-bar>*{text-align:center;font-size:1rem;width:25%;margin:0 auto;display:block;padding:1.25rem;float:left}.icon-bar>* i,.icon-bar>* img{display:block;margin:0 auto}.icon-bar>* i+label,.icon-bar>* img+label{margin-top:.0625rem}.icon-bar>* i{font-size:1.875rem;vertical-align:middle}.icon-bar>* img{width:1.875rem;height:1.875rem}.icon-bar.label-right>* i,.icon-bar.label-right>* img{margin:0 .0625rem 0 0;display:inline-block}.icon-bar.label-right>* i+label,.icon-bar.label-right>* img+label{margin-top:0}.icon-bar.label-right>* label{display:inline-block}.icon-bar.vertical.label-right>*{text-align:left}.icon-bar.vertical,.icon-bar.small-vertical{height:100%;width:auto}.icon-bar.vertical .item,.icon-bar.small-vertical .item{width:auto;margin:auto;float:none}@media only screen and (min-width: 40.063em){.icon-bar.medium-vertical{height:100%;width:auto}.icon-bar.medium-vertical .item{width:auto;margin:auto;float:none}}@media only screen and (min-width: 64.063em){.icon-bar.large-vertical{height:100%;width:auto}.icon-bar.large-vertical .item{width:auto;margin:auto;float:none}}.icon-bar>*{font-size:1rem;padding:1.25rem}.icon-bar>* i+label,.icon-bar>* img+label{margin-top:.0625rem}.icon-bar>* i{font-size:1.875rem}.icon-bar>* img{width:1.875rem;height:1.875rem}.icon-bar>*:hover{background:#008cba}.icon-bar>* label{color:#fff}.icon-bar>* i{color:#fff}.icon-bar.two-up .item{width:50%}.icon-bar.two-up.vertical .item,.icon-bar.two-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.063em){.icon-bar.two-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.063em){.icon-bar.two-up.large-vertical .item{width:auto}}.icon-bar.three-up .item{width:33.3333%}.icon-bar.three-up.vertical .item,.icon-bar.three-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.063em){.icon-bar.three-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.063em){.icon-bar.three-up.large-vertical .item{width:auto}}.icon-bar.four-up .item{width:25%}.icon-bar.four-up.vertical .item,.icon-bar.four-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.063em){.icon-bar.four-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.063em){.icon-bar.four-up.large-vertical .item{width:auto}}.icon-bar.five-up .item{width:20%}.icon-bar.five-up.vertical .item,.icon-bar.five-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.063em){.icon-bar.five-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.063em){.icon-bar.five-up.large-vertical .item{width:auto}}.icon-bar.six-up .item{width:16.66667%}.icon-bar.six-up.vertical .item,.icon-bar.six-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.063em){.icon-bar.six-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.063em){.icon-bar.six-up.large-vertical .item{width:auto}}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}.text-justify{text-align:justify !important}@media only screen and (max-width: 40em){.small-only-text-left{text-align:left !important}.small-only-text-right{text-align:right !important}.small-only-text-center{text-align:center !important}.small-only-text-justify{text-align:justify !important}}@media only screen{.small-text-left{text-align:left !important}.small-text-right{text-align:right !important}.small-text-center{text-align:center !important}.small-text-justify{text-align:justify !important}}@media only screen and (min-width: 40.063em) and (max-width: 64em){.medium-only-text-left{text-align:left !important}.medium-only-text-right{text-align:right !important}.medium-only-text-center{text-align:center !important}.medium-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 40.063em){.medium-text-left{text-align:left !important}.medium-text-right{text-align:right !important}.medium-text-center{text-align:center !important}.medium-text-justify{text-align:justify !important}}@media only screen and (min-width: 64.063em) and (max-width: 90em){.large-only-text-left{text-align:left !important}.large-only-text-right{text-align:right !important}.large-only-text-center{text-align:center !important}.large-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 64.063em){.large-text-left{text-align:left !important}.large-text-right{text-align:right !important}.large-text-center{text-align:center !important}.large-text-justify{text-align:justify !important}}@media only screen and (min-width: 90.063em) and (max-width: 120em){.xlarge-only-text-left{text-align:left !important}.xlarge-only-text-right{text-align:right !important}.xlarge-only-text-center{text-align:center !important}.xlarge-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 90.063em){.xlarge-text-left{text-align:left !important}.xlarge-text-right{text-align:right !important}.xlarge-text-center{text-align:center !important}.xlarge-text-justify{text-align:justify !important}}@media only screen and (min-width: 120.063em) and (max-width: 99999999em){.xxlarge-only-text-left{text-align:left !important}.xxlarge-only-text-right{text-align:right !important}.xxlarge-only-text-center{text-align:center !important}.xxlarge-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 120.063em){.xxlarge-text-left{text-align:left !important}.xxlarge-text-right{text-align:right !important}.xxlarge-text-center{text-align:center !important}.xxlarge-text-justify{text-align:justify !important}}div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}a{color:#008cba;text-decoration:none;line-height:inherit}a:hover,a:focus{color:#0078a0}a img{border:none}p{font-family:inherit;font-weight:normal;font-size:1rem;line-height:1.6;margin-bottom:1.25rem;text-rendering:optimizeLegibility}p.lead{font-size:1.21875rem;line-height:1.6}p aside{font-size:0.875rem;line-height:1.35;font-style:italic}h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;font-style:normal;color:#222;text-rendering:optimizeLegibility;margin-top:0.2rem;margin-bottom:0.5rem;line-height:1.4}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-size:60%;color:#6f6f6f;line-height:0}h1{font-size:2.125rem}h2{font-size:1.6875rem}h3{font-size:1.375rem}h4{font-size:1.125rem}h5{font-size:1.125rem}h6{font-size:1rem}.subheader{line-height:1.4;color:#6f6f6f;font-weight:normal;margin-top:0.2rem;margin-bottom:0.5rem}hr{border:solid #ddd;border-width:1px 0 0;clear:both;margin:1.25rem 0 1.1875rem;height:0}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:bold;line-height:inherit}small{font-size:60%;line-height:inherit}code{font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:normal;color:#333;background-color:#f8f8f8;border-width:1px;border-style:solid;border-color:#dfdfdf;padding:0.125rem 0.3125rem 0.0625rem}ul,ol,dl{font-size:1rem;line-height:1.6;margin-bottom:1.25rem;list-style-position:outside;font-family:inherit}ul{margin-left:1.1rem}ul.no-bullet{margin-left:0}ul.no-bullet li ul,ul.no-bullet li ol{margin-left:1.25rem;margin-bottom:0;list-style:none}ul li ul,ul li ol{margin-left:1.25rem;margin-bottom:0}ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}ul.square{list-style-type:square;margin-left:1.1rem}ul.circle{list-style-type:circle;margin-left:1.1rem}ul.disc{list-style-type:disc;margin-left:1.1rem}ul.no-bullet{list-style:none}ol{margin-left:1.4rem}ol li ul,ol li ol{margin-left:1.25rem;margin-bottom:0}dl dt{margin-bottom:0.3rem;font-weight:bold}dl dd{margin-bottom:0.75rem}abbr,acronym{text-transform:uppercase;font-size:90%;color:#222;cursor:help}abbr{text-transform:none}abbr[title]{border-bottom:1px dotted #ddd}blockquote{margin:0 0 1.25rem;padding:0.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #ddd}blockquote cite{display:block;font-size:0.8125rem;color:#555}blockquote cite:before{content:"\2014 \0020"}blockquote cite a,blockquote cite a:visited{color:#555}blockquote,blockquote p{line-height:1.6;color:#6f6f6f}.vcard{display:inline-block;margin:0 0 1.25rem 0;border:1px solid #ddd;padding:0.625rem 0.75rem}.vcard li{margin:0;display:block}.vcard .fn{font-weight:bold;font-size:0.9375rem}.vevent .summary{font-weight:bold}.vevent abbr{cursor:default;text-decoration:none;font-weight:bold;border:none;padding:0 0.0625rem}@media only screen and (min-width: 40.063em){h1,h2,h3,h4,h5,h6{line-height:1.4}h1{font-size:2.75rem}h2{font-size:2.3125rem}h3{font-size:1.6875rem}h4{font-size:1.4375rem}h5{font-size:1.125rem}h6{font-size:1rem}}.print-only{display:none !important}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.hide-on-print{display:none !important}.print-only{display:block !important}.hide-for-print{display:none !important}.show-for-print{display:inherit !important}}.tabs{margin-bottom:0 !important;margin-left:0}.tabs:before,.tabs:after{content:" ";display:table}.tabs:after{clear:both}.tabs dd,.tabs .tab-title{position:relative;margin-bottom:0 !important;list-style:none;float:left}.tabs dd>a,.tabs .tab-title>a{display:block;background-color:#efefef;color:#222;padding:1rem 2rem;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:1rem}.tabs dd>a:hover,.tabs .tab-title>a:hover{background-color:#e1e1e1}.tabs dd.active a,.tabs .tab-title.active a{background-color:#fff;color:#222}.tabs.radius dd:first-child a,.tabs.radius .tab:first-child a{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.tabs.radius dd:last-child a,.tabs.radius .tab:last-child a{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.tabs.vertical dd,.tabs.vertical .tab-title{position:inherit;float:none;display:block;top:auto}.tabs-content{margin-bottom:1.5rem;width:100%}.tabs-content:before,.tabs-content:after{content:" ";display:table}.tabs-content:after{clear:both}.tabs-content>.content{display:none;float:left;padding:0.9375rem 0;width:100%}.tabs-content>.content.active{display:block;float:none}.tabs-content>.content.contained{padding:0.9375rem}.tabs-content.vertical{display:block}.tabs-content.vertical>.content{padding:0 0.9375rem}@media only screen and (min-width: 40.063em){.tabs.vertical{width:20%;max-width:20%;float:left;margin:0 0 1.25rem}.tabs-content.vertical{width:80%;max-width:80%;float:left;margin-left:-1px;padding-left:1rem}}.no-js .tabs-content>.content{display:block;float:none}ul.pagination{display:block;min-height:1.5rem;margin-left:-0.3125rem}ul.pagination li{height:1.5rem;color:#222;font-size:0.875rem;margin-left:0.3125rem}ul.pagination li a,ul.pagination li button{display:block;padding:0.0625rem 0.625rem 0.0625rem;color:#999;background:none;border-radius:3px;font-weight:normal;font-size:1em;line-height:inherit;transition:background-color 300ms ease-out}ul.pagination li:hover a,ul.pagination li a:focus,ul.pagination li:hover button,ul.pagination li button:focus{background:#e6e6e6}ul.pagination li.unavailable a,ul.pagination li.unavailable button{cursor:default;color:#999}ul.pagination li.unavailable:hover a,ul.pagination li.unavailable a:focus,ul.pagination li.unavailable:hover button,ul.pagination li.unavailable button:focus{background:transparent}ul.pagination li.current a,ul.pagination li.current button{background:#008cba;color:#fff;font-weight:bold;cursor:default}ul.pagination li.current a:hover,ul.pagination li.current a:focus,ul.pagination li.current button:hover,ul.pagination li.current button:focus{background:#008cba}ul.pagination li{float:left;display:block}.pagination-centered{text-align:center}.pagination-centered ul.pagination li{float:none;display:inline-block}.side-nav{display:block;margin:0;padding:0.875rem 0;list-style-type:none;list-style-position:outside;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif}.side-nav li{margin:0 0 0.4375rem 0;font-size:0.875rem;font-weight:normal}.side-nav li a:not(.button){display:block;color:#008cba;margin:0;padding:0.4375rem 0.875rem}.side-nav li a:not(.button):hover,.side-nav li a:not(.button):focus{background:rgba(0,0,0,0.025);color:#1cc7ff}.side-nav li.active>a:first-child:not(.button){color:#1cc7ff;font-weight:normal;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif}.side-nav li.divider{border-top:1px solid;height:0;padding:0;list-style:none;border-top-color:#fff}.side-nav li.heading{color:#008cba;font-size:0.875rem;font-weight:bold;text-transform:uppercase}.accordion{margin-bottom:0}.accordion:before,.accordion:after{content:" ";display:table}.accordion:after{clear:both}.accordion .accordion-navigation,.accordion dd{display:block;margin-bottom:0 !important}.accordion .accordion-navigation.active>a,.accordion dd.active>a{background:#e8e8e8}.accordion .accordion-navigation>a,.accordion dd>a{background:#efefef;color:#222;padding:1rem;display:block;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:1rem}.accordion .accordion-navigation>a:hover,.accordion dd>a:hover{background:#e3e3e3}.accordion .accordion-navigation>.content,.accordion dd>.content{display:none;padding:0.9375rem}.accordion .accordion-navigation>.content.active,.accordion dd>.content.active{display:block;background:#fff}.split.button{position:relative;padding-right:5.0625rem}.split.button span{display:block;height:100%;position:absolute;right:0;top:0;border-left:solid 1px}.split.button span:after{position:absolute;content:"";width:0;height:0;display:block;border-style:inset;top:50%;left:50%}.split.button span:active{background-color:rgba(0,0,0,0.1)}.split.button span{border-left-color:rgba(255,255,255,0.5)}.split.button span{width:3.09375rem}.split.button span:after{border-top-style:solid;border-width:0.375rem;top:48%;margin-left:-0.375rem}.split.button span:after{border-color:#fff transparent transparent transparent}.split.button.secondary span{border-left-color:rgba(255,255,255,0.5)}.split.button.secondary span:after{border-color:#fff transparent transparent transparent}.split.button.alert span{border-left-color:rgba(255,255,255,0.5)}.split.button.success span{border-left-color:rgba(255,255,255,0.5)}.split.button.tiny{padding-right:3.75rem}.split.button.tiny span{width:2.25rem}.split.button.tiny span:after{border-top-style:solid;border-width:0.375rem;top:48%;margin-left:-0.375rem}.split.button.small{padding-right:4.375rem}.split.button.small span{width:2.625rem}.split.button.small span:after{border-top-style:solid;border-width:0.4375rem;top:48%;margin-left:-0.375rem}.split.button.large{padding-right:5.5rem}.split.button.large span{width:3.4375rem}.split.button.large span:after{border-top-style:solid;border-width:0.3125rem;top:48%;margin-left:-0.375rem}.split.button.expand{padding-left:2rem}.split.button.secondary span:after{border-color:#333 transparent transparent transparent}.split.button.radius span{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.split.button.round span{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}.reveal-modal-bg{position:fixed;top:0;bottom:0;left:0;right:0;background:#000;background:rgba(0,0,0,0.45);z-index:1004;display:none;left:0}.reveal-modal,dialog{visibility:hidden;display:none;position:absolute;z-index:1005;width:100vw;top:0;border-radius:3px;left:0;background-color:#fff;padding:1.25rem;border:solid 1px #666;box-shadow:0 0 10px rgba(0,0,0,0.4);padding:1.875rem}@media only screen and (max-width: 40em){.reveal-modal,dialog{min-height:100vh}}.reveal-modal .column,dialog .column,.reveal-modal .columns,dialog .columns{min-width:0}.reveal-modal>:first-child,dialog>:first-child{margin-top:0}.reveal-modal>:last-child,dialog>:last-child{margin-bottom:0}@media only screen and (min-width: 40.063em){.reveal-modal,dialog{width:80%;max-width:62.5rem;left:0;right:0;margin:0 auto}}@media only screen and (min-width: 40.063em){.reveal-modal,dialog{top:6.25rem}}.reveal-modal.radius,dialog.radius{border-radius:3px}.reveal-modal.round,dialog.round{border-radius:1000px}.reveal-modal.collapse,dialog.collapse{padding:0}@media only screen and (min-width: 40.063em){.reveal-modal.tiny,dialog.tiny{width:30%;max-width:62.5rem;left:0;right:0;margin:0 auto}}@media only screen and (min-width: 40.063em){.reveal-modal.small,dialog.small{width:40%;max-width:62.5rem;left:0;right:0;margin:0 auto}}@media only screen and (min-width: 40.063em){.reveal-modal.medium,dialog.medium{width:60%;max-width:62.5rem;left:0;right:0;margin:0 auto}}@media only screen and (min-width: 40.063em){.reveal-modal.large,dialog.large{width:70%;max-width:62.5rem;left:0;right:0;margin:0 auto}}@media only screen and (min-width: 40.063em){.reveal-modal.xlarge,dialog.xlarge{width:95%;max-width:62.5rem;left:0;right:0;margin:0 auto}}.reveal-modal.full,dialog.full{top:0;left:0;height:100%;height:100vh;min-height:100vh;margin-left:0 !important}@media only screen and (min-width: 40.063em){.reveal-modal.full,dialog.full{width:100vw;max-width:62.5rem;left:0;right:0;margin:0 auto}}.reveal-modal .close-reveal-modal,dialog .close-reveal-modal{font-size:2.5rem;line-height:1;position:absolute;top:0.5rem;right:0.6875rem;color:#aaa;font-weight:bold;cursor:pointer}dialog{display:none}dialog::backdrop,dialog+.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;background:#000;background:rgba(0,0,0,0.45);z-index:auto;display:none;left:0}dialog[open]{display:block}@media print{dialog,.reveal-modal,dialog{display:none;background:#fff !important}}.has-tip{border-bottom:dotted 1px #ccc;cursor:help;font-weight:bold;color:#333}.has-tip:hover,.has-tip:focus{border-bottom:dotted 1px #003f54;color:#008cba}.has-tip.tip-left,.has-tip.tip-right{float:none !important}.tooltip{display:none;position:absolute;z-index:1006;font-weight:normal;font-size:0.875rem;line-height:1.3;padding:0.75rem;max-width:300px;left:50%;width:100%;color:#fff;background:#333}.tooltip>.nub{display:block;left:5px;position:absolute;width:0;height:0;border:solid 5px;border-color:transparent transparent #333 transparent;top:-10px;pointer-events:none}.tooltip>.nub.rtl{left:auto;right:5px}.tooltip.radius{border-radius:3px}.tooltip.round{border-radius:1000px}.tooltip.round>.nub{left:2rem}.tooltip.opened{color:#008cba !important;border-bottom:dotted 1px #003f54 !important}.tap-to-close{display:block;font-size:0.625rem;color:#777;font-weight:normal}@media only screen and (min-width: 40.063em){.tooltip>.nub{border-color:transparent transparent #333 transparent;top:-10px}.tooltip.tip-top>.nub{border-color:#333 transparent transparent transparent;top:auto;bottom:-10px}.tooltip.tip-left,.tooltip.tip-right{float:none !important}.tooltip.tip-left>.nub{border-color:transparent transparent transparent #333;right:-10px;left:auto;top:50%;margin-top:-5px}.tooltip.tip-right>.nub{border-color:transparent #333 transparent transparent;right:auto;left:-10px;top:50%;margin-top:-5px}}.clearing-thumbs,[data-clearing]{margin-bottom:0;margin-left:0;list-style:none}.clearing-thumbs:before,.clearing-thumbs:after,[data-clearing]:before,[data-clearing]:after{content:" ";display:table}.clearing-thumbs:after,[data-clearing]:after{clear:both}.clearing-thumbs li,[data-clearing] li{float:left;margin-right:10px}.clearing-thumbs[class*="block-grid-"] li,[data-clearing][class*="block-grid-"] li{margin-right:0}.clearing-blackout{background:#333;position:fixed;width:100%;height:100%;top:0;left:0;z-index:998}.clearing-blackout .clearing-close{display:block}.clearing-container{position:relative;z-index:998;height:100%;overflow:hidden;margin:0}.clearing-touch-label{position:absolute;top:50%;left:50%;color:#aaa;font-size:0.6em}.visible-img{height:95%;position:relative}.visible-img img{position:absolute;left:50%;top:50%;margin-left:-50%;max-height:100%;max-width:100%}.clearing-caption{color:#ccc;font-size:0.875em;line-height:1.3;margin-bottom:0;text-align:center;bottom:0;background:#333;width:100%;padding:10px 30px 20px;position:absolute;left:0}.clearing-close{z-index:999;padding-left:20px;padding-top:10px;font-size:30px;line-height:1;color:#ccc;display:none}.clearing-close:hover,.clearing-close:focus{color:#ccc}.clearing-assembled .clearing-container{height:100%}.clearing-assembled .clearing-container .carousel>ul{display:none}.clearing-feature li{display:none}.clearing-feature li.clearing-featured-img{display:block}@media only screen and (min-width: 40.063em){.clearing-main-prev,.clearing-main-next{position:absolute;height:100%;width:40px;top:0}.clearing-main-prev>span,.clearing-main-next>span{position:absolute;top:50%;display:block;width:0;height:0;border:solid 12px}.clearing-main-prev>span:hover,.clearing-main-next>span:hover{opacity:0.8}.clearing-main-prev{left:0}.clearing-main-prev>span{left:5px;border-color:transparent;border-right-color:#ccc}.clearing-main-next{right:0}.clearing-main-next>span{border-color:transparent;border-left-color:#ccc}.clearing-main-prev.disabled,.clearing-main-next.disabled{opacity:0.3}.clearing-assembled .clearing-container .carousel{background:rgba(51,51,51,0.8);height:120px;margin-top:10px;text-align:center}.clearing-assembled .clearing-container .carousel>ul{display:inline-block;z-index:999;height:100%;position:relative;float:none}.clearing-assembled .clearing-container .carousel>ul li{display:block;width:120px;min-height:inherit;float:left;overflow:hidden;margin-right:0;padding:0;position:relative;cursor:pointer;opacity:0.4;clear:none}.clearing-assembled .clearing-container .carousel>ul li.fix-height img{height:100%;max-width:none}.clearing-assembled .clearing-container .carousel>ul li a.th{border:none;box-shadow:none;display:block}.clearing-assembled .clearing-container .carousel>ul li img{cursor:pointer !important;width:100% !important}.clearing-assembled .clearing-container .carousel>ul li.visible{opacity:1}.clearing-assembled .clearing-container .carousel>ul li:hover{opacity:0.8}.clearing-assembled .clearing-container .visible-img{background:#333;overflow:hidden;height:85%}.clearing-close{position:absolute;top:10px;right:20px;padding-left:0;padding-top:0}}.progress{background-color:#f6f6f6;height:1.5625rem;border:1px solid #fff;padding:0.125rem;margin-bottom:0.625rem}.progress .meter{background:#008cba;height:100%;display:block}.progress.secondary .meter{background:#e7e7e7;height:100%;display:block}.progress.success .meter{background:#43ac6a;height:100%;display:block}.progress.alert .meter{background:#f04124;height:100%;display:block}.progress.radius{border-radius:3px}.progress.radius .meter{border-radius:2px}.progress.round{border-radius:1000px}.progress.round .meter{border-radius:999px}.sub-nav{display:block;width:auto;overflow:hidden;margin:-0.25rem 0 1.125rem;padding-top:0.25rem;margin-right:0;margin-left:-0.75rem}.sub-nav dt{text-transform:uppercase}.sub-nav dt,.sub-nav dd,.sub-nav li{float:left;display:inline;margin-left:1rem;margin-bottom:0.625rem;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;font-size:0.875rem;color:#999}.sub-nav dt a,.sub-nav dd a,.sub-nav li a{text-decoration:none;color:#999;padding:0.1875rem 1rem}.sub-nav dt a:hover,.sub-nav dd a:hover,.sub-nav li a:hover{color:#737373}.sub-nav dt.active a,.sub-nav dd.active a,.sub-nav li.active a{border-radius:3px;font-weight:normal;background:#008cba;padding:0.1875rem 1rem;cursor:default;color:#fff}.sub-nav dt.active a:hover,.sub-nav dd.active a:hover,.sub-nav li.active a:hover{background:#0078a0}.joyride-list{display:none}.joyride-tip-guide{display:none;position:absolute;background:#333;color:#fff;z-index:101;top:0;left:2.5%;font-family:inherit;font-weight:normal;width:95%}.lt-ie9 .joyride-tip-guide{max-width:800px;left:50%;margin-left:-400px}.joyride-content-wrapper{width:100%;padding:1.125rem 1.25rem 1.5rem}.joyride-content-wrapper .button{margin-bottom:0 !important}.joyride-content-wrapper .joyride-prev-tip{margin-right:10px}.joyride-tip-guide .joyride-nub{display:block;position:absolute;left:22px;width:0;height:0;border:10px solid #333}.joyride-tip-guide .joyride-nub.top{border-top-style:solid;border-color:#333;border-top-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;top:-20px}.joyride-tip-guide .joyride-nub.bottom{border-bottom-style:solid;border-color:#333 !important;border-bottom-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;bottom:-20px}.joyride-tip-guide .joyride-nub.right{right:-20px}.joyride-tip-guide .joyride-nub.left{left:-20px}.joyride-tip-guide h1,.joyride-tip-guide h2,.joyride-tip-guide h3,.joyride-tip-guide h4,.joyride-tip-guide h5,.joyride-tip-guide h6{line-height:1.25;margin:0;font-weight:bold;color:#fff}.joyride-tip-guide p{margin:0 0 1.125rem 0;font-size:0.875rem;line-height:1.3}.joyride-timer-indicator-wrap{width:50px;height:3px;border:solid 1px #555;position:absolute;right:1.0625rem;bottom:1rem}.joyride-timer-indicator{display:block;width:0;height:inherit;background:#666}.joyride-close-tip{position:absolute;right:12px;top:10px;color:#777 !important;text-decoration:none;font-size:24px;font-weight:normal;line-height:.5 !important}.joyride-close-tip:hover,.joyride-close-tip:focus{color:#eee !important}.joyride-modal-bg{position:fixed;height:100%;width:100%;background:transparent;background:rgba(0,0,0,0.5);z-index:100;display:none;top:0;left:0;cursor:pointer}.joyride-expose-wrapper{background-color:#fff;position:absolute;border-radius:3px;z-index:102;box-shadow:0 0 15px #fff}.joyride-expose-cover{background:transparent;border-radius:3px;position:absolute;z-index:9999;top:0;left:0}@media only screen and (min-width: 40.063em){.joyride-tip-guide{width:300px;left:inherit}.joyride-tip-guide .joyride-nub.bottom{border-color:#333 !important;border-bottom-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;bottom:-20px}.joyride-tip-guide .joyride-nub.right{border-color:#333 !important;border-top-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important;top:22px;left:auto;right:-20px}.joyride-tip-guide .joyride-nub.left{border-color:#333 !important;border-top-color:transparent !important;border-left-color:transparent !important;border-bottom-color:transparent !important;top:22px;left:-20px;right:auto}}.label{font-weight:normal;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;text-align:center;text-decoration:none;line-height:1;white-space:nowrap;display:inline-block;position:relative;margin-bottom:inherit;padding:0.25rem 0.5rem 0.25rem;font-size:0.6875rem;background-color:#008cba;color:#fff}.label.radius{border-radius:3px}.label.round{border-radius:1000px}.label.alert{background-color:#f04124;color:#fff}.label.warning{background-color:#f08a24;color:#fff}.label.success{background-color:#43ac6a;color:#fff}.label.secondary{background-color:#e7e7e7;color:#333}.label.info{background-color:#a0d3e8;color:#333}.off-canvas-wrap{-webkit-backface-visibility:hidden;position:relative;width:100%;overflow:hidden}.off-canvas-wrap.move-right,.off-canvas-wrap.move-left{min-height:100%;-webkit-overflow-scrolling:touch}.inner-wrap{-webkit-backface-visibility:hidden;position:relative;width:100%;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.inner-wrap:before,.inner-wrap:after{content:" ";display:table}.inner-wrap:after{clear:both}.tab-bar{-webkit-backface-visibility:hidden;background:#333;color:#fff;height:2.8125rem;line-height:2.8125rem;position:relative}.tab-bar h1,.tab-bar h2,.tab-bar h3,.tab-bar h4,.tab-bar h5,.tab-bar h6{color:#fff;font-weight:bold;line-height:2.8125rem;margin:0}.tab-bar h1,.tab-bar h2,.tab-bar h3,.tab-bar h4{font-size:1.125rem}.left-small{width:2.8125rem;height:2.8125rem;position:absolute;top:0;border-right:solid 1px #1a1a1a;left:0}.right-small{width:2.8125rem;height:2.8125rem;position:absolute;top:0;border-left:solid 1px #1a1a1a;right:0}.tab-bar-section{padding:0 0.625rem;position:absolute;text-align:center;height:2.8125rem;top:0}@media only screen and (min-width: 40.063em){.tab-bar-section.left,.tab-bar-section.right{text-align:left}}.tab-bar-section.left{left:0;right:2.8125rem}.tab-bar-section.right{left:2.8125rem;right:0}.tab-bar-section.middle{left:2.8125rem;right:2.8125rem}.tab-bar .menu-icon{text-indent:2.1875rem;width:2.8125rem;height:2.8125rem;display:block;padding:0;color:#fff;position:relative;transform:translate3d(0, 0, 0)}.tab-bar .menu-icon span::after{content:"";position:absolute;display:block;height:0;top:50%;margin-top:-0.5rem;left:0.90625rem;box-shadow:0 0px 0 1px #fff,0 7px 0 1px #fff,0 14px 0 1px #fff;width:1rem}.tab-bar .menu-icon span:hover:after{box-shadow:0 0px 0 1px #b3b3b3,0 7px 0 1px #b3b3b3,0 14px 0 1px #b3b3b3}.left-off-canvas-menu{-webkit-backface-visibility:hidden;width:15.625rem;top:0;bottom:0;position:absolute;overflow-x:hidden;overflow-y:auto;background:#333;z-index:1001;box-sizing:content-box;transition:transform 500ms ease 0s;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;-ms-transform:translate(-100.5%, 0);-webkit-transform:translate3d(-100.5%, 0, 0);-moz-transform:translate3d(-100.5%, 0, 0);-ms-transform:translate3d(-100.5%, 0, 0);-o-transform:translate3d(-100.5%, 0, 0);transform:translate3d(-100.5%, 0, 0);left:0}.left-off-canvas-menu *{-webkit-backface-visibility:hidden}.right-off-canvas-menu{-webkit-backface-visibility:hidden;width:15.625rem;top:0;bottom:0;position:absolute;overflow-x:hidden;overflow-y:auto;background:#333;z-index:1001;box-sizing:content-box;transition:transform 500ms ease 0s;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;-ms-transform:translate(100.5%, 0);-webkit-transform:translate3d(100.5%, 0, 0);-moz-transform:translate3d(100.5%, 0, 0);-ms-transform:translate3d(100.5%, 0, 0);-o-transform:translate3d(100.5%, 0, 0);transform:translate3d(100.5%, 0, 0);right:0}.right-off-canvas-menu *{-webkit-backface-visibility:hidden}ul.off-canvas-list{list-style-type:none;padding:0;margin:0}ul.off-canvas-list li label{display:block;padding:0.3rem 0.9375rem;color:#999;text-transform:uppercase;font-size:0.75rem;font-weight:bold;background:#444;border-top:1px solid #5e5e5e;border-bottom:none;margin:0}ul.off-canvas-list li a{display:block;padding:0.66667rem;color:rgba(255,255,255,0.7);border-bottom:1px solid #262626;transition:background 300ms ease}ul.off-canvas-list li a:hover{background:#242424}.move-right>.inner-wrap{-ms-transform:translate(15.625rem, 0);-webkit-transform:translate3d(15.625rem, 0, 0);-moz-transform:translate3d(15.625rem, 0, 0);-ms-transform:translate3d(15.625rem, 0, 0);-o-transform:translate3d(15.625rem, 0, 0);transform:translate3d(15.625rem, 0, 0)}.move-right .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.move-right .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.move-left>.inner-wrap{-ms-transform:translate(-15.625rem, 0);-webkit-transform:translate3d(-15.625rem, 0, 0);-moz-transform:translate3d(-15.625rem, 0, 0);-ms-transform:translate3d(-15.625rem, 0, 0);-o-transform:translate3d(-15.625rem, 0, 0);transform:translate3d(-15.625rem, 0, 0)}.move-left .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.move-left .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap .left-off-canvas-menu,.offcanvas-overlap .right-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.offcanvas-overlap .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap-left .right-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap-left .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.offcanvas-overlap-left .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap-right .left-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap-right .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.offcanvas-overlap-right .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.no-csstransforms .left-off-canvas-menu{left:-15.625rem}.no-csstransforms .right-off-canvas-menu{right:-15.625rem}.no-csstransforms .move-left>.inner-wrap{right:15.625rem}.no-csstransforms .move-right>.inner-wrap{left:15.625rem}.left-submenu{-webkit-backface-visibility:hidden;width:15.625rem;top:0;bottom:0;position:absolute;margin:0;overflow-x:hidden;overflow-y:auto;background:#333;z-index:1002;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-transform:translate(-100%, 0);-webkit-transform:translate3d(-100%, 0, 0);-moz-transform:translate3d(-100%, 0, 0);-ms-transform:translate3d(-100%, 0, 0);-o-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.left-submenu *{-webkit-backface-visibility:hidden}.left-submenu .back>a{padding:0.3rem 0.9375rem;color:#999;text-transform:uppercase;font-weight:bold;background:#444;border-top:1px solid #5e5e5e;border-bottom:none;margin:0}.left-submenu .back>a:hover{background:#303030;border-top:1px solid #5e5e5e;border-bottom:none}.left-submenu .back>a:before{content:"\AB";margin-right:0.5rem;display:inline}.left-submenu.move-right{-ms-transform:translate(0%, 0);-webkit-transform:translate3d(0%, 0, 0);-moz-transform:translate3d(0%, 0, 0);-ms-transform:translate3d(0%, 0, 0);-o-transform:translate3d(0%, 0, 0);transform:translate3d(0%, 0, 0)}.right-submenu{-webkit-backface-visibility:hidden;width:15.625rem;top:0;bottom:0;position:absolute;margin:0;overflow-x:hidden;overflow-y:auto;background:#333;z-index:1002;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-transform:translate(100%, 0);-webkit-transform:translate3d(100%, 0, 0);-moz-transform:translate3d(100%, 0, 0);-ms-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);right:0;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.right-submenu *{-webkit-backface-visibility:hidden}.right-submenu .back>a{padding:0.3rem 0.9375rem;color:#999;text-transform:uppercase;font-weight:bold;background:#444;border-top:1px solid #5e5e5e;border-bottom:none;margin:0}.right-submenu .back>a:hover{background:#303030;border-top:1px solid #5e5e5e;border-bottom:none}.right-submenu .back>a:after{content:"\BB";margin-left:0.5rem;display:inline}.right-submenu.move-left{-ms-transform:translate(0%, 0);-webkit-transform:translate3d(0%, 0, 0);-moz-transform:translate3d(0%, 0, 0);-ms-transform:translate3d(0%, 0, 0);-o-transform:translate3d(0%, 0, 0);transform:translate3d(0%, 0, 0)}.left-off-canvas-menu ul.off-canvas-list li.has-submenu>a:after{content:"\BB";margin-left:0.5rem;display:inline}.right-off-canvas-menu ul.off-canvas-list li.has-submenu>a:before{content:"\AB";margin-right:0.5rem;display:inline}.f-dropdown{position:absolute;left:-9999px;list-style:none;margin-left:0;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:89;margin-top:2px;max-width:200px}.f-dropdown>*:first-child{margin-top:0}.f-dropdown>*:last-child{margin-bottom:0}.f-dropdown:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:transparent transparent #fff transparent;border-bottom-style:solid;position:absolute;top:-12px;left:10px;z-index:89}.f-dropdown:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:transparent transparent #ccc transparent;border-bottom-style:solid;position:absolute;top:-14px;left:9px;z-index:88}.f-dropdown.right:before{left:auto;right:10px}.f-dropdown.right:after{left:auto;right:9px}.f-dropdown.drop-right{position:absolute;left:-9999px;list-style:none;margin-left:0;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:89;margin-top:0;margin-left:2px;max-width:200px}.f-dropdown.drop-right>*:first-child{margin-top:0}.f-dropdown.drop-right>*:last-child{margin-bottom:0}.f-dropdown.drop-right:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:transparent #fff transparent transparent;border-right-style:solid;position:absolute;top:10px;left:-12px;z-index:89}.f-dropdown.drop-right:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:transparent #ccc transparent transparent;border-right-style:solid;position:absolute;top:9px;left:-14px;z-index:88}.f-dropdown.drop-left{position:absolute;left:-9999px;list-style:none;margin-left:0;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:89;margin-top:0;margin-left:-2px;max-width:200px}.f-dropdown.drop-left>*:first-child{margin-top:0}.f-dropdown.drop-left>*:last-child{margin-bottom:0}.f-dropdown.drop-left:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:transparent transparent transparent #fff;border-left-style:solid;position:absolute;top:10px;right:-12px;left:auto;z-index:89}.f-dropdown.drop-left:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:transparent transparent transparent #ccc;border-left-style:solid;position:absolute;top:9px;right:-14px;left:auto;z-index:88}.f-dropdown.drop-top{position:absolute;left:-9999px;list-style:none;margin-left:0;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:89;margin-top:-2px;margin-left:0;max-width:200px}.f-dropdown.drop-top>*:first-child{margin-top:0}.f-dropdown.drop-top>*:last-child{margin-bottom:0}.f-dropdown.drop-top:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:#fff transparent transparent transparent;border-top-style:solid;position:absolute;top:auto;bottom:-12px;left:10px;right:auto;z-index:89}.f-dropdown.drop-top:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:#ccc transparent transparent transparent;border-top-style:solid;position:absolute;top:auto;bottom:-14px;left:9px;right:auto;z-index:88}.f-dropdown li{font-size:0.875rem;cursor:pointer;line-height:1.125rem;margin:0}.f-dropdown li:hover,.f-dropdown li:focus{background:#eee}.f-dropdown li.radius{border-radius:3px}.f-dropdown li a{display:block;padding:0.5rem;color:#555}.f-dropdown.content{position:absolute;left:-9999px;list-style:none;margin-left:0;padding:1.25rem;width:100%;height:auto;max-height:none;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:89;max-width:200px}.f-dropdown.content>*:first-child{margin-top:0}.f-dropdown.content>*:last-child{margin-bottom:0}.f-dropdown.tiny{max-width:200px}.f-dropdown.small{max-width:300px}.f-dropdown.medium{max-width:500px}.f-dropdown.large{max-width:800px}.f-dropdown.mega{width:100% !important;max-width:100% !important}.f-dropdown.mega.open{left:0 !important}table{background:#fff;margin-bottom:1.25rem;border:solid 1px #ddd;table-layout:auto}table caption{background:transparent;color:#222;font-size:1rem;font-weight:bold}table thead{background:#f5f5f5}table thead tr th,table thead tr td{padding:0.5rem 0.625rem 0.625rem;font-size:0.875rem;font-weight:bold;color:#222}table tfoot{background:#f5f5f5}table tfoot tr th,table tfoot tr td{padding:0.5rem 0.625rem 0.625rem;font-size:0.875rem;font-weight:bold;color:#222}table tr th,table tr td{padding:0.5625rem 0.625rem;font-size:0.875rem;color:#222;text-align:left}table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f9f9f9}table thead tr th,table tfoot tr th,table tfoot tr td,table tbody tr th,table tbody tr td,table tr td{display:table-cell;line-height:1.125rem}.range-slider{display:block;position:relative;width:100%;height:1rem;border:1px solid #ddd;margin:1.25rem 0;-ms-touch-action:none;touch-action:none;background:#fafafa}.range-slider.vertical-range{display:block;position:relative;width:100%;height:1rem;border:1px solid #ddd;margin:1.25rem 0;-ms-touch-action:none;touch-action:none;display:inline-block;width:1rem;height:12.5rem}.range-slider.vertical-range .range-slider-handle{margin-top:0;margin-left:-0.5rem;position:absolute;bottom:-10.5rem}.range-slider.vertical-range .range-slider-active-segment{width:0.875rem;height:auto;bottom:0}.range-slider.radius{background:#fafafa;border-radius:3px}.range-slider.radius .range-slider-handle{background:#008cba;border-radius:3px}.range-slider.radius .range-slider-handle:hover{background:#007ba4}.range-slider.round{background:#fafafa;border-radius:1000px}.range-slider.round .range-slider-handle{background:#008cba;border-radius:1000px}.range-slider.round .range-slider-handle:hover{background:#007ba4}.range-slider.disabled,.range-slider[disabled]{background:#fafafa;cursor:default;opacity:0.7}.range-slider.disabled .range-slider-handle,.range-slider[disabled] .range-slider-handle{background:#008cba;cursor:default;opacity:0.7}.range-slider.disabled .range-slider-handle:hover,.range-slider[disabled] .range-slider-handle:hover{background:#007ba4}.range-slider-active-segment{display:inline-block;position:absolute;height:0.875rem;background:#e5e5e5}.range-slider-handle{display:inline-block;position:absolute;z-index:1;top:-0.3125rem;width:2rem;height:1.375rem;border:1px solid none;cursor:pointer;-ms-touch-action:manipulation;touch-action:manipulation;background:#008cba}.range-slider-handle:hover{background:#007ba4}[class*="block-grid-"]{display:block;padding:0;margin:0 -0.625rem}[class*="block-grid-"]:before,[class*="block-grid-"]:after{content:" ";display:table}[class*="block-grid-"]:after{clear:both}[class*="block-grid-"]>li{display:block;height:auto;float:left;padding:0 0.625rem 1.25rem}@media only screen{.small-block-grid-1>li{width:100%;list-style:none}.small-block-grid-1>li:nth-of-type(1n){clear:none}.small-block-grid-1>li:nth-of-type(1n+1){clear:both}.small-block-grid-2>li{width:50%;list-style:none}.small-block-grid-2>li:nth-of-type(1n){clear:none}.small-block-grid-2>li:nth-of-type(2n+1){clear:both}.small-block-grid-3>li{width:33.33333%;list-style:none}.small-block-grid-3>li:nth-of-type(1n){clear:none}.small-block-grid-3>li:nth-of-type(3n+1){clear:both}.small-block-grid-4>li{width:25%;list-style:none}.small-block-grid-4>li:nth-of-type(1n){clear:none}.small-block-grid-4>li:nth-of-type(4n+1){clear:both}.small-block-grid-5>li{width:20%;list-style:none}.small-block-grid-5>li:nth-of-type(1n){clear:none}.small-block-grid-5>li:nth-of-type(5n+1){clear:both}.small-block-grid-6>li{width:16.66667%;list-style:none}.small-block-grid-6>li:nth-of-type(1n){clear:none}.small-block-grid-6>li:nth-of-type(6n+1){clear:both}.small-block-grid-7>li{width:14.28571%;list-style:none}.small-block-grid-7>li:nth-of-type(1n){clear:none}.small-block-grid-7>li:nth-of-type(7n+1){clear:both}.small-block-grid-8>li{width:12.5%;list-style:none}.small-block-grid-8>li:nth-of-type(1n){clear:none}.small-block-grid-8>li:nth-of-type(8n+1){clear:both}.small-block-grid-9>li{width:11.11111%;list-style:none}.small-block-grid-9>li:nth-of-type(1n){clear:none}.small-block-grid-9>li:nth-of-type(9n+1){clear:both}.small-block-grid-10>li{width:10%;list-style:none}.small-block-grid-10>li:nth-of-type(1n){clear:none}.small-block-grid-10>li:nth-of-type(10n+1){clear:both}.small-block-grid-11>li{width:9.09091%;list-style:none}.small-block-grid-11>li:nth-of-type(1n){clear:none}.small-block-grid-11>li:nth-of-type(11n+1){clear:both}.small-block-grid-12>li{width:8.33333%;list-style:none}.small-block-grid-12>li:nth-of-type(1n){clear:none}.small-block-grid-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width: 40.063em){.medium-block-grid-1>li{width:100%;list-style:none}.medium-block-grid-1>li:nth-of-type(1n){clear:none}.medium-block-grid-1>li:nth-of-type(1n+1){clear:both}.medium-block-grid-2>li{width:50%;list-style:none}.medium-block-grid-2>li:nth-of-type(1n){clear:none}.medium-block-grid-2>li:nth-of-type(2n+1){clear:both}.medium-block-grid-3>li{width:33.33333%;list-style:none}.medium-block-grid-3>li:nth-of-type(1n){clear:none}.medium-block-grid-3>li:nth-of-type(3n+1){clear:both}.medium-block-grid-4>li{width:25%;list-style:none}.medium-block-grid-4>li:nth-of-type(1n){clear:none}.medium-block-grid-4>li:nth-of-type(4n+1){clear:both}.medium-block-grid-5>li{width:20%;list-style:none}.medium-block-grid-5>li:nth-of-type(1n){clear:none}.medium-block-grid-5>li:nth-of-type(5n+1){clear:both}.medium-block-grid-6>li{width:16.66667%;list-style:none}.medium-block-grid-6>li:nth-of-type(1n){clear:none}.medium-block-grid-6>li:nth-of-type(6n+1){clear:both}.medium-block-grid-7>li{width:14.28571%;list-style:none}.medium-block-grid-7>li:nth-of-type(1n){clear:none}.medium-block-grid-7>li:nth-of-type(7n+1){clear:both}.medium-block-grid-8>li{width:12.5%;list-style:none}.medium-block-grid-8>li:nth-of-type(1n){clear:none}.medium-block-grid-8>li:nth-of-type(8n+1){clear:both}.medium-block-grid-9>li{width:11.11111%;list-style:none}.medium-block-grid-9>li:nth-of-type(1n){clear:none}.medium-block-grid-9>li:nth-of-type(9n+1){clear:both}.medium-block-grid-10>li{width:10%;list-style:none}.medium-block-grid-10>li:nth-of-type(1n){clear:none}.medium-block-grid-10>li:nth-of-type(10n+1){clear:both}.medium-block-grid-11>li{width:9.09091%;list-style:none}.medium-block-grid-11>li:nth-of-type(1n){clear:none}.medium-block-grid-11>li:nth-of-type(11n+1){clear:both}.medium-block-grid-12>li{width:8.33333%;list-style:none}.medium-block-grid-12>li:nth-of-type(1n){clear:none}.medium-block-grid-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width: 64.063em){.large-block-grid-1>li{width:100%;list-style:none}.large-block-grid-1>li:nth-of-type(1n){clear:none}.large-block-grid-1>li:nth-of-type(1n+1){clear:both}.large-block-grid-2>li{width:50%;list-style:none}.large-block-grid-2>li:nth-of-type(1n){clear:none}.large-block-grid-2>li:nth-of-type(2n+1){clear:both}.large-block-grid-3>li{width:33.33333%;list-style:none}.large-block-grid-3>li:nth-of-type(1n){clear:none}.large-block-grid-3>li:nth-of-type(3n+1){clear:both}.large-block-grid-4>li{width:25%;list-style:none}.large-block-grid-4>li:nth-of-type(1n){clear:none}.large-block-grid-4>li:nth-of-type(4n+1){clear:both}.large-block-grid-5>li{width:20%;list-style:none}.large-block-grid-5>li:nth-of-type(1n){clear:none}.large-block-grid-5>li:nth-of-type(5n+1){clear:both}.large-block-grid-6>li{width:16.66667%;list-style:none}.large-block-grid-6>li:nth-of-type(1n){clear:none}.large-block-grid-6>li:nth-of-type(6n+1){clear:both}.large-block-grid-7>li{width:14.28571%;list-style:none}.large-block-grid-7>li:nth-of-type(1n){clear:none}.large-block-grid-7>li:nth-of-type(7n+1){clear:both}.large-block-grid-8>li{width:12.5%;list-style:none}.large-block-grid-8>li:nth-of-type(1n){clear:none}.large-block-grid-8>li:nth-of-type(8n+1){clear:both}.large-block-grid-9>li{width:11.11111%;list-style:none}.large-block-grid-9>li:nth-of-type(1n){clear:none}.large-block-grid-9>li:nth-of-type(9n+1){clear:both}.large-block-grid-10>li{width:10%;list-style:none}.large-block-grid-10>li:nth-of-type(1n){clear:none}.large-block-grid-10>li:nth-of-type(10n+1){clear:both}.large-block-grid-11>li{width:9.09091%;list-style:none}.large-block-grid-11>li:nth-of-type(1n){clear:none}.large-block-grid-11>li:nth-of-type(11n+1){clear:both}.large-block-grid-12>li{width:8.33333%;list-style:none}.large-block-grid-12>li:nth-of-type(1n){clear:none}.large-block-grid-12>li:nth-of-type(12n+1){clear:both}}.flex-video{position:relative;padding-top:1.5625rem;padding-bottom:67.5%;height:0;margin-bottom:1rem;overflow:hidden}.flex-video.widescreen{padding-bottom:56.34%}.flex-video.vimeo{padding-top:0}.flex-video iframe,.flex-video object,.flex-video embed,.flex-video video{position:absolute;top:0;left:0;width:100%;height:100%}.keystroke,kbd{background-color:#ededed;border-color:#ddd;color:#222;border-style:solid;border-width:1px;margin:0;font-family:"Consolas","Menlo","Courier",monospace;font-size:inherit;padding:0.125rem 0.25rem 0;border-radius:3px}.switch{padding:0;border:none;position:relative}.switch label{display:block;margin-bottom:1rem;position:relative;color:transparent;background:#ddd;text-indent:100%;width:4rem;height:2rem;cursor:pointer;transition:left 0.15s ease-out}.switch input{opacity:0;position:absolute;top:9px;left:10px;padding:0}.switch input+label{margin-left:0;margin-right:0}.switch label:after{content:"";display:block;background:#fff;position:absolute;top:.25rem;left:.25rem;width:1.5rem;height:1.5rem;-webkit-transition:left 0.15s ease-out;-moz-transition:left 0.15s ease-out;transition:left 0.15s ease-out;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.switch input:checked+label{background:#008cba}.switch input:checked+label:after{left:2.25rem}.switch label{width:4rem;height:2rem}.switch label:after{width:1.5rem;height:1.5rem}.switch input:checked+label:after{left:2.25rem}.switch label{color:transparent;background:#ddd}.switch label:after{background:#fff}.switch input:checked+label{background:#008cba}.switch.large label{width:5rem;height:2.5rem}.switch.large label:after{width:2rem;height:2rem}.switch.large input:checked+label:after{left:2.75rem}.switch.small label{width:3.5rem;height:1.75rem}.switch.small label:after{width:1.25rem;height:1.25rem}.switch.small input:checked+label:after{left:2rem}.switch.tiny label{width:3rem;height:1.5rem}.switch.tiny label:after{width:1rem;height:1rem}.switch.tiny input:checked+label:after{left:1.75rem}.switch.radius label{border-radius:4px}.switch.radius label:after{border-radius:3px}.switch.round{border-radius:1000px}.switch.round label{border-radius:2rem}.switch.round label:after{border-radius:2rem}@media only screen{.show-for-small-only,.show-for-small-up,.show-for-small,.show-for-small-down,.hide-for-medium-only,.hide-for-medium-up,.hide-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.hide-for-small-only,.hide-for-small-up,.hide-for-small,.hide-for-small-down,.show-for-medium-only,.show-for-medium-up,.show-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}.visible-for-small-only,.visible-for-small-up,.visible-for-small,.visible-for-small-down,.hidden-for-medium-only,.hidden-for-medium-up,.hidden-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.hidden-for-small-only,.hidden-for-small-up,.hidden-for-small,.hidden-for-small-down,.visible-for-medium-only,.visible-for-medium-up,.visible-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xxlarge-only,.visible-for-xxlarge-up{position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}table.show-for-small-only,table.show-for-small-up,table.show-for-small,table.show-for-small-down,table.hide-for-medium-only,table.hide-for-medium-up,table.hide-for-medium,table.show-for-medium-down,table.hide-for-large-only,table.hide-for-large-up,table.hide-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table}thead.show-for-small-only,thead.show-for-small-up,thead.show-for-small,thead.show-for-small-down,thead.hide-for-medium-only,thead.hide-for-medium-up,thead.hide-for-medium,thead.show-for-medium-down,thead.hide-for-large-only,thead.hide-for-large-up,thead.hide-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.show-for-small-only,tbody.show-for-small-up,tbody.show-for-small,tbody.show-for-small-down,tbody.hide-for-medium-only,tbody.hide-for-medium-up,tbody.hide-for-medium,tbody.show-for-medium-down,tbody.hide-for-large-only,tbody.hide-for-large-up,tbody.hide-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.show-for-small-only,tr.show-for-small-up,tr.show-for-small,tr.show-for-small-down,tr.hide-for-medium-only,tr.hide-for-medium-up,tr.hide-for-medium,tr.show-for-medium-down,tr.hide-for-large-only,tr.hide-for-large-up,tr.hide-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.show-for-small-only,td.show-for-small-only,th.show-for-small-up,td.show-for-small-up,th.show-for-small,td.show-for-small,th.show-for-small-down,td.show-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.hide-for-medium-up,td.hide-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.show-for-medium-down,td.show-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.hide-for-large-up,td.hide-for-large-up,th.hide-for-large,td.hide-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 40.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.show-for-medium-only,.show-for-medium-up,.show-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.hide-for-medium-only,.hide-for-medium-up,.hide-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.visible-for-medium-only,.visible-for-medium-up,.visible-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.hidden-for-medium-only,.hidden-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xxlarge-only,.visible-for-xxlarge-up{position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.show-for-medium-only,table.show-for-medium-up,table.show-for-medium,table.show-for-medium-down,table.hide-for-large-only,table.hide-for-large-up,table.hide-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.show-for-medium-only,thead.show-for-medium-up,thead.show-for-medium,thead.show-for-medium-down,thead.hide-for-large-only,thead.hide-for-large-up,thead.hide-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.show-for-medium-only,tbody.show-for-medium-up,tbody.show-for-medium,tbody.show-for-medium-down,tbody.hide-for-large-only,tbody.hide-for-large-up,tbody.hide-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.show-for-medium-only,tr.show-for-medium-up,tr.show-for-medium,tr.show-for-medium-down,tr.hide-for-large-only,tr.hide-for-large-up,tr.hide-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.show-for-medium-only,td.show-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.show-for-medium,td.show-for-medium,th.show-for-medium-down,td.show-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.hide-for-large-up,td.hide-for-large-up,th.hide-for-large,td.hide-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 64.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xxlarge-only,.visible-for-xxlarge-up{position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.show-for-large-only,table.show-for-large-up,table.show-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.show-for-large-only,thead.show-for-large-up,thead.show-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.show-for-large-only,tbody.show-for-large-up,tbody.show-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.show-for-large-only,tr.show-for-large-up,tr.show-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.show-for-large-only,td.show-for-large-only,th.show-for-large-up,td.show-for-large-up,th.show-for-large,td.show-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 90.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.hide-for-large-only,.show-for-large-up,.hide-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.show-for-large-only,.hide-for-large-up,.show-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.hidden-for-large-only,.visible-for-large-up,.hidden-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.visible-for-large-only,.hidden-for-large-up,.visible-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.visible-for-xxlarge-only,.visible-for-xxlarge-up{position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.hide-for-large-only,table.show-for-large-up,table.hide-for-large,table.hide-for-large-down,table.show-for-xlarge-only,table.show-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.hide-for-large-only,thead.show-for-large-up,thead.hide-for-large,thead.hide-for-large-down,thead.show-for-xlarge-only,thead.show-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.hide-for-large-only,tbody.show-for-large-up,tbody.hide-for-large,tbody.hide-for-large-down,tbody.show-for-xlarge-only,tbody.show-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.hide-for-large-only,tr.show-for-large-up,tr.hide-for-large,tr.hide-for-large-down,tr.show-for-xlarge-only,tr.show-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.show-for-large-up,td.show-for-large-up,th.hide-for-large,td.hide-for-large,th.hide-for-large-down,td.hide-for-large-down,th.show-for-xlarge-only,td.show-for-xlarge-only,th.show-for-xlarge-up,td.show-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 120.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.hide-for-large-only,.show-for-large-up,.hide-for-large,.hide-for-large-down,.hide-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.show-for-large-only,.hide-for-large-up,.show-for-large,.show-for-large-down,.show-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.hidden-for-large-only,.visible-for-large-up,.hidden-for-large,.hidden-for-large-down,.hidden-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xxlarge-only,.visible-for-xxlarge-up{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.visible-for-large-only,.hidden-for-large-up,.visible-for-large,.visible-for-large-down,.visible-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up{position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.hide-for-large-only,table.show-for-large-up,table.hide-for-large,table.hide-for-large-down,table.hide-for-xlarge-only,table.show-for-xlarge-up,table.show-for-xxlarge-only,table.show-for-xxlarge-up{display:table}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.hide-for-large-only,thead.show-for-large-up,thead.hide-for-large,thead.hide-for-large-down,thead.hide-for-xlarge-only,thead.show-for-xlarge-up,thead.show-for-xxlarge-only,thead.show-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.hide-for-large-only,tbody.show-for-large-up,tbody.hide-for-large,tbody.hide-for-large-down,tbody.hide-for-xlarge-only,tbody.show-for-xlarge-up,tbody.show-for-xxlarge-only,tbody.show-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.hide-for-large-only,tr.show-for-large-up,tr.hide-for-large,tr.hide-for-large-down,tr.hide-for-xlarge-only,tr.show-for-xlarge-up,tr.show-for-xxlarge-only,tr.show-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.show-for-large-up,td.show-for-large-up,th.hide-for-large,td.hide-for-large,th.hide-for-large-down,td.hide-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.show-for-xlarge-up,td.show-for-xlarge-up,th.show-for-xxlarge-only,td.show-for-xxlarge-only,th.show-for-xxlarge-up,td.show-for-xxlarge-up{display:table-cell !important}}.show-for-landscape,.hide-for-portrait{display:inherit !important}.hide-for-landscape,.show-for-portrait{display:none !important}table.hide-for-landscape,table.show-for-portrait{display:table}thead.hide-for-landscape,thead.show-for-portrait{display:table-header-group !important}tbody.hide-for-landscape,tbody.show-for-portrait{display:table-row-group !important}tr.hide-for-landscape,tr.show-for-portrait{display:table-row !important}td.hide-for-landscape,td.show-for-portrait,th.hide-for-landscape,th.show-for-portrait{display:table-cell !important}@media only screen and (orientation: landscape){.show-for-landscape,.hide-for-portrait{display:inherit !important}.hide-for-landscape,.show-for-portrait{display:none !important}table.show-for-landscape,table.hide-for-portrait{display:table}thead.show-for-landscape,thead.hide-for-portrait{display:table-header-group !important}tbody.show-for-landscape,tbody.hide-for-portrait{display:table-row-group !important}tr.show-for-landscape,tr.hide-for-portrait{display:table-row !important}td.show-for-landscape,td.hide-for-portrait,th.show-for-landscape,th.hide-for-portrait{display:table-cell !important}}@media only screen and (orientation: portrait){.show-for-portrait,.hide-for-landscape{display:inherit !important}.hide-for-portrait,.show-for-landscape{display:none !important}table.show-for-portrait,table.hide-for-landscape{display:table}thead.show-for-portrait,thead.hide-for-landscape{display:table-header-group !important}tbody.show-for-portrait,tbody.hide-for-landscape{display:table-row-group !important}tr.show-for-portrait,tr.hide-for-landscape{display:table-row !important}td.show-for-portrait,td.hide-for-landscape,th.show-for-portrait,th.hide-for-landscape{display:table-cell !important}}.show-for-touch{display:none !important}.hide-for-touch{display:inherit !important}.touch .show-for-touch{display:inherit !important}.touch .hide-for-touch{display:none !important}table.hide-for-touch{display:table}.touch table.show-for-touch{display:table}thead.hide-for-touch{display:table-header-group !important}.touch thead.show-for-touch{display:table-header-group !important}tbody.hide-for-touch{display:table-row-group !important}.touch tbody.show-for-touch{display:table-row-group !important}tr.hide-for-touch{display:table-row !important}.touch tr.show-for-touch{display:table-row !important}td.hide-for-touch{display:table-cell !important}.touch td.show-for-touch{display:table-cell !important}th.hide-for-touch{display:table-cell !important}.touch th.show-for-touch{display:table-cell !important}@media print{.show-for-print{display:block}.hide-for-print{display:none}table.show-for-print{display:table}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{display:table-cell !important}th.show-for-print{display:table-cell !important}} diff --git a/ajax/libs/foundation/5.4.5/css/normalize.css b/ajax/libs/foundation/5.4.5/css/normalize.css new file mode 100644 index 000000000..08f895079 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/css/normalize.css @@ -0,0 +1,425 @@ +/*! normalize.css v3.0.1 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/ajax/libs/foundation/5.4.5/css/normalize.min.css b/ajax/libs/foundation/5.4.5/css/normalize.min.css new file mode 100644 index 000000000..be9fde3f4 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/css/normalize.min.css @@ -0,0 +1 @@ +/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,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{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{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;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation.min.js b/ajax/libs/foundation/5.4.5/js/foundation.min.js new file mode 100644 index 000000000..a9b0c720d --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation.min.js @@ -0,0 +1,10 @@ +/* + * Foundation Responsive Library + * http://foundation.zurb.com + * Copyright 2014, ZURB + * Free to use under the MIT license. + * http://www.opensource.org/licenses/mit-license.php +*/ +(function(e,t,n,r){"use strict";function l(e){if(typeof e=="string"||e instanceof String)e=e.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g,"");return e}var i=function(t){var n=t.length,r=e("head");while(n--)r.has("."+t[n]).length===0&&r.append('')};i(["foundation-mq-small","foundation-mq-medium","foundation-mq-large","foundation-mq-xlarge","foundation-mq-xxlarge","foundation-data-attribute-namespace"]),e(function(){typeof FastClick!="undefined"&&typeof n.body!="undefined"&&FastClick.attach(n.body)});var s=function(t,r){if(typeof t=="string"){if(r){var i;if(r.jquery){i=r[0];if(!i)return r}else i=r;return e(i.querySelectorAll(t))}return e(n.querySelectorAll(t))}return e(t,r)},o=function(e){var t=[];return e||t.push("data"),this.namespace.length>0&&t.push(this.namespace),t.push(this.name),t.join("-")},u=function(e){var t=e.split("-"),n=t.length,r=[];while(n--)n!==0?r.push(t[n]):this.namespace.length>0?r.push(this.namespace,t[n]):r.push(t[n]);return r.reverse().join("-")},a=function(t,n){var r=this,i=!s(this).data(this.attr_name(!0));s(this.scope).is("["+this.attr_name()+"]")?(s(this.scope).data(this.attr_name(!0)+"-init",e.extend({},this.settings,n||t,this.data_options(s(this.scope)))),i&&this.events(this.scope)):s("["+this.attr_name()+"]",this.scope).each(function(){var i=!s(this).data(r.attr_name(!0)+"-init");s(this).data(r.attr_name(!0)+"-init",e.extend({},r.settings,n||t,r.data_options(s(this)))),i&&r.events(this)});if(typeof t=="string")return this[t].call(this,n)},f=function(e,t){function n(){t(e[0])}function r(){this.one("load",n);if(/MSIE (\d+\.\d+);/.test(navigator.userAgent)){var e=this.attr("src"),t=e.match(/\?/)?"&":"?";t+="random="+(new Date).getTime(),this.attr("src",e+t)}}if(!e.attr("src")){n();return}e[0].complete||e[0].readyState===4?n():r.call(e)};t.matchMedia=t.matchMedia||function(e){var t,n=e.documentElement,r=n.firstElementChild||n.firstChild,i=e.createElement("body"),s=e.createElement("div");return s.id="mq-test-1",s.style.cssText="position:absolute;top:-100em",i.style.background="none",i.appendChild(s),function(e){return s.innerHTML='­',n.insertBefore(i,r),t=s.offsetWidth===42,n.removeChild(i),{matches:t,media:e}}}(n),function(e){function a(){n&&(s(a),u&&jQuery.fx.tick())}var n,r=0,i=["webkit","moz"],s=t.requestAnimationFrame,o=t.cancelAnimationFrame,u="undefined"!=typeof jQuery.fx;for(;r").appendTo("head")[0].sheet,global:{namespace:r},init:function(e,n,r,i,o){var u=[e,r,i,o],a=[];this.rtl=/rtl/i.test(s("html").attr("dir")),this.scope=e||this.scope,this.set_namespace();if(n&&typeof n=="string"&&!/reflow/i.test(n))this.libs.hasOwnProperty(n)&&a.push(this.init_lib(n,u));else for(var f in this.libs)a.push(this.init_lib(f,n));return s(t).load(function(){s(t).trigger("resize.fndtn.clearing").trigger("resize.fndtn.dropdown").trigger("resize.fndtn.equalizer").trigger("resize.fndtn.interchange").trigger("resize.fndtn.joyride").trigger("resize.fndtn.magellan").trigger("resize.fndtn.topbar").trigger("resize.fndtn.slider")}),e},init_lib:function(t,n){return this.libs.hasOwnProperty(t)?(this.patch(this.libs[t]),n&&n.hasOwnProperty(t)?(typeof this.libs[t].settings!="undefined"?e.extend(!0,this.libs[t].settings,n[t]):typeof this.libs[t].defaults!="undefined"&&e.extend(!0,this.libs[t].defaults,n[t]),this.libs[t].init.apply(this.libs[t],[this.scope,n[t]])):(n=n instanceof Array?n:new Array(n),this.libs[t].init.apply(this.libs[t],n))):function(){}},patch:function(e){e.scope=this.scope,e.namespace=this.global.namespace,e.rtl=this.rtl,e.data_options=this.utils.data_options,e.attr_name=o,e.add_namespace=u,e.bindings=a,e.S=this.utils.S},inherit:function(e,t){var n=t.split(" "),r=n.length;while(r--)this.utils.hasOwnProperty(n[r])&&(e[n[r]]=this.utils[n[r]])},set_namespace:function(){var t=this.global.namespace===r?e(".foundation-data-attribute-namespace").css("font-family"):this.global.namespace;this.global.namespace=t===r||/false/i.test(t)?"":t},libs:{},utils:{S:s,throttle:function(e,t){var n=null;return function(){var r=this,i=arguments;n==null&&(n=setTimeout(function(){e.apply(r,i),n=null},t))}},debounce:function(e,t,n){var r,i;return function(){var s=this,o=arguments,u=function(){r=null,n||(i=e.apply(s,o))},a=n&&!r;return clearTimeout(r),r=setTimeout(u,t),a&&(i=e.apply(s,o)),i}},data_options:function(t,n){function f(e){return!isNaN(e-0)&&e!==null&&e!==""&&e!==!1&&e!==!0}function l(t){return typeof t=="string"?e.trim(t):t}n=n||"options";var r={},i,s,o,u=function(e){var t=Foundation.global.namespace;return t.length>0?e.data(t+"-"+n):e.data(n)},a=u(t);if(typeof a=="object")return a;o=(a||":").split(";"),i=o.length;while(i--)s=o[i].split(":"),s=[s[0],s.slice(1).join(":")],/true/i.test(s[1])&&(s[1]=!0),/false/i.test(s[1])&&(s[1]=!1),f(s[1])&&(s[1].indexOf(".")===-1?s[1]=parseInt(s[1],10):s[1]=parseFloat(s[1])),s.length===2&&s[0].length>0&&(r[l(s[0])]=l(s[1]));return r},register_media:function(t,n){Foundation.media_queries[t]===r&&(e("head").append(''),Foundation.media_queries[t]=l(e("."+n).css("font-family")))},add_custom_rule:function(e,t){if(t===r&&Foundation.stylesheet)Foundation.stylesheet.insertRule(e,Foundation.stylesheet.cssRules.length);else{var n=Foundation.media_queries[t];n!==r&&Foundation.stylesheet.insertRule("@media "+Foundation.media_queries[t]+"{ "+e+" }")}},image_loaded:function(e,t){var n=this,r=e.length;r===0&&t(e),e.each(function(){f(n.S(this),function(){r-=1,r===0&&t(e)})})},random_str:function(){return this.fidx||(this.fidx=0),this.prefix=this.prefix||[this.name||"F",(+(new Date)).toString(36)].join("-"),this.prefix+(this.fidx++).toString(36)}}},e.fn.foundation=function(){var e=Array.prototype.slice.call(arguments,0);return this.each(function(){return Foundation.init.apply(Foundation,[this].concat(e)),this})}})(jQuery,window,window.document),function(e,t,n,r){"use strict";Foundation.libs.slider={name:"slider",version:"5.4.5",settings:{start:0,end:100,step:1,initial:null,display_selector:"",vertical:!1,on_change:function(){}},cache:{},init:function(e,t,n){Foundation.inherit(this,"throttle"),this.bindings(t,n),this.reflow()},events:function(){var n=this;e(this.scope).off(".slider").on("mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider","["+n.attr_name()+"]:not(.disabled, [disabled]) .range-slider-handle",function(t){n.cache.active||(t.preventDefault(),n.set_active_slider(e(t.target)))}).on("mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider",function(r){if(!!n.cache.active){r.preventDefault();if(e.data(n.cache.active[0],"settings").vertical){var i=0;r.pageY||(i=t.scrollY),n.calculate_position(n.cache.active,(r.pageY||r.originalEvent.clientY||r.originalEvent.touches[0].clientY||r.currentPoint.y)+i)}else n.calculate_position(n.cache.active,r.pageX||r.originalEvent.clientX||r.originalEvent.touches[0].clientX||r.currentPoint.x)}}).on("mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider",function(e){n.remove_active_slider()}).on("change.fndtn.slider",function(e){n.settings.on_change()}),n.S(t).on("resize.fndtn.slider",n.throttle(function(e){n.reflow()},300))},set_active_slider:function(e){this.cache.active=e},remove_active_slider:function(){this.cache.active=null},calculate_position:function(t,n){var r=this,i=e.data(t[0],"settings"),s=e.data(t[0],"handle_l"),o=e.data(t[0],"handle_o"),u=e.data(t[0],"bar_l"),a=e.data(t[0],"bar_o");requestAnimationFrame(function(){var e;Foundation.rtl&&!i.vertical?e=r.limit_to((a+u-n)/u,0,1):e=r.limit_to((n-a)/u,0,1),e=i.vertical?1-e:e;var s=r.normalized_value(e,i.start,i.end,i.step);r.set_ui(t,s)})},set_ui:function(t,n){var r=e.data(t[0],"settings"),i=e.data(t[0],"handle_l"),s=e.data(t[0],"bar_l"),o=this.normalized_percentage(n,r.start,r.end),u=o*(s-i)-1,a=o*100;Foundation.rtl&&!r.vertical&&(u=-u),u=r.vertical?-u+s-i+1:u,this.set_translate(t,u,r.vertical),r.vertical?t.siblings(".range-slider-active-segment").css("height",a+"%"):t.siblings(".range-slider-active-segment").css("width",a+"%"),t.parent().attr(this.attr_name(),n).trigger("change").trigger("change.fndtn.slider"),t.parent().children("input[type=hidden]").val(n),t[0].hasAttribute("aria-valuemin")||t.attr({"aria-valuemin":r.start,"aria-valuemax":r.end}),t.attr("aria-valuenow",n)},normalized_percentage:function(e,t,n){return Math.min(1,(e-t)/(n-t))},normalized_value:function(e,t,n,r){var i=n-t,s=e*i,o=(s-s%r)/r,u=s%r,a=u>=r*.5?r:0;return o*r+a+t},set_translate:function(t,n,r){r?e(t).css("-webkit-transform","translateY("+n+"px)").css("-moz-transform","translateY("+n+"px)").css("-ms-transform","translateY("+n+"px)").css("-o-transform","translateY("+n+"px)").css("transform","translateY("+n+"px)"):e(t).css("-webkit-transform","translateX("+n+"px)").css("-moz-transform","translateX("+n+"px)").css("-ms-transform","translateX("+n+"px)").css("-o-transform","translateX("+n+"px)").css("transform","translateX("+n+"px)")},limit_to:function(e,t,n){return Math.min(Math.max(e,t),n)},initialize_settings:function(t){var n=e.extend({},this.settings,this.data_options(e(t).parent()));n.vertical?(e.data(t,"bar_o",e(t).parent().offset().top),e.data(t,"bar_l",e(t).parent().outerHeight()),e.data(t,"handle_o",e(t).offset().top),e.data(t,"handle_l",e(t).outerHeight())):(e.data(t,"bar_o",e(t).parent().offset().left),e.data(t,"bar_l",e(t).parent().outerWidth()),e.data(t,"handle_o",e(t).offset().left),e.data(t,"handle_l",e(t).outerWidth())),e.data(t,"bar",e(t).parent()),e.data(t,"settings",n)},set_initial_position:function(t){var n=e.data(t.children(".range-slider-handle")[0],"settings"),r=n.initial?n.initial:Math.floor((n.end-n.start)*.5/n.step)*n.step+n.start,i=t.children(".range-slider-handle");this.set_ui(i,r)},set_value:function(t){var n=this;e("["+n.attr_name()+"]",this.scope).each(function(){e(this).attr(n.attr_name(),t)}),!e(this.scope).attr(n.attr_name())||e(this.scope).attr(n.attr_name(),t),n.reflow()},reflow:function(){var t=this;t.S("["+this.attr_name()+"]").each(function(){var n=e(this).children(".range-slider-handle")[0],r=e(this).attr(t.attr_name());t.initialize_settings(n),r?t.set_ui(e(n),parseFloat(r)):t.set_initial_position(e(this))})}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";var i=i||!1;Foundation.libs.joyride={name:"joyride",version:"5.4.5",defaults:{expose:!1,modal:!0,keyboard:!0,tip_location:"bottom",nub_position:"auto",scroll_speed:1500,scroll_animation:"linear",timer:0,start_timer_on_click:!0,start_offset:0,next_button:!0,prev_button:!0,tip_animation:"fade",pause_after:[],exposed:[],tip_animation_fade_speed:300,cookie_monster:!1,cookie_name:"joyride",cookie_domain:!1,cookie_expires:365,tip_container:"body",abort_on_close:!0,tip_location_patterns:{top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},post_ride_callback:function(){},post_step_callback:function(){},pre_step_callback:function(){},pre_ride_callback:function(){},post_expose_callback:function(){},template:{link:'×',timer:'
',tip:'
',wrapper:'
',button:'',prev_button:'',modal:'
',expose:'
',expose_cover:'
'},expose_add_class:""},init:function(t,n,r){Foundation.inherit(this,"throttle random_str"),this.settings=this.settings||e.extend({},this.defaults,r||n),this.bindings(n,r)},go_next:function(){this.settings.$li.next().length<1?this.end():this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(),this.startTimer()):(this.hide(),this.show())},go_prev:function(){this.settings.$li.prev().length<1||(this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(null,!0),this.startTimer()):(this.hide(),this.show(null,!0)))},events:function(){var n=this;e(this.scope).off(".joyride").on("click.fndtn.joyride",".joyride-next-tip, .joyride-modal-bg",function(e){e.preventDefault(),this.go_next()}.bind(this)).on("click.fndtn.joyride",".joyride-prev-tip",function(e){e.preventDefault(),this.go_prev()}.bind(this)).on("click.fndtn.joyride",".joyride-close-tip",function(e){e.preventDefault(),this.end(this.settings.abort_on_close)}.bind(this)).on("keyup.joyride",function(e){if(!this.settings.keyboard)return;switch(e.which){case 39:e.preventDefault(),this.go_next();break;case 37:e.preventDefault(),this.go_prev();break;case 27:e.preventDefault(),this.end(this.settings.abort_on_close)}}.bind(this)),e(t).off(".joyride").on("resize.fndtn.joyride",n.throttle(function(){if(e("["+n.attr_name()+"]").length>0&&n.settings.$next_tip&&n.settings.riding){if(n.settings.exposed.length>0){var t=e(n.settings.exposed);t.each(function(){var t=e(this);n.un_expose(t),n.expose(t)})}n.is_phone()?n.pos_phone():n.pos_default(!1)}},100))},start:function(){var t=this,n=e("["+this.attr_name()+"]",this.scope),r=["timer","scrollSpeed","startOffset","tipAnimationFadeSpeed","cookieExpires"],i=r.length;if(!n.length>0)return;this.settings.init||this.events(),this.settings=n.data(this.attr_name(!0)+"-init"),this.settings.$content_el=n,this.settings.$body=e(this.settings.tip_container),this.settings.body_offset=e(this.settings.tip_container).position(),this.settings.$tip_content=this.settings.$content_el.find("> li"),this.settings.paused=!1,this.settings.attempts=0,this.settings.riding=!0,typeof e.cookie!="function"&&(this.settings.cookie_monster=!1);if(!this.settings.cookie_monster||this.settings.cookie_monster&&!e.cookie(this.settings.cookie_name))this.settings.$tip_content.each(function(n){var s=e(this);this.settings=e.extend({},t.defaults,t.data_options(s));var o=i;while(o--)t.settings[r[o]]=parseInt(t.settings[r[o]],10);t.create({$li:s,index:n})}),!this.settings.start_timer_on_click&&this.settings.timer>0?(this.show("init"),this.startTimer()):this.show("init")},resume:function(){this.set_li(),this.show()},tip_template:function(t){var n,r;return t.tip_class=t.tip_class||"",n=e(this.settings.template.tip).addClass(t.tip_class),r=e.trim(e(t.li).html())+this.prev_button_text(t.prev_button_text,t.index)+this.button_text(t.button_text)+this.settings.template.link+this.timer_instance(t.index),n.append(e(this.settings.template.wrapper)),n.first().attr(this.add_namespace("data-index"),t.index),e(".joyride-content-wrapper",n).append(r),n[0]},timer_instance:function(t){var n;return t===0&&this.settings.start_timer_on_click&&this.settings.timer>0||this.settings.timer===0?n="":n=e(this.settings.template.timer)[0].outerHTML,n},button_text:function(t){return this.settings.tip_settings.next_button?(t=e.trim(t)||"Next",t=e(this.settings.template.button).append(t)[0].outerHTML):t="",t},prev_button_text:function(t,n){return this.settings.tip_settings.prev_button?(t=e.trim(t)||"Previous",n==0?t=e(this.settings.template.prev_button).append(t).addClass("disabled")[0].outerHTML:t=e(this.settings.template.prev_button).append(t)[0].outerHTML):t="",t},create:function(t){this.settings.tip_settings=e.extend({},this.settings,this.data_options(t.$li));var n=t.$li.attr(this.add_namespace("data-button"))||t.$li.attr(this.add_namespace("data-text")),r=t.$li.attr(this.add_namespace("data-button-prev"))||t.$li.attr(this.add_namespace("data-prev-text")),i=t.$li.attr("class"),s=e(this.tip_template({tip_class:i,index:t.index,button_text:n,prev_button_text:r,li:t.$li}));e(this.settings.tip_container).append(s)},show:function(t,n){var i=null;this.settings.$li===r||e.inArray(this.settings.$li.index(),this.settings.pause_after)===-1?(this.settings.paused?this.settings.paused=!1:this.set_li(t,n),this.settings.attempts=0,this.settings.$li.length&&this.settings.$target.length>0?(t&&(this.settings.pre_ride_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.show_modal()),this.settings.pre_step_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.settings.expose&&this.expose(),this.settings.tip_settings=e.extend({},this.settings,this.data_options(this.settings.$li)),this.settings.timer=parseInt(this.settings.timer,10),this.settings.tip_settings.tip_location_pattern=this.settings.tip_location_patterns[this.settings.tip_settings.tip_location],/body/i.test(this.settings.$target.selector)||this.scroll_to(),this.is_phone()?this.pos_phone(!0):this.pos_default(!0),i=this.settings.$next_tip.find(".joyride-timer-indicator"),/pop/i.test(this.settings.tip_animation)?(i.width(0),this.settings.timer>0?(this.settings.$next_tip.show(),setTimeout(function(){i.animate({width:i.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.show()):/fade/i.test(this.settings.tip_animation)&&(i.width(0),this.settings.timer>0?(this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed).show(),setTimeout(function(){i.animate({width:i.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed)),this.settings.$current_tip=this.settings.$next_tip):this.settings.$li&&this.settings.$target.length<1?this.show():this.end()):this.settings.paused=!0},is_phone:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},hide:function(){this.settings.modal&&this.settings.expose&&this.un_expose(),this.settings.modal||e(".joyride-modal-bg").hide(),this.settings.$current_tip.css("visibility","hidden"),setTimeout(e.proxy(function(){this.hide(),this.css("visibility","visible")},this.settings.$current_tip),0),this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip)},set_li:function(e,t){e?(this.settings.$li=this.settings.$tip_content.eq(this.settings.start_offset),this.set_next_tip(),this.settings.$current_tip=this.settings.$next_tip):(t?this.settings.$li=this.settings.$li.prev():this.settings.$li=this.settings.$li.next(),this.set_next_tip()),this.set_target()},set_next_tip:function(){this.settings.$next_tip=e(".joyride-tip-guide").eq(this.settings.$li.index()),this.settings.$next_tip.data("closed","")},set_target:function(){var t=this.settings.$li.attr(this.add_namespace("data-class")),r=this.settings.$li.attr(this.add_namespace("data-id")),i=function(){return r?e(n.getElementById(r)):t?e("."+t).first():e("body")};this.settings.$target=i()},scroll_to:function(){var n,r;n=e(t).height()/2,r=Math.ceil(this.settings.$target.offset().top-n+this.settings.$next_tip.outerHeight()),r!=0&&e("html, body").stop().animate({scrollTop:r},this.settings.scroll_speed,"swing")},paused:function(){return e.inArray(this.settings.$li.index()+1,this.settings.pause_after)===-1},restart:function(){this.hide(),this.settings.$li=r,this.show("init")},pos_default:function(e){var t=this.settings.$next_tip.find(".joyride-nub"),n=Math.ceil(t.outerWidth()/2),r=Math.ceil(t.outerHeight()/2),i=e||!1;i&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show());if(!/body/i.test(this.settings.$target.selector)){var s=this.settings.tip_settings.tipAdjustmentY?parseInt(this.settings.tip_settings.tipAdjustmentY):0,o=this.settings.tip_settings.tipAdjustmentX?parseInt(this.settings.tip_settings.tipAdjustmentX):0;this.bottom()?(this.rtl?this.settings.$next_tip.css({top:this.settings.$target.offset().top+r+this.settings.$target.outerHeight()+s,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()+o}):this.settings.$next_tip.css({top:this.settings.$target.offset().top+r+this.settings.$target.outerHeight()+s,left:this.settings.$target.offset().left+o}),this.nub_position(t,this.settings.tip_settings.nub_position,"top")):this.top()?(this.rtl?this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-r+s,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()}):this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-r+s,left:this.settings.$target.offset().left+o}),this.nub_position(t,this.settings.tip_settings.nub_position,"bottom")):this.right()?(this.settings.$next_tip.css({top:this.settings.$target.offset().top+s,left:this.settings.$target.outerWidth()+this.settings.$target.offset().left+n+o}),this.nub_position(t,this.settings.tip_settings.nub_position,"left")):this.left()&&(this.settings.$next_tip.css({top:this.settings.$target.offset().top+s,left:this.settings.$target.offset().left-this.settings.$next_tip.outerWidth()-n+o}),this.nub_position(t,this.settings.tip_settings.nub_position,"right")),!this.visible(this.corners(this.settings.$next_tip))&&this.settings.attempts0&&arguments[0]instanceof e)i=arguments[0];else{if(!this.settings.$target||!!/body/i.test(this.settings.$target.selector))return!1;i=this.settings.$target}if(i.length<1)return t.console&&console.error("element not valid",i),!1;n=e(this.settings.template.expose),this.settings.$body.append(n),n.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),r=e(this.settings.template.expose_cover),s={zIndex:i.css("z-index"),position:i.css("position")},o=i.attr("class")==null?"":i.attr("class"),i.css("z-index",parseInt(n.css("z-index"))+1),s.position=="static"&&i.css("position","relative"),i.data("expose-css",s),i.data("orig-class",o),i.attr("class",o+" "+this.settings.expose_add_class),r.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),this.settings.modal&&this.show_modal(),this.settings.$body.append(r),n.addClass(u),r.addClass(u),i.data("expose",u),this.settings.post_expose_callback(this.settings.$li.index(),this.settings.$next_tip,i),this.add_exposed(i)},un_expose:function(){var n,r,i,s,o,u=!1;if(arguments.length>0&&arguments[0]instanceof e)r=arguments[0];else{if(!this.settings.$target||!!/body/i.test(this.settings.$target.selector))return!1;r=this.settings.$target}if(r.length<1)return t.console&&console.error("element not valid",r),!1;n=r.data("expose"),i=e("."+n),arguments.length>1&&(u=arguments[1]),u===!0?e(".joyride-expose-wrapper,.joyride-expose-cover").remove():i.remove(),s=r.data("expose-css"),s.zIndex=="auto"?r.css("z-index",""):r.css("z-index",s.zIndex),s.position!=r.css("position")&&(s.position=="static"?r.css("position",""):r.css("position",s.position)),o=r.data("orig-class"),r.attr("class",o),r.removeData("orig-classes"),r.removeData("expose"),r.removeData("expose-z-index"),this.remove_exposed(r)},add_exposed:function(t){this.settings.exposed=this.settings.exposed||[],t instanceof e||typeof t=="object"?this.settings.exposed.push(t[0]):typeof t=="string"&&this.settings.exposed.push(t)},remove_exposed:function(t){var n,r;t instanceof e?n=t[0]:typeof t=="string"&&(n=t),this.settings.exposed=this.settings.exposed||[],r=this.settings.exposed.length;while(r--)if(this.settings.exposed[r]==n){this.settings.exposed.splice(r,1);return}},center:function(){var n=e(t);return this.settings.$next_tip.css({top:(n.height()-this.settings.$next_tip.outerHeight())/2+n.scrollTop(),left:(n.width()-this.settings.$next_tip.outerWidth())/2+n.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(this.settings.tip_settings.tip_location)},top:function(){return/top/i.test(this.settings.tip_settings.tip_location)},right:function(){return/right/i.test(this.settings.tip_settings.tip_location)},left:function(){return/left/i.test(this.settings.tip_settings.tip_location)},corners:function(n){var r=e(t),i=r.height()/2,s=Math.ceil(this.settings.$target.offset().top-i+this.settings.$next_tip.outerHeight()),o=r.width()+r.scrollLeft(),u=r.height()+s,a=r.height()+r.scrollTop(),f=r.scrollTop();return sa&&(a=u),[n.offset().topn.offset().left]},visible:function(e){var t=e.length;while(t--)if(e[t])return!1;return!0},nub_position:function(e,t,n){t==="auto"?e.addClass(n):e.addClass(t)},startTimer:function(){this.settings.$li.length?this.settings.automate=setTimeout(function(){this.hide(),this.show(),this.startTimer()}.bind(this),this.settings.timer):clearTimeout(this.settings.automate)},end:function(t){this.settings.cookie_monster&&e.cookie(this.settings.cookie_name,"ridden",{expires:this.settings.cookie_expires,domain:this.settings.cookie_domain}),this.settings.timer>0&&clearTimeout(this.settings.automate),this.settings.modal&&this.settings.expose&&this.un_expose(),e(this.scope).off("keyup.joyride"),this.settings.$next_tip.data("closed",!0),this.settings.riding=!1,e(".joyride-modal-bg").hide(),this.settings.$current_tip.hide();if(typeof t=="undefined"||t===!1)this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip),this.settings.post_ride_callback(this.settings.$li.index(),this.settings.$current_tip);e(".joyride-tip-guide").remove()},off:function(){e(this.scope).off(".joyride"),e(t).off(".joyride"),e(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),e(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(this.settings.automate),this.settings={}},reflow:function(){}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";Foundation.libs.equalizer={name:"equalizer",version:"5.4.5",settings:{use_tallest:!0,before_height_change:e.noop,after_height_change:e.noop,equalize_on_stack:!1},init:function(e,t,n){Foundation.inherit(this,"image_loaded"),this.bindings(t,n),this.reflow()},events:function(){this.S(t).off(".equalizer").on("resize.fndtn.equalizer",function(e){this.reflow()}.bind(this))},equalize:function(t){var n=!1,r=t.find("["+this.attr_name()+"-watch]:visible"),i=t.data(this.attr_name(!0)+"-init");if(r.length===0)return;var s=r.first().offset().top;i.before_height_change(),t.trigger("before-height-change").trigger("before-height-change.fndth.equalizer"),r.height("inherit"),r.each(function(){var t=e(this);t.offset().top!==s&&(n=!0)});if(i.equalize_on_stack===!1&&n)return;var o=r.map(function(){return e(this).outerHeight(!1)}).get();if(i.use_tallest){var u=Math.max.apply(null,o);r.css("height",u)}else{var a=Math.min.apply(null,o);r.css("height",a)}i.after_height_change(),t.trigger("after-height-change").trigger("after-height-change.fndtn.equalizer")},reflow:function(){var t=this;this.S("["+this.attr_name()+"]",this.scope).each(function(){var n=e(this);t.image_loaded(t.S("img",this),function(){t.equalize(n)})})}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";Foundation.libs.dropdown={name:"dropdown",version:"5.4.5",settings:{active_class:"open",mega_class:"mega",align:"bottom",is_hover:!1,opened:function(){},closed:function(){}},init:function(e,t,n){Foundation.inherit(this,"throttle"),this.bindings(t,n)},events:function(n){var r=this,i=r.S;i(this.scope).off(".dropdown").on("click.fndtn.dropdown","["+this.attr_name()+"]",function(t){var n=i(this).data(r.attr_name(!0)+"-init")||r.settings;if(!n.is_hover||Modernizr.touch)t.preventDefault(),r.toggle(e(this))}).on("mouseenter.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(e){var t=i(this),n,s;clearTimeout(r.timeout),t.data(r.data_attr())?(n=i("#"+t.data(r.data_attr())),s=t):(n=t,s=i("["+r.attr_name()+"='"+n.attr("id")+"']"));var o=s.data(r.attr_name(!0)+"-init")||r.settings;i(e.target).data(r.data_attr())&&o.is_hover&&r.closeall.call(r),o.is_hover&&r.open.apply(r,[n,s])}).on("mouseleave.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(e){var t=i(this);r.timeout=setTimeout(function(){if(t.data(r.data_attr())){var e=t.data(r.data_attr(!0)+"-init")||r.settings;e.is_hover&&r.close.call(r,i("#"+t.data(r.data_attr())))}else{var n=i("["+r.attr_name()+'="'+i(this).attr("id")+'"]'),e=n.data(r.attr_name(!0)+"-init")||r.settings;e.is_hover&&r.close.call(r,t)}}.bind(this),150)}).on("click.fndtn.dropdown",function(t){var n=i(t.target).closest("["+r.attr_name()+"-content]");if(i(t.target).closest("["+r.attr_name()+"]").length>0)return;if(!i(t.target).data("revealId")&&n.length>0&&(i(t.target).is("["+r.attr_name()+"-content]")||e.contains(n.first()[0],t.target))){t.stopPropagation();return}r.close.call(r,i("["+r.attr_name()+"-content]"))}).on("opened.fndtn.dropdown","["+r.attr_name()+"-content]",function(){r.settings.opened.call(this)}).on("closed.fndtn.dropdown","["+r.attr_name()+"-content]",function(){r.settings.closed.call(this)}),i(t).off(".dropdown").on("resize.fndtn.dropdown",r.throttle(function(){r.resize.call(r)},50)),this.resize()},close:function(t){var n=this;t.each(function(){var r=e("["+n.attr_name()+"="+t[0].id+"]")||e("aria-controls="+t[0].id+"]");r.attr("aria-expanded","false"),n.S(this).hasClass(n.settings.active_class)&&(n.S(this).css(Foundation.rtl?"right":"left","-99999px").attr("aria-hidden","true").removeClass(n.settings.active_class).prev("["+n.attr_name()+"]").removeClass(n.settings.active_class).removeData("target"),n.S(this).trigger("closed").trigger("closed.fndtn.dropdown",[t]))})},closeall:function(){var t=this;e.each(t.S("["+this.attr_name()+"-content]"),function(){t.close.call(t,t.S(this))})},open:function(e,t){this.css(e.addClass(this.settings.active_class),t),e.prev("["+this.attr_name()+"]").addClass(this.settings.active_class),e.data("target",t.get(0)).trigger("opened").trigger("opened.fndtn.dropdown",[e,t]),e.attr("aria-hidden","false"),t.attr("aria-expanded","true"),e.focus()},data_attr:function(){return this.namespace.length>0?this.namespace+"-"+this.name:this.name},toggle:function(e){var t=this.S("#"+e +.data(this.data_attr()));if(t.length===0)return;this.close.call(this,this.S("["+this.attr_name()+"-content]").not(t)),t.hasClass(this.settings.active_class)?(this.close.call(this,t),t.data("target")!==e.get(0)&&this.open.call(this,t,e)):this.open.call(this,t,e)},resize:function(){var e=this.S("["+this.attr_name()+"-content].open"),t=this.S("["+this.attr_name()+"='"+e.attr("id")+"']");e.length&&t.length&&this.css(e,t)},css:function(e,t){var n=Math.max((t.width()-e.width())/2,8),r=t.data(this.attr_name(!0)+"-init")||this.settings;this.clear_idx();if(this.small()){var i=this.dirs.bottom.call(e,t,r);e.attr("style","").removeClass("drop-left drop-right drop-top").css({position:"absolute",width:"95%","max-width":"none",top:i.top}),e.css(Foundation.rtl?"right":"left",n)}else this.style(e,t,r);return e},style:function(t,n,r){var i=e.extend({position:"absolute"},this.dirs[r.align].call(t,n,r));t.attr("style","").css(i)},dirs:{_base:function(e){var t=this.offsetParent(),n=t.offset(),r=e.offset();return r.top-=n.top,r.left-=n.left,r},top:function(e,t){var n=Foundation.libs.dropdown,r=n.dirs._base.call(this,e);return this.addClass("drop-top"),(e.outerWidth()×'},close_selectors:".clearing-close, div.clearing-blackout",open_selectors:"",skip_selector:"",touch_label:"",init:!1,locked:!1},init:function(e,t,n){var r=this;Foundation.inherit(this,"throttle image_loaded"),this.bindings(t,n),r.S(this.scope).is("["+this.attr_name()+"]")?this.assemble(r.S("li",this.scope)):r.S("["+this.attr_name()+"]",this.scope).each(function(){r.assemble(r.S("li",this))})},events:function(r){var i=this,s=i.S,o=e(".scroll-container");o.length>0&&(this.scope=o),s(this.scope).off(".clearing").on("click.fndtn.clearing","ul["+this.attr_name()+"] li "+this.settings.open_selectors,function(e,t,n){var t=t||s(this),n=n||t,r=t.next("li"),o=t.closest("["+i.attr_name()+"]").data(i.attr_name(!0)+"-init"),u=s(e.target);e.preventDefault(),o||(i.init(),o=t.closest("["+i.attr_name()+"]").data(i.attr_name(!0)+"-init")),n.hasClass("visible")&&t[0]===n[0]&&r.length>0&&i.is_open(t)&&(n=r,u=s("img",n)),i.open(u,t,n),i.update_paddles(n)}).on("click.fndtn.clearing",".clearing-main-next",function(e){i.nav(e,"next")}).on("click.fndtn.clearing",".clearing-main-prev",function(e){i.nav(e,"prev")}).on("click.fndtn.clearing",this.settings.close_selectors,function(e){Foundation.libs.clearing.close(e,this)}),e(n).on("keydown.fndtn.clearing",function(e){i.keydown(e)}),s(t).off(".clearing").on("resize.fndtn.clearing",function(){i.resize()}),this.swipe_events(r)},swipe_events:function(e){var t=this,n=t.S;n(this.scope).on("touchstart.fndtn.clearing",".visible-img",function(e){e.touches||(e=e.originalEvent);var t={start_page_x:e.touches[0].pageX,start_page_y:e.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:r};n(this).data("swipe-transition",t),e.stopPropagation()}).on("touchmove.fndtn.clearing",".visible-img",function(e){e.touches||(e=e.originalEvent);if(e.touches.length>1||e.scale&&e.scale!==1)return;var r=n(this).data("swipe-transition");typeof r=="undefined"&&(r={}),r.delta_x=e.touches[0].pageX-r.start_page_x,Foundation.rtl&&(r.delta_x=-r.delta_x),typeof r.is_scrolling=="undefined"&&(r.is_scrolling=!!(r.is_scrolling||Math.abs(r.delta_x)');var r=n.detach(),i="";if(r[0]==null)return;i=r[0].outerHTML;var s=this.S("#foundationClearingHolder"),o=n.data(this.attr_name(!0)+"-init"),u={grid:'",viewing:o.templates.viewing},a='
'+u.viewing+u.grid+"
",f=this.settings.touch_label;Modernizr.touch&&(a=e(a).find(".clearing-touch-label").html(f).end()),s.after(a).remove()},open:function(t,r,i){function p(){setTimeout(function(){this.image_loaded(l,function(){l.outerWidth()===1&&!h?p.call(this):d.call(this,l)}.bind(this))}.bind(this),100)}function d(t){var n=e(t);n.css("visibility","visible"),o.css("overflow","hidden"),u.addClass("clearing-blackout"),a.addClass("clearing-container"),f.show(),this.fix_height(i).caption(s.S(".clearing-caption",f),s.S("img",i)).center_and_label(t,c).shift(r,i,function(){i.closest("li").siblings().removeClass("visible"),i.closest("li").addClass("visible")}),f.trigger("opened.fndtn.clearing")}var s=this,o=e(n.body),u=i.closest(".clearing-assembled"),a=s.S("div",u).first(),f=s.S(".visible-img",a),l=s.S("img",f).not(t),c=s.S(".clearing-touch-label",a),h=!1;e("body").on("touchmove",function(e){e.preventDefault()}),l.error(function(){h=!0}),this.locked()||(f.trigger("open.fndtn.clearing"),l.attr("src",this.load(t)).css("visibility","hidden"),p.call(this))},close:function(t,r){t.preventDefault();var i=function(e){return/blackout/.test(e.selector)?e:e.closest(".clearing-blackout")}(e(r)),s=e(n.body),o,u;return r===t.target&&i&&(s.css("overflow",""),o=e("div",i).first(),u=e(".visible-img",o),u.trigger("close.fndtn.clearing"),this.settings.prev_index=0,e("ul["+this.attr_name()+"]",i).attr("style","").closest(".clearing-blackout").removeClass("clearing-blackout"),o.removeClass("clearing-container"),u.hide(),u.trigger("closed.fndtn.clearing")),e("body").off("touchmove"),!1},is_open:function(e){return e.parent().prop("style").length>0},keydown:function(t){var n=e(".clearing-blackout ul["+this.attr_name()+"]"),r=this.rtl?37:39,i=this.rtl?39:37,s=27;t.which===r&&this.go(n,"next"),t.which===i&&this.go(n,"prev"),t.which===s&&this.S("a.clearing-close").trigger("click").trigger("click.fndtn.clearing")},nav:function(t,n){var r=e("ul["+this.attr_name()+"]",".clearing-blackout");t.preventDefault(),this.go(r,n)},resize:function(){var t=e("img",".clearing-blackout .visible-img"),n=e(".clearing-touch-label",".clearing-blackout");t.length&&(this.center_and_label(t,n),t.trigger("resized.fndtn.clearing"))},fix_height:function(e){var t=e.parent().children(),n=this;return t.each(function(){var e=n.S(this),t=e.find("img");e.height()>t.outerHeight()&&e.addClass("fix-height")}).closest("ul").width(t.length*100+"%"),this},update_paddles:function(e){e=e.closest("li");var t=e.closest(".carousel").siblings(".visible-img");e.next().length>0?this.S(".clearing-main-next",t).removeClass("disabled"):this.S(".clearing-main-next",t).addClass("disabled"),e.prev().length>0?this.S(".clearing-main-prev",t).removeClass("disabled"):this.S(".clearing-main-prev",t).addClass("disabled")},center_and_label:function(e,t){return this.rtl?(e.css({marginRight:-(e.outerWidth()/2),marginTop:-(e.outerHeight()/2),left:"auto",right:"50%"}),t.length>0&&t.css({marginRight:-(t.outerWidth()/2),marginTop:-(e.outerHeight()/2)-t.outerHeight()-10,left:"auto",right:"50%"})):(e.css({marginLeft:-(e.outerWidth()/2),marginTop:-(e.outerHeight()/2)}),t.length>0&&t.css({marginLeft:-(t.outerWidth()/2),marginTop:-(e.outerHeight()/2)-t.outerHeight()-10})),this},load:function(e){var t;return e[0].nodeName==="A"?t=e.attr("href"):t=e.parent().attr("href"),this.preload(e),t?t:e.attr("src")},preload:function(e){this.img(e.closest("li").next()).img(e.closest("li").prev())},img:function(e){if(e.length){var t=new Image,n=this.S("a",e);n.length?t.src=n.attr("href"):t.src=this.S("img",e).attr("src")}return this},caption:function(e,t){var n=t.attr("data-caption");return n?e.html(n).show():e.text("").hide(),this},go:function(e,t){var n=this.S(".visible",e),r=n[t]();this.settings.skip_selector&&r.find(this.settings.skip_selector).length!=0&&(r=r[t]()),r.length&&this.S("img",r).trigger("click",[n,r]).trigger("click.fndtn.clearing",[n,r]).trigger("change.fndtn.clearing")},shift:function(e,t,n){var r=t.parent(),i=this.settings.prev_index||t.index(),s=this.direction(r,e,t),o=this.rtl?"right":"left",u=parseInt(r.css("left"),10),a=t.outerWidth(),f,l={};t.index()!==i&&!/skip/.test(s)?/left/.test(s)?(this.lock(),l[o]=u+a,r.animate(l,300,this.unlock())):/right/.test(s)&&(this.lock(),l[o]=u-a,r.animate(l,300,this.unlock())):/skip/.test(s)&&(f=t.index()-this.settings.up_count,this.lock(),f>0?(l[o]=-(f*a),r.animate(l,300,this.unlock())):(l[o]=0,r.animate(l,300,this.unlock()))),n()},direction:function(e,t,n){var r=this.S("li",e),i=r.outerWidth()+r.outerWidth()/4,s=Math.floor(this.S(".clearing-container").outerWidth()/i)-1,o=r.index(n),u;return this.settings.up_count=s,this.adjacent(this.settings.prev_index,o)?o>s&&o>this.settings.prev_index?u="right":o>s-1&&o<=this.settings.prev_index?u="left":u=!1:u="skip",this.settings.prev_index=o,u},adjacent:function(e,t){for(var n=t+1;n>=t-1;n--)if(n===e)return!0;return!1},lock:function(){this.settings.locked=!0},unlock:function(){this.settings.locked=!1},locked:function(){return this.settings.locked},off:function(){this.S(this.scope).off(".fndtn.clearing"),this.S(t).off(".fndtn.clearing")},reflow:function(){this.init()}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";var i=function(){},s=function(i,s){if(i.hasClass(s.slides_container_class))return this;var f=this,l,c=i,h,p,d,v=0,m,g,y=!1,b=!1;f.slides=function(){return c.children(s.slide_selector)},f.slides().first().addClass(s.active_slide_class),f.update_slide_number=function(t){s.slide_number&&(h.find("span:first").text(parseInt(t)+1),h.find("span:last").text(f.slides().length)),s.bullets&&(p.children().removeClass(s.bullets_active_class),e(p.children().get(t)).addClass(s.bullets_active_class))},f.update_active_link=function(t){var n=e('[data-orbit-link="'+f.slides().eq(t).attr("data-orbit-slide")+'"]');n.siblings().removeClass(s.bullets_active_class),n.addClass(s.bullets_active_class)},f.build_markup=function(){c.wrap('
'),l=c.parent(),c.addClass(s.slides_container_class),s.stack_on_small&&l.addClass(s.stack_on_small_class),s.navigation_arrows&&(l.append(e('').addClass(s.prev_class)),l.append(e('').addClass(s.next_class))),s.timer&&(d=e("
").addClass(s.timer_container_class),d.append(""),d.append(e("
").addClass(s.timer_progress_class)),d.addClass(s.timer_paused_class),l.append(d)),s.slide_number&&(h=e("
").addClass(s.slide_number_class),h.append(" "+s.slide_number_text+" "),l.append(h)),s.bullets&&(p=e("
    ").addClass(s.bullets_container_class),l.append(p),p.wrap('
    '),f.slides().each(function(t,n){var r=e("
  1. ").attr("data-orbit-slide",t).on("click",f.link_bullet);p.append(r)}))},f._goto=function(t,n){if(t===v)return!1;typeof g=="object"&&g.restart();var r=f.slides(),i="next";y=!0,t=r.length){if(!s.circular)return!1;t=0}else if(t<0){if(!s.circular)return!1;t=r.length-1}var o=e(r.get(v)),u=e(r.get(t));o.css("zIndex",2),o.removeClass(s.active_slide_class),u.css("zIndex",4).addClass(s.active_slide_class),c.trigger("before-slide-change.fndtn.orbit"),s.before_slide_change(),f.update_active_link(t);var a=function(){var e=function(){v=t,y=!1,n===!0&&(g=f.create_timer(),g.start()),f.update_slide_number(v),c.trigger("after-slide-change.fndtn.orbit",[{slide_number:v,total_slides:r.length}]),s.after_slide_change(v,r.length)};c.height()!=u.height()&&s.variable_height?c.animate({height:u.height()},250,"linear",e):e()};if(r.length===1)return a(),!1;var l=function(){i==="next"&&m.next(o,u,a),i==="prev"&&m.prev(o,u,a)};u.height()>c.height()&&s.variable_height?c.animate({height:u.height()},250,"linear",l):l()},f.next=function(e){e.stopImmediatePropagation(),e.preventDefault(),f._goto(v+1)},f.prev=function(e){e.stopImmediatePropagation(),e.preventDefault(),f._goto(v-1)},f.link_custom=function(t){t.preventDefault();var n=e(this).attr("data-orbit-link");if(typeof n=="string"&&(n=e.trim(n))!=""){var r=l.find("[data-orbit-slide="+n+"]");r.index()!=-1&&f._goto(r.index())}},f.link_bullet=function(t){var n=e(this).attr("data-orbit-slide");if(typeof n=="string"&&(n=e.trim(n))!="")if(isNaN(parseInt(n))){var r=l.find("[data-orbit-slide="+n+"]");r.index()!=-1&&f._goto(r.index()+1)}else f._goto(parseInt(n))},f.timer_callback=function(){f._goto(v+1,!0)},f.compute_dimensions=function(){var t=e(f.slides().get(v)),n=t.height();s.variable_height||f.slides().each(function(){e(this).height()>n&&(n=e(this).height())}),c.height(n)},f.create_timer=function(){var e=new o(l.find("."+s.timer_container_class),s,f.timer_callback);return e},f.stop_timer=function(){typeof g=="object"&&g.stop()},f.toggle_timer=function(){var e=l.find("."+s.timer_container_class);e.hasClass(s.timer_paused_class)?(typeof g=="undefined"&&(g=f.create_timer()),g.start()):typeof g=="object"&&g.stop()},f.init=function(){f.build_markup(),s.timer&&(g=f.create_timer(),Foundation.utils.image_loaded(this.slides().children("img"),g.start)),m=new a(s,c),s.animation==="slide"&&(m=new u(s,c)),l.on("click","."+s.next_class,f.next),l.on("click","."+s.prev_class,f.prev),s.next_on_click&&l.on("click","."+s.slides_container_class+" [data-orbit-slide]",f.link_bullet),l.on("click",f.toggle_timer),s.swipe&&l.on("touchstart.fndtn.orbit",function(e){e.touches||(e=e.originalEvent);var t={start_page_x:e.touches[0].pageX,start_page_y:e.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:r};l.data("swipe-transition",t),e.stopPropagation()}).on("touchmove.fndtn.orbit",function(e){e.touches||(e=e.originalEvent);if(e.touches.length>1||e.scale&&e.scale!==1)return;var t=l.data("swipe-transition");typeof t=="undefined"&&(t={}),t.delta_x=e.touches[0].pageX-t.start_page_x,typeof t.is_scrolling=="undefined"&&(t.is_scrolling=!!(t.is_scrolling||Math.abs(t.delta_x)0?r(this.scope).on("open.fndtn.reveal",this.settings.open).on("opened.fndtn.reveal",this.settings.opened).on("opened.fndtn.reveal",this.open_video).on("close.fndtn.reveal",this.settings.close).on("closed.fndtn.reveal",this.settings.closed).on("closed.fndtn.reveal",this.close_video):r(this.scope).on("open.fndtn.reveal","["+t.attr_name()+"]",this.settings.open).on("opened.fndtn.reveal","["+t.attr_name()+"]",this.settings.opened).on("opened.fndtn.reveal","["+t.attr_name()+"]",this.open_video).on("close.fndtn.reveal","["+t.attr_name()+"]",this.settings.close).on("closed.fndtn.reveal","["+t.attr_name()+"]",this.settings.closed).on("closed.fndtn.reveal","["+t.attr_name()+"]",this.close_video),!0},key_up_on:function(e){var t=this;return t.S("body").off("keyup.fndtn.reveal").on("keyup.fndtn.reveal",function(e){var n=t.S("["+t.attr_name()+"].open"),r=n.data(t.attr_name(!0)+"-init")||t.settings;r&&e.which===27&&r.close_on_esc&&!t.locked&&t.close.call(t,n)}),!0},key_up_off:function(e){return this.S("body").off("keyup.fndtn.reveal"),!0},open:function(n,r){var i=this,s;n?typeof n.selector!="undefined"?s=i.S("#"+n.data(i.data_attr("reveal-id"))).first():(s=i.S(this.scope),r=n):s=i.S(this.scope);var o=s.data(i.attr_name(!0)+"-init");o=o||this.settings;if(s.hasClass("open")&&n.attr("data-reveal-id")==s.attr("id"))return i.close(s);if(!s.hasClass("open")){var u=i.S("["+i.attr_name()+"].open");typeof s.data("css-top")=="undefined"&&s.data("css-top",parseInt(s.css("top"),10)).data("offset",this.cache_offset(s)),this.key_up_on(s),s.trigger("open").trigger("open.fndtn.reveal"),u.length<1&&this.toggle_bg(s,!0),typeof r=="string"&&(r={url:r});if(typeof r=="undefined"||!r.url)u.length>0&&this.hide(u,o.css.close),this.show(s,o.css.open);else{var a=typeof r.success!="undefined"?r.success:null;e.extend(r,{success:function(t,n,r){e.isFunction(a)&&a(t,n,r),s.html(t),i.S(s).foundation("section","reflow"),i.S(s).children().foundation(),u.length>0&&i.hide(u,o.css.close),i.show(s,o.css.open)}}),e.ajax(r)}}i.S(t).trigger("resize")},close:function(e){var e=e&&e.length?e:this.S(this.scope),t=this.S("["+this.attr_name()+"].open"),n=e.data(this.attr_name(!0)+"-init")||this.settings;t.length>0&&(this.locked=!0,this.key_up_off(e),e.trigger("close").trigger("close.fndtn.reveal"),this.toggle_bg(e,!1),this.hide(t,n.css.close,n))},close_targets:function(){var e="."+this.settings.dismiss_modal_class;return this.settings.close_on_background_click?e+", ."+this.settings.bg_class:e},toggle_bg:function(t,n){this.S("."+this.settings.bg_class).length===0&&(this.settings.bg=e("
    ",{"class":this.settings.bg_class}).appendTo("body").hide());var i=this.settings.bg.filter(":visible").length>0;n!=i&&((n==r?i:!n)?this.hide(this.settings.bg):this.show(this.settings.bg))},show:function(n,r){if(r){var s=n.data(this.attr_name(!0)+"-init")||this.settings,o=s.root_element;if(n.parent(o).length===0){var u=n.wrap('
    ').parent();n.on("closed.fndtn.reveal.wrapped",function(){n.detach().appendTo(u),n.unwrap().unbind("closed.fndtn.reveal.wrapped")}),n.detach().appendTo(o)}var a=i(s.animation);a.animate||(this.locked=!1);if(a.pop){r.top=e(t).scrollTop()-n.data("offset")+"px";var f={top:e(t).scrollTop()+n.data("css-top")+"px",opacity:1};return setTimeout(function(){return n.css(r).animate(f,s.animation_speed,"linear",function(){this.locked=!1,n.trigger("opened").trigger("opened.fndtn.reveal")}.bind(this)).addClass("open")}.bind(this),s.animation_speed/2)}if(a.fade){r.top=e(t).scrollTop()+n.data("css-top")+"px";var f={opacity:1};return setTimeout(function(){return n.css(r).animate(f,s.animation_speed,"linear",function(){this.locked=!1,n.trigger("opened").trigger("opened.fndtn.reveal")}.bind(this)).addClass("open")}.bind(this),s.animation_speed/2)}return n.css(r).show().css({opacity:1}).addClass("open").trigger("opened").trigger("opened.fndtn.reveal")}var s=this.settings;return i(s.animation).fade?n.fadeIn(s.animation_speed/2):(this.locked=!1,n.show())},hide:function(n,r){if(r){var s=n.data(this.attr_name(!0)+"-init");s=s||this.settings;var o=i(s.animation);o.animate||(this.locked=!1);if(o.pop){var u={top:-e(t).scrollTop()-n.data("offset")+"px",opacity:0};return setTimeout(function(){return n.animate(u,s.animation_speed,"linear",function(){this.locked=!1,n.css(r).trigger("closed").trigger("closed.fndtn.reveal")}.bind(this)).removeClass("open")}.bind(this),s.animation_speed/2)}if(o.fade){var u={opacity:0};return setTimeout(function(){return n.animate(u,s.animation_speed,"linear",function(){this.locked=!1,n.css(r).trigger("closed").trigger("closed.fndtn.reveal")}.bind(this)).removeClass("open")}.bind(this),s.animation_speed/2)}return n.hide().css(r).removeClass("open").trigger("closed").trigger("closed.fndtn.reveal")}var s=this.settings;return i(s.animation).fade?n.fadeOut(s.animation_speed/2):n.hide()},close_video:function(t){var n=e(".flex-video",t.target),r=e("iframe",n);r.length>0&&(r.attr("data-src",r[0].src),r.attr("src",r.attr("src")),n.hide())},open_video:function(t){var n=e(".flex-video",t.target),i=n.find("iframe");if(i.length>0){var s=i.attr("data-src");if(typeof s=="string")i[0].src=i.attr("data-src");else{var o=i[0].src;i[0].src=r,i[0].src=o}n.show()}},data_attr:function(e){return this.namespace.length>0?this.namespace+"-"+e:e},cache_offset:function(e){var t=e.show().height()+parseInt(e.css("top"),10);return e.hide(),t},off:function(){e(this.scope).off(".fndtn.reveal")},reflow:function(){}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";Foundation.libs.interchange={name:"interchange",version:"5.4.5",cache:{},images_loaded:!1,nodes_loaded:!1,settings:{load_attr:"interchange",named_queries:{"default":"only screen",small:Foundation.media_queries.small,medium:Foundation.media_queries.medium,large:Foundation.media_queries.large,xlarge:Foundation.media_queries.xlarge,xxlarge:Foundation.media_queries.xxlarge,landscape:"only screen and (orientation: landscape)",portrait:"only 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)"},directives:{replace:function(t,n,r){if(/IMG/.test(t[0].nodeName)){var i=t[0].src;if((new RegExp(n,"i")).test(i))return;return t[0].src=n,r(t[0].src)}var s=t.data(this.data_attr+"-last-path"),o=this;if(s==n)return;return/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(n)?(e(t).css("background-image","url("+n+")"),t.data("interchange-last-path",n),r(n)):e.get(n,function(e){t.html(e),t.data(o.data_attr+"-last-path",n),r()})}}},init:function(t,n,r){Foundation.inherit(this,"throttle random_str"),this.data_attr=this.set_data_attr(),e.extend(!0,this.settings,n,r),this.bindings(n,r),this.load("images"),this.load("nodes")},get_media_hash:function(){var e="";for(var t in this.settings.named_queries)e+=matchMedia(this.settings.named_queries[t]).matches.toString();return e},events:function(){var n=this,r;return e(t).off(".interchange").on("resize.fndtn.interchange",n.throttle(function(){var e=n.get_media_hash();e!==r&&n.resize(),r=e},50)),this},resize:function(){var t=this.cache;if(!this.images_loaded||!this.nodes_loaded){setTimeout(e.proxy(this.resize,this),50);return}for(var n in t)if(t.hasOwnProperty(n)){var r=this.results(n,t[n]);r&&this.settings.directives[r.scenario[1]].call(this,r.el,r.scenario[0],function(){if(arguments[0]instanceof Array)var e=arguments +[0];else var e=Array.prototype.slice.call(arguments,0);r.el.trigger(r.scenario[1],e)})}},results:function(e,t){var n=t.length;if(n>0){var r=this.S("["+this.add_namespace("data-uuid")+'="'+e+'"]');while(n--){var i,s=t[n][2];this.settings.named_queries.hasOwnProperty(s)?i=matchMedia(this.settings.named_queries[s]):i=matchMedia(s);if(i.matches)return{el:r,scenario:t[n]}}}return!1},load:function(e,t){return(typeof this["cached_"+e]=="undefined"||t)&&this["update_"+e](),this["cached_"+e]},update_images:function(){var e=this.S("img["+this.data_attr+"]"),t=e.length,n=t,r=0,i=this.data_attr;this.cache={},this.cached_images=[],this.images_loaded=t===0;while(n--){r++;if(e[n]){var s=e[n].getAttribute(i)||"";s.length>0&&this.cached_images.push(e[n])}r===t&&(this.images_loaded=!0,this.enhance("images"))}return this},update_nodes:function(){var e=this.S("["+this.data_attr+"]").not("img"),t=e.length,n=t,r=0,i=this.data_attr;this.cached_nodes=[],this.nodes_loaded=t===0;while(n--){r++;var s=e[n].getAttribute(i)||"";s.length>0&&this.cached_nodes.push(e[n]),r===t&&(this.nodes_loaded=!0,this.enhance("nodes"))}return this},enhance:function(n){var r=this["cached_"+n].length;while(r--)this.object(e(this["cached_"+n][r]));return e(t).trigger("resize").trigger("resize.fndtn.interchange")},convert_directive:function(e){var t=this.trim(e);return t.length>0?t:"replace"},parse_scenario:function(e){var t=e[0].match(/(.+),\s*(\w+)\s*$/),n=e[1];if(t)var r=t[1],i=t[2];else var s=e[0].split(/,\s*$/),r=s[0],i="";return[this.trim(r),this.convert_directive(i),this.trim(n)]},object:function(e){var t=this.parse_data_attr(e),n=[],r=t.length;if(r>0)while(r--){var i=t[r].split(/\((.*?)(\))$/);if(i.length>1){var s=this.parse_scenario(i);n.push(s)}}return this.store(e,n)},store:function(e,t){var n=this.random_str(),r=e.data(this.add_namespace("uuid",!0));return this.cache[r]?this.cache[r]:(e.attr(this.add_namespace("data-uuid"),n),this.cache[n]=t)},trim:function(t){return typeof t=="string"?e.trim(t):t},set_data_attr:function(e){return e?this.namespace.length>0?this.namespace+"-"+this.settings.load_attr:this.settings.load_attr:this.namespace.length>0?"data-"+this.namespace+"-"+this.settings.load_attr:"data-"+this.settings.load_attr},parse_data_attr:function(e){var t=e.attr(this.attr_name()).split(/\[(.*?)\]/),n=t.length,r=[];while(n--)t[n].replace(/[\W\d]+/,"").length>4&&r.push(t[n]);return r},reflow:function(){this.load("images",!0),this.load("nodes",!0)}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";Foundation.libs["magellan-expedition"]={name:"magellan-expedition",version:"5.4.5",settings:{active_class:"active",threshold:0,destination_threshold:20,throttle_delay:30,fixed_top:0},init:function(e,t,n){Foundation.inherit(this,"throttle"),this.bindings(t,n)},events:function(){var n=this,r=n.S,i=n.settings;n.set_expedition_position(),r(n.scope).off(".magellan").on("click.fndtn.magellan","["+n.add_namespace("data-magellan-arrival")+'] a[href^="#"]',function(t){t.preventDefault();var r=e(this).closest("["+n.attr_name()+"]"),i=r.data("magellan-expedition-init"),s=this.hash.split("#").join(""),o=e("a[name='"+s+"']");o.length===0&&(o=e("#"+s));var u=o.offset().top-i.destination_threshold+1;u-=r.outerHeight(),e("html, body").stop().animate({scrollTop:u},700,"swing",function(){history.pushState?history.pushState(null,null,"#"+s):location.hash="#"+s})}).on("scroll.fndtn.magellan",n.throttle(this.check_for_arrivals.bind(this),i.throttle_delay)),e(t).on("resize.fndtn.magellan",n.throttle(this.set_expedition_position.bind(this),i.throttle_delay))},check_for_arrivals:function(){var e=this;e.update_arrivals(),e.update_expedition_positions()},set_expedition_position:function(){var t=this;e("["+this.attr_name()+"=fixed]",t.scope).each(function(n,r){var i=e(this),s=i.data("magellan-expedition-init"),o=i.attr("styles"),u,a;i.attr("style",""),u=i.offset().top+s.threshold,a=parseInt(i.data("magellan-fixed-top")),isNaN(a)||(t.settings.fixed_top=a),i.data(t.data_attr("magellan-top-offset"),u),i.attr("style",o)})},update_expedition_positions:function(){var n=this,r=e(t).scrollTop();e("["+this.attr_name()+"=fixed]",n.scope).each(function(){var t=e(this),i=t.data("magellan-expedition-init"),s=t.attr("style"),o=t.data("magellan-top-offset");if(r+n.settings.fixed_top>=o){var u=t.prev("["+n.add_namespace("data-magellan-expedition-clone")+"]");u.length===0&&(u=t.clone(),u.removeAttr(n.attr_name()),u.attr(n.add_namespace("data-magellan-expedition-clone"),""),t.before(u)),t.css({position:"fixed",top:i.fixed_top}).addClass("fixed")}else t.prev("["+n.add_namespace("data-magellan-expedition-clone")+"]").remove(),t.attr("style",s).css("position","").css("top","").removeClass("fixed")})},update_arrivals:function(){var n=this,r=e(t).scrollTop();e("["+this.attr_name()+"]",n.scope).each(function(){var t=e(this),i=t.data(n.attr_name(!0)+"-init"),s=n.offsets(t,r),o=t.find("["+n.add_namespace("data-magellan-arrival")+"]"),u=!1;s.each(function(e,r){if(r.viewport_offset>=r.top_offset){var s=t.find("["+n.add_namespace("data-magellan-arrival")+"]");return s.not(r.arrival).removeClass(i.active_class),r.arrival.addClass(i.active_class),u=!0,!0}}),u||o.removeClass(i.active_class)})},offsets:function(t,n){var r=this,i=t.data(r.attr_name(!0)+"-init"),s=n;return t.find("["+r.add_namespace("data-magellan-arrival")+"]").map(function(n,o){var u=e(this).data(r.data_attr("magellan-arrival")),a=e("["+r.add_namespace("data-magellan-destination")+"="+u+"]");if(a.length>0){var f=Math.floor(a.offset().top-i.destination_threshold-t.outerHeight());return{destination:a,arrival:e(this),top_offset:f,viewport_offset:s}}}).sort(function(e,t){return e.top_offsett.top_offset?1:0})},data_attr:function(e){return this.namespace.length>0?this.namespace+"-"+e:e},off:function(){this.S(this.scope).off(".magellan"),this.S(t).off(".magellan")},reflow:function(){var t=this;e("["+t.add_namespace("data-magellan-expedition-clone")+"]",t.scope).remove()}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";Foundation.libs.accordion={name:"accordion",version:"5.4.5",settings:{active_class:"active",multi_expand:!1,toggleable:!0,callback:function(){}},init:function(e,t,n){this.bindings(t,n)},events:function(){var t=this,n=this.S;n(this.scope).off(".fndtn.accordion").on("click.fndtn.accordion","["+this.attr_name()+"] > dd > a",function(r){var i=n(this).closest("["+t.attr_name()+"]"),s=t.attr_name()+"="+i.attr(t.attr_name()),o=i.data(t.attr_name(!0)+"-init"),u=n("#"+this.href.split("#")[1]),a=e("> dd",i),f=a.children(".content"),l=f.filter("."+o.active_class);r.preventDefault(),i.attr(t.attr_name())&&(f=f.add("["+s+"] dd > .content"),a=a.add("["+s+"] dd"));if(o.toggleable&&u.is(l)){u.parent("dd").toggleClass(o.active_class,!1),u.toggleClass(o.active_class,!1),o.callback(u),u.triggerHandler("toggled",[i]),i.triggerHandler("toggled",[u]);return}o.multi_expand||(f.removeClass(o.active_class),a.removeClass(o.active_class)),u.addClass(o.active_class).parent().addClass(o.active_class),o.callback(u),u.triggerHandler("toggled",[i]),i.triggerHandler("toggled",[u])})},off:function(){},reflow:function(){}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";Foundation.libs.topbar={name:"topbar",version:"5.4.5",settings:{index:0,sticky_class:"sticky",custom_back_text:!0,back_text:"Back",mobile_show_parent_link:!0,is_hover:!0,scrolltop:!0,sticky_on:"all"},init:function(t,n,r){Foundation.inherit(this,"add_custom_rule register_media throttle");var i=this;i.register_media("topbar","foundation-mq-topbar"),this.bindings(n,r),i.S("["+this.attr_name()+"]",this.scope).each(function(){var t=e(this),n=t.data(i.attr_name(!0)+"-init"),r=i.S("section, .top-bar-section",this);t.data("index",0);var s=t.parent();s.hasClass("fixed")||i.is_sticky(t,s,n)?(i.settings.sticky_class=n.sticky_class,i.settings.sticky_topbar=t,t.data("height",s.outerHeight()),t.data("stickyoffset",s.offset().top)):t.data("height",t.outerHeight()),n.assembled||i.assemble(t),n.is_hover?i.S(".has-dropdown",t).addClass("not-click"):i.S(".has-dropdown",t).removeClass("not-click"),i.add_custom_rule(".f-topbar-fixed { padding-top: "+t.data("height")+"px }"),s.hasClass("fixed")&&i.S("body").addClass("f-topbar-fixed")})},is_sticky:function(e,t,n){var r=t.hasClass(n.sticky_class);return r&&n.sticky_on==="all"?!0:r&&this.small()&&n.sticky_on==="small"?matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches&&!matchMedia(Foundation.media_queries.large).matches:r&&this.medium()&&n.sticky_on==="medium"?matchMedia(Foundation.media_queries.small).matches&&matchMedia(Foundation.media_queries.medium).matches&&!matchMedia(Foundation.media_queries.large).matches:r&&this.large()&&n.sticky_on==="large"?matchMedia(Foundation.media_queries.small).matches&&matchMedia(Foundation.media_queries.medium).matches&&matchMedia(Foundation.media_queries.large).matches:!1},toggle:function(n){var r=this,i;n?i=r.S(n).closest("["+this.attr_name()+"]"):i=r.S("["+this.attr_name()+"]");var s=i.data(this.attr_name(!0)+"-init"),o=r.S("section, .top-bar-section",i);r.breakpoint()&&(r.rtl?(o.css({right:"0%"}),e(">.name",o).css({right:"100%"})):(o.css({left:"0%"}),e(">.name",o).css({left:"100%"})),r.S("li.moved",o).removeClass("moved"),i.data("index",0),i.toggleClass("expanded").css("height","")),s.scrolltop?i.hasClass("expanded")?i.parent().hasClass("fixed")&&(s.scrolltop?(i.parent().removeClass("fixed"),i.addClass("fixed"),r.S("body").removeClass("f-topbar-fixed"),t.scrollTo(0,0)):i.parent().removeClass("expanded")):i.hasClass("fixed")&&(i.parent().addClass("fixed"),i.removeClass("fixed"),r.S("body").addClass("f-topbar-fixed")):(r.is_sticky(i,i.parent(),s)&&i.parent().addClass("fixed"),i.parent().hasClass("fixed")&&(i.hasClass("expanded")?(i.addClass("fixed"),i.parent().addClass("expanded"),r.S("body").addClass("f-topbar-fixed")):(i.removeClass("fixed"),i.parent().removeClass("expanded"),r.update_sticky_positioning())))},timer:null,events:function(n){var r=this,i=this.S;i(this.scope).off(".topbar").on("click.fndtn.topbar","["+this.attr_name()+"] .toggle-topbar",function(e){e.preventDefault(),r.toggle(this)}).on("click.fndtn.topbar",'.top-bar .top-bar-section li a[href^="#"],['+this.attr_name()+'] .top-bar-section li a[href^="#"]',function(t){var n=e(this).closest("li");r.breakpoint()&&!n.hasClass("back")&&!n.hasClass("has-dropdown")&&r.toggle()}).on("click.fndtn.topbar","["+this.attr_name()+"] li.has-dropdown",function(t){var n=i(this),s=i(t.target),o=n.closest("["+r.attr_name()+"]"),u=o.data(r.attr_name(!0)+"-init");if(s.data("revealId")){r.toggle();return}if(r.breakpoint())return;if(u.is_hover&&!Modernizr.touch)return;t.stopImmediatePropagation(),n.hasClass("hover")?(n.removeClass("hover").find("li").removeClass("hover"),n.parents("li.hover").removeClass("hover")):(n.addClass("hover"),e(n).siblings().removeClass("hover"),s[0].nodeName==="A"&&s.parent().hasClass("has-dropdown")&&t.preventDefault())}).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown>a",function(e){if(r.breakpoint()){e.preventDefault();var t=i(this),n=t.closest("["+r.attr_name()+"]"),s=n.find("section, .top-bar-section"),o=t.next(".dropdown").outerHeight(),u=t.closest("li");n.data("index",n.data("index")+1),u.addClass("moved"),r.rtl?(s.css({right:-(100*n.data("index"))+"%"}),s.find(">.name").css({right:100*n.data("index")+"%"})):(s.css({left:-(100*n.data("index"))+"%"}),s.find(">.name").css({left:100*n.data("index")+"%"})),n.css("height",t.siblings("ul").outerHeight(!0)+n.data("height"))}}),i(t).off(".topbar").on("resize.fndtn.topbar",r.throttle(function(){r.resize.call(r)},50)).trigger("resize").trigger("resize.fndtn.topbar").load(function(){i(this).trigger("resize.fndtn.topbar")}),i("body").off(".topbar").on("click.fndtn.topbar",function(e){var t=i(e.target).closest("li").closest("li.hover");if(t.length>0)return;i("["+r.attr_name()+"] li.hover").removeClass("hover")}),i(this.scope).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown .back",function(e){e.preventDefault();var t=i(this),n=t.closest("["+r.attr_name()+"]"),s=n.find("section, .top-bar-section"),o=n.data(r.attr_name(!0)+"-init"),u=t.closest("li.moved"),a=u.parent();n.data("index",n.data("index")-1),r.rtl?(s.css({right:-(100*n.data("index"))+"%"}),s.find(">.name").css({right:100*n.data("index")+"%"})):(s.css({left:-(100*n.data("index"))+"%"}),s.find(">.name").css({left:100*n.data("index")+"%"})),n.data("index")===0?n.css("height",""):n.css("height",a.outerHeight(!0)+n.data("height")),setTimeout(function(){u.removeClass("moved")},300)}),i(this.scope).find(".dropdown a").focus(function(){e(this).parents(".has-dropdown").addClass("hover")}).blur(function(){e(this).parents(".has-dropdown").removeClass("hover")})},resize:function(){var e=this;e.S("["+this.attr_name()+"]").each(function(){var t=e.S(this),r=t.data(e.attr_name(!0)+"-init"),i=t.parent("."+e.settings.sticky_class),s;if(!e.breakpoint()){var o=t.hasClass("expanded");t.css("height","").removeClass("expanded").find("li").removeClass("hover"),o&&e.toggle(t)}e.is_sticky(t,i,r)&&(i.hasClass("fixed")?(i.removeClass("fixed"),s=i.offset().top,e.S(n.body).hasClass("f-topbar-fixed")&&(s-=t.data("height")),t.data("stickyoffset",s),i.addClass("fixed")):(s=i.offset().top,t.data("stickyoffset",s)))})},breakpoint:function(){return!matchMedia(Foundation.media_queries.topbar).matches},small:function(){return matchMedia(Foundation.media_queries.small).matches},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},assemble:function(t){var n=this,r=t.data(this.attr_name(!0)+"-init"),i=n.S("section, .top-bar-section",t);i.detach(),n.S(".has-dropdown>a",i).each(function(){var t=n.S(this),i=t.siblings(".dropdown"),s=t.attr("href"),o;i.find(".title.back").length||(r.mobile_show_parent_link==1&&s?o=e('
  2. "):o=e('
  3. '),r.custom_back_text==1?e("h5>a",o).html(r.back_text):e("h5>a",o).html("« "+t.html()),i.prepend(o))}),i.appendTo(t),this.sticky(),this.assembled(t)},assembled:function(t){t.data(this.attr_name(!0),e.extend({},t.data(this.attr_name(!0)),{assembled:!0}))},height:function(t){var n=0,r=this;return e("> li",t).each(function(){n+=r.S(this).outerHeight(!0)}),n},sticky:function(){var e=this;this.S(t).on("scroll",function(){e.update_sticky_positioning()})},update_sticky_positioning:function(){var e="."+this.settings.sticky_class,n=this.S(t),r=this;if(r.settings.sticky_topbar&&r.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(),this.settings)){var i=this.settings.sticky_topbar.data("stickyoffset");r.S(e).hasClass("expanded")||(n.scrollTop()>i?r.S(e).hasClass("fixed")||(r.S(e).addClass("fixed"),r.S("body").addClass("f-topbar-fixed")):n.scrollTop()<=i&&r.S(e).hasClass("fixed")&&(r.S(e).removeClass("fixed"),r.S("body").removeClass("f-topbar-fixed")))}},off:function(){this.S(this.scope).off(".fndtn.topbar"),this.S(t).off(".fndtn.topbar")},reflow:function(){}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";Foundation.libs.tab={name:"tab",version:"5.4.5",settings:{active_class:"active",callback:function(){},deep_linking:!1,scroll_to_content:!0,is_hover:!1},default_tab_hashes:[],init:function(e,t,n){var r=this,i=this.S;this.bindings(t,n),this.handle_location_hash_change(),i("["+this.attr_name()+"] > .active > a",this.scope).each(function(){r.default_tab_hashes.push(this.hash)})},events:function(){var e=this,n=this.S,r=function(t){var r=n(this).closest("["+e.attr_name()+"]").data(e.attr_name(!0)+"-init");if(!r.is_hover||Modernizr.touch)t.preventDefault(),t.stopPropagation(),e.toggle_active_tab(n(this).parent())};n(this.scope).off(".tab").on("focus.fndtn.tab","["+this.attr_name()+"] > * > a",r).on("click.fndtn.tab","["+this.attr_name()+"] > * > a",r).on("mouseenter.fndtn.tab","["+this.attr_name()+"] > * > a",function(t){var r=n(this).closest("["+e.attr_name()+"]").data(e.attr_name(!0)+"-init");r.is_hover&&e.toggle_active_tab(n(this).parent())}),n(t).on("hashchange.fndtn.tab",function(t){t.preventDefault(),e.handle_location_hash_change()})},handle_location_hash_change:function(){var t=this,n=this.S;n("["+this.attr_name()+"]",this.scope).each(function(){var i=n(this).data(t.attr_name(!0)+"-init");if(i.deep_linking){var s;i.scroll_to_content?s=t.scope.location.hash:s=t.scope.location.hash.replace("fndtn-","");if(s!=""){var o=n(s);if(o.hasClass("content")&&o.parent().hasClass("tab-content"))t.toggle_active_tab(e("["+t.attr_name()+"] > * > a[href="+s+"]").parent());else{var u=o.closest(".content").attr("id");u!=r&&t.toggle_active_tab(e("["+t.attr_name()+"] > * > a[href=#"+u+"]").parent(),s)}}else for(var a in t.default_tab_hashes)t.toggle_active_tab(e("["+t.attr_name()+"] > * > a[href="+t.default_tab_hashes[a]+"]").parent())}})},toggle_active_tab:function(i,s){var o=this.S,u=i.closest("["+this.attr_name()+"]"),a=i.find("a"),f=i.children("a").first(),l="#"+f.attr("href").split("#")[1],c=o(l),h=i.siblings(),p=u.data(this.attr_name(!0)+"-init"),d=function(t){var r=e(this),i=e(this).parents("li").prev().children('[role="tab"]'),s=e(this).parents("li").next().children('[role="tab"]'),o;switch(t.keyCode){case 37:o=i;break;case 39:o=s;break;default:o=!1}o.length&&(r.attr({tabindex:"-1","aria-selected":null}),o.attr({tabindex:"0","aria-selected":!0}).focus()),e('[role="tabpanel"]').attr("aria-hidden","true"),e("#"+e(n.activeElement).attr("href").substring(1)).attr("aria-hidden",null)};o(this).data(this.data_attr("tab-content"))&&(l="#"+o(this).data(this.data_attr("tab-content")).split("#")[1],c=o(l)),p.deep_linking&&(p.scroll_to_content?(t.location.hash=s||l,s==r||s==l?i.parent()[0].scrollIntoView():o(l)[0].scrollIntoView()):s!=r?t.location.hash="fndtn-"+s.replace("#",""):t.location.hash="fndtn-"+l.replace("#","")),i.addClass(p.active_class).triggerHandler("opened"),a.attr({"aria-selected":"true",tabindex:0}),h.removeClass(p.active_class),h.find("a").attr({"aria-selected":"false",tabindex:-1}),c.siblings().removeClass(p.active_class).attr({"aria-hidden":"true",tabindex:-1}).end().addClass(p.active_class).attr("aria-hidden","false").find(":first-child").attr("tabindex",0),p.callback(i),c.children().attr("tab-index",0),c.triggerHandler("toggled",[i]),u.triggerHandler("toggled",[c]),a.on("keydown",d)},data_attr:function(e){return this.namespace.length>0?this.namespace+"-"+e:e},off:function(){},reflow:function(){}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";Foundation.libs.abide={name:"abide",version:"5.4.5",settings:{live_validate:!0,focus_on_invalid:!0,error_labels:!0,timeout:1e3,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,6}$/,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(e,t,r){var i=n.getElementById(e.getAttribute(this.add_namespace("data-equalto"))).value,s=e.value,o=i===s;return o}}},timer:null,init:function(e,t,n){this.bindings(t,n)},events:function(t){var n=this,r=n.S(t).attr("novalidate","novalidate"),i=r.data(this.attr_name(!0)+"-init")||{};this.invalid_attr=this.add_namespace("data-invalid"),r.off(".abide").on("submit.fndtn.abide validate.fndtn.abide",function(e){var t=/ajax/i.test(n.S(this).attr(n.attr_name()));return n.validate(n.S(this).find("input, textarea, select").get(),e,t)}).on("reset",function(){return n.reset(e(this))}).find("input, textarea, select").off(".abide").on("blur.fndtn.abide change.fndtn.abide",function(e){n.validate([this],e)}).on("keydown.fndtn.abide",function(e){i.live_validate===!0&&(clearTimeout(n.timer),n.timer=setTimeout(function(){n.validate([this],e)}.bind(this),i.timeout))})},reset:function(t){t.removeAttr(this.invalid_attr),e(this.invalid_attr,t).removeAttr(this.invalid_attr),e(".error",t).not("small").removeClass("error")},validate:function(e,t,n){var r=this.parse_patterns(e),i=r.length,s=this.S(e[0]).closest("form"),o=/submit/.test(t.type);for(var u=0;u0?[e,this.settings.patterns[r],n]:r.length>0?[e,new RegExp(r),n]:this.settings.patterns.hasOwnProperty(t)?[e,this.settings.patterns[t],n]:(r=/.*/,[e,r,n])},check_validation_and_apply_styles:function(t){var n=t.length,r=[],i=this.S(t[0][0]).closest("[data-"+this.attr_name(!0)+"]"),s=i.data(this.attr_name(!0)+"-init")||{};while(n--){var o=t[n][0],u=t[n][2],a=o.value.trim(),f=this.S(o).parent(),l=o.getAttribute(this.add_namespace("data-abide-validator")),c=o.type==="radio",h=o.type==="checkbox",p=this.S('label[for="'+o.getAttribute("id")+'"]'),d=u?o.value.length>0:!0,v=[],m,g;o.getAttribute(this.add_namespace("data-equalto"))&&(l="equalTo"),f.is("label")?m=f.parent():m=f,l&&(g=this.settings.validators[l].apply(this,[o,u,m]),v.push(g));if(c&&u)v.push(this.valid_radio(o,u));else if(h&&u)v.push(this.valid_checkbox(o,u));else{t[n][1].test(a)&&d||!u&&o.value.length<1||e(o).attr("disabled")?v.push(!0):v.push(!1),v=[v.every(function(e){return e})];if(v[0])this.S(o).removeAttr(this.invalid_attr),o.setAttribute("aria-invalid","false"),o.removeAttribute("aria-describedby"),m.removeClass("error"),p.length>0&&this.settings.error_labels&&p.removeClass("error").removeAttr("role"),e(o).triggerHandler("valid");else{this.S(o).attr(this.invalid_attr,""),o.setAttribute("aria-invalid","true");var y=m.find("small.error, span.error"),b=y.length>0?y[0].id:"";b.length>0&&o.setAttribute("aria-describedby",b),m.addClass("error"),p.length>0&&this.settings.error_labels&&p.addClass("error").attr("role","alert"),e(o).triggerHandler("invalid")}r.push(v[0])}}return r=[r.every(function(e){return e})],r},valid_checkbox:function(e,t){var e=this.S(e),n=e.is(":checked")||!t;return n?e.removeAttr(this.invalid_attr).parent().removeClass("error"):e.attr(this.invalid_attr,"").parent().addClass("error"),n},valid_radio:function(e,t){var n=e.getAttribute("name"),r=this.S(e).closest("[data-"+this.attr_name(!0)+"]").find("[name='"+n+"']"),i=r.length,s=!1;for(var o=0;o0&&settings.error_labels&&label.removeClass("error")):(this.S(e).attr(this.invalid_attr,""),r.addClass("error"),label.length>0&&settings.error_labels&&label.addClass("error")),o},valid_oneof:function(e,t,n,r){var e=this.S(e),i=this.S("["+this.add_namespace("data-oneof")+"]"),s=i.filter(":checked").length>0;s?e.removeAttr(this.invalid_attr).parent().removeClass("error"):e.attr(this.invalid_attr,"").parent().addClass("error");if(!r){var o=this;i.each(function(){o.valid_oneof.call(o,this,null,null,!0)})}return s}}}(jQuery,window,window.document),function(e,t,n,r){"use strict";Foundation.libs.tooltip={name:"tooltip",version:"5.4.5",settings:{additional_inheritable_classes:[],tooltip_class:".tooltip",append_to:"body",touch_close_text:"Tap To Close",disable_for_touch:!1,hover_delay:200,show_on:"all",tip_template:function(e,t){return''+t+''}},cache:{},init:function(e,t,n){Foundation.inherit(this,"random_str"),this.bindings(t,n)},should_show:function(t,n){var r=e.extend({},this.settings,this.data_options(t));return r.show_on==="all"?!0:this.small()&&r.show_on==="small"?!0:this.medium()&&r.show_on==="medium"?!0:this.large()&&r.show_on==="large"?!0:!1},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},events:function(t){var n=this,r=n.S;n.create(this.S(t)),e(this.scope).off(".tooltip").on("mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"]",function(t){var i=r(this),s=e.extend({},n.settings,n.data_options(i)),o=!1;if(Modernizr.touch&&/touchstart|MSPointerDown/i.test(t.type)&&r(t.target).is("a"))return!1;if(/mouse/i.test(t.type)&&n.ie_touch(t))return!1;if(i.hasClass("open"))Modernizr.touch&&/touchstart|MSPointerDown/i.test(t.type)&&t.preventDefault(),n.hide(i);else{if(s.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(t.type))return;!s.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(t.type)&&(t.preventDefault(),r(s.tooltip_class+".open").hide(),o=!0),/enter|over/i.test(t.type)?this.timer=setTimeout(function(){var e=n.showTip(i)}.bind(this),n.settings.hover_delay):t.type==="mouseout"||t.type==="mouseleave"?(clearTimeout(this.timer),n.hide(i)):n.showTip(i)}}).on("mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"].open",function(t){if(/mouse/i.test(t.type)&&n.ie_touch(t))return!1;if(e(this).data("tooltip-open-event-type")=="touch"&&t.type=="mouseleave")return;e(this).data("tooltip-open-event-type")=="mouse"&&/MSPointerDown|touchstart/i.test(t.type)?n.convert_to_touch(e(this)):n.hide(e(this))}).on("DOMNodeRemoved DOMAttrModified","["+this.attr_name()+"]:not(a)",function(e){n.hide(r(this))})},ie_touch:function(e){return!1},showTip:function(e){var t=this.getTip(e);if(this.should_show(e,t))return this.show(e);return},getTip:function(t){var n=this.selector(t),r=e.extend({},this.settings,this.data_options(t)),i=null;return n&&(i=this.S('span[data-selector="'+n+'"]'+r.tooltip_class)),typeof i=="object"?i:!1},selector:function(e){var t=e.attr("id"),n=e.attr(this.attr_name())||e.attr("data-selector");return(t&&t.length<1||!t)&&typeof n!="string"&&(n=this.random_str(6),e.attr("data-selector",n).attr("aria-describedby",n)),t&&t.length>0?t:n},create:function(n){var r=this,i=e.extend({},this.settings,this.data_options(n)),s=this.settings.tip_template;typeof i.tip_template=="string"&&t.hasOwnProperty(i.tip_template)&&(s=t[i.tip_template]);var o=e(s(this.selector(n),e("
    ").html(n.attr("title")).html())),u=this.inheritable_classes(n);o.addClass(u).appendTo(i.append_to),Modernizr.touch&&(o.append(''+i.touch_close_text+""),o.on("touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip",function(e){r.hide(n)})),n.removeAttr("title").attr("title","")},reposition:function(t,n,r){var i,s,o,u,a,f;n.css("visibility","hidden").show(),i=t.data("width"),s=n.children(".nub"),o=s.outerHeight(),u=s.outerHeight(),this.small()?n.css({width:"100%"}):n.css({width:i?i:"auto"}),f=function(e,t,n,r,i,s){return e.css({top:t?t:"auto",bottom:r?r:"auto",left:i?i:"auto",right:n?n:"auto"}).end()},f(n,t.offset().top+t.outerHeight()+10,"auto","auto",t.offset().left);if(this.small())f(n,t.offset().top+t.outerHeight()+10,"auto","auto",12.5,e(this.scope).width()),n.addClass("tip-override"),f(s,-o,"auto","auto",t.offset().left);else{var l=t.offset().left;Foundation.rtl&&(s.addClass("rtl"),l=t.offset().left+t.outerWidth()-n.outerWidth()),f(n,t.offset().top+t.outerHeight()+10,"auto","auto",l),n.removeClass("tip-override"),r&&r.indexOf("tip-top")>-1?(Foundation.rtl&&s.addClass("rtl"),f(n,t.offset().top-n.outerHeight(),"auto","auto",l).removeClass("tip-override")):r&&r.indexOf("tip-left")>-1?(f(n,t.offset().top+t.outerHeight()/2-n.outerHeight()/2,"auto","auto",t.offset().left-n.outerWidth()-o).removeClass("tip-override"),s.removeClass("rtl")):r&&r.indexOf("tip-right")>-1&&(f(n,t.offset().top+t.outerHeight()/2-n.outerHeight()/2,"auto","auto",t.offset().left+t.outerWidth()+o).removeClass("tip-override"),s.removeClass("rtl"))}n.css("visibility","visible").hide()},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},inheritable_classes:function(t){var n=e.extend({},this.settings,this.data_options(t)),r=["tip-top","tip-left","tip-bottom","tip-right","radius","round"].concat(n.additional_inheritable_classes),i=t.attr("class"),s=i?e.map(i.split(" "),function(t,n){if(e.inArray(t,r)!==-1)return t}).join(" "):"";return e.trim(s)},convert_to_touch:function(t){var n=this,r=n.getTip(t),i=e.extend({},n.settings,n.data_options(t));r.find(".tap-to-close").length===0&&(r.append(''+i.touch_close_text+""),r.on("click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose",function(e){n.hide(t)})),t.data("tooltip-open-event-type","touch")},show:function(e){var t=this.getTip(e);e.data("tooltip-open-event-type")=="touch"&&this.convert_to_touch(e),this.reposition(e,t,e.attr("class")),e.addClass("open"),t.fadeIn(150)},hide:function(e){var t=this.getTip(e);t.fadeOut(150,function(){t.find(".tap-to-close").remove(),t.off("click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose"),e.removeClass("open")})},off:function(){var t=this;this.S(this.scope).off(".fndtn.tooltip"),this.S(this.settings.tooltip_class).each(function(n){e("["+t.attr_name()+"]").eq(n).attr("title",e(this).text())}).remove()},reflow:function(){}}}(jQuery,window,window.document); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.abide.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.abide.js new file mode 100644 index 000000000..5feaf2309 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.abide.js @@ -0,0 +1,313 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.abide = { + name : 'abide', + + version : '5.4.5', + + settings : { + live_validate : true, + focus_on_invalid : true, + error_labels: true, // labels with a for="inputId" will recieve an `error` class + timeout : 1000, + patterns : { + alpha: /^[a-zA-Z]+$/, + alpha_numeric : /^[a-zA-Z0-9]+$/, + integer: /^[-+]?\d+$/, + number: /^[-+]?\d*(?:[\.\,]\d+)?$/, + + // amex, visa, diners + 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}$/, + + // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address + 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})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/, + // abc.de + domain: /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/, + + 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))$/, + // YYYY-MM-DD + 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))$/, + // HH:MM:SS + time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/, + dateISO: /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/, + // MM/DD/YYYY + month_day_year : /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/, + // DD/MM/YYYY + day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/, + + // #FFF or #FFFFFF + color: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ + }, + validators : { + equalTo: function(el, required, parent) { + var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value, + to = el.value, + valid = (from === to); + + return valid; + } + } + }, + + timer : null, + + init : function (scope, method, options) { + this.bindings(method, options); + }, + + events : function (scope) { + var self = this, + form = self.S(scope).attr('novalidate', 'novalidate'), + settings = form.data(this.attr_name(true) + '-init') || {}; + + this.invalid_attr = this.add_namespace('data-invalid'); + + form + .off('.abide') + .on('submit.fndtn.abide validate.fndtn.abide', function (e) { + var is_ajax = /ajax/i.test(self.S(this).attr(self.attr_name())); + return self.validate(self.S(this).find('input, textarea, select').get(), e, is_ajax); + }) + .on('reset', function() { + return self.reset($(this)); + }) + .find('input, textarea, select') + .off('.abide') + .on('blur.fndtn.abide change.fndtn.abide', function (e) { + self.validate([this], e); + }) + .on('keydown.fndtn.abide', function (e) { + if (settings.live_validate === true) { + clearTimeout(self.timer); + self.timer = setTimeout(function () { + self.validate([this], e); + }.bind(this), settings.timeout); + } + }); + }, + + reset : function (form) { + form.removeAttr(this.invalid_attr); + $(this.invalid_attr, form).removeAttr(this.invalid_attr); + $('.error', form).not('small').removeClass('error'); + }, + + validate : function (els, e, is_ajax) { + var validations = this.parse_patterns(els), + validation_count = validations.length, + form = this.S(els[0]).closest('form'), + submit_event = /submit/.test(e.type); + + // Has to count up to make sure the focus gets applied to the top error + for (var i=0; i < validation_count; i++) { + if (!validations[i] && (submit_event || is_ajax)) { + if (this.settings.focus_on_invalid) els[i].focus(); + form.trigger('invalid'); + this.S(els[i]).closest('form').attr(this.invalid_attr, ''); + return false; + } + } + + if (submit_event || is_ajax) { + form.trigger('valid'); + } + + form.removeAttr(this.invalid_attr); + + if (is_ajax) return false; + + return true; + }, + + parse_patterns : function (els) { + var i = els.length, + el_patterns = []; + + while (i--) { + el_patterns.push(this.pattern(els[i])); + } + + return this.check_validation_and_apply_styles(el_patterns); + }, + + pattern : function (el) { + var type = el.getAttribute('type'), + required = typeof el.getAttribute('required') === 'string'; + + var pattern = el.getAttribute('pattern') || ''; + + if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) { + return [el, this.settings.patterns[pattern], required]; + } else if (pattern.length > 0) { + return [el, new RegExp(pattern), required]; + } + + if (this.settings.patterns.hasOwnProperty(type)) { + return [el, this.settings.patterns[type], required]; + } + + pattern = /.*/; + + return [el, pattern, required]; + }, + + check_validation_and_apply_styles : function (el_patterns) { + var i = el_patterns.length, + validations = [], + form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'), + settings = form.data(this.attr_name(true) + '-init') || {}; + while (i--) { + var el = el_patterns[i][0], + required = el_patterns[i][2], + value = el.value.trim(), + direct_parent = this.S(el).parent(), + validator = el.getAttribute(this.add_namespace('data-abide-validator')), + is_radio = el.type === "radio", + is_checkbox = el.type === "checkbox", + label = this.S('label[for="' + el.getAttribute('id') + '"]'), + valid_length = (required) ? (el.value.length > 0) : true, + el_validations = []; + + var parent, valid; + + // support old way to do equalTo validations + if(el.getAttribute(this.add_namespace('data-equalto'))) { validator = "equalTo" } + + if (!direct_parent.is('label')) { + parent = direct_parent; + } else { + parent = direct_parent.parent(); + } + + if (validator) { + valid = this.settings.validators[validator].apply(this, [el, required, parent]); + el_validations.push(valid); + } + + if (is_radio && required) { + el_validations.push(this.valid_radio(el, required)); + } else if (is_checkbox && required) { + el_validations.push(this.valid_checkbox(el, required)); + } else { + + if (el_patterns[i][1].test(value) && valid_length || + !required && el.value.length < 1 || $(el).attr('disabled')) { + el_validations.push(true); + } else { + el_validations.push(false); + } + + el_validations = [el_validations.every(function(valid){return valid;})]; + + if(el_validations[0]){ + this.S(el).removeAttr(this.invalid_attr); + el.setAttribute('aria-invalid', 'false'); + el.removeAttribute('aria-describedby'); + parent.removeClass('error'); + if (label.length > 0 && this.settings.error_labels) { + label.removeClass('error').removeAttr('role'); + } + $(el).triggerHandler('valid'); + } else { + this.S(el).attr(this.invalid_attr, ''); + el.setAttribute('aria-invalid', 'true'); + + // Try to find the error associated with the input + var errorElem = parent.find('small.error, span.error'); + var errorID = errorElem.length > 0 ? errorElem[0].id : ""; + if (errorID.length > 0) el.setAttribute('aria-describedby', errorID); + + // el.setAttribute('aria-describedby', $(el).find('.error')[0].id); + parent.addClass('error'); + if (label.length > 0 && this.settings.error_labels) { + label.addClass('error').attr('role', 'alert'); + } + $(el).triggerHandler('invalid'); + } + validations.push(el_validations[0]); + } + } + validations = [validations.every(function(valid){return valid;})]; + return validations; + }, + + valid_checkbox : function(el, required) { + var el = this.S(el), + valid = (el.is(':checked') || !required); + + if (valid) { + el.removeAttr(this.invalid_attr).parent().removeClass('error'); + } else { + el.attr(this.invalid_attr, '').parent().addClass('error'); + } + + return valid; + }, + + valid_radio : function (el, required) { + var name = el.getAttribute('name'), + group = this.S(el).closest('[data-' + this.attr_name(true) + ']').find("[name='"+name+"']"), + count = group.length, + valid = false; + + // Has to count up to make sure the focus gets applied to the top error + for (var i=0; i < count; i++) { + if (group[i].checked) valid = true; + } + + // Has to count up to make sure the focus gets applied to the top error + for (var i=0; i < count; i++) { + if (valid) { + this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass('error'); + } else { + this.S(group[i]).attr(this.invalid_attr, '').parent().addClass('error'); + } + } + + return valid; + }, + + valid_equal: function(el, required, parent) { + var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value, + to = el.value, + valid = (from === to); + + if (valid) { + this.S(el).removeAttr(this.invalid_attr); + parent.removeClass('error'); + if (label.length > 0 && settings.error_labels) label.removeClass('error'); + } else { + this.S(el).attr(this.invalid_attr, ''); + parent.addClass('error'); + if (label.length > 0 && settings.error_labels) label.addClass('error'); + } + + return valid; + }, + + valid_oneof: function(el, required, parent, doNotValidateOthers) { + var el = this.S(el), + others = this.S('[' + this.add_namespace('data-oneof') + ']'), + valid = others.filter(':checked').length > 0; + + if (valid) { + el.removeAttr(this.invalid_attr).parent().removeClass('error'); + } else { + el.attr(this.invalid_attr, '').parent().addClass('error'); + } + + if (!doNotValidateOthers) { + var _this = this; + others.each(function() { + _this.valid_oneof.call(_this, this, null, null, true); + }); + } + + return valid; + } + }; +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.abide.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.abide.min.js new file mode 100644 index 000000000..0bbad147a --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.abide.min.js @@ -0,0 +1 @@ +!function(t,e,a){"use strict";Foundation.libs.abide={name:"abide",version:"5.4.5",settings:{live_validate:!0,focus_on_invalid:!0,error_labels:!0,timeout:1e3,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,6}$/,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){var e=a.getElementById(t.getAttribute(this.add_namespace("data-equalto"))).value,r=t.value,i=e===r;return i}}},timer:null,init:function(t,e,a){this.bindings(e,a)},events:function(e){var a=this,r=a.S(e).attr("novalidate","novalidate"),i=r.data(this.attr_name(!0)+"-init")||{};this.invalid_attr=this.add_namespace("data-invalid"),r.off(".abide").on("submit.fndtn.abide validate.fndtn.abide",function(t){var e=/ajax/i.test(a.S(this).attr(a.attr_name()));return a.validate(a.S(this).find("input, textarea, select").get(),t,e)}).on("reset",function(){return a.reset(t(this))}).find("input, textarea, select").off(".abide").on("blur.fndtn.abide change.fndtn.abide",function(t){a.validate([this],t)}).on("keydown.fndtn.abide",function(t){i.live_validate===!0&&(clearTimeout(a.timer),a.timer=setTimeout(function(){a.validate([this],t)}.bind(this),i.timeout))})},reset:function(e){e.removeAttr(this.invalid_attr),t(this.invalid_attr,e).removeAttr(this.invalid_attr),t(".error",e).not("small").removeClass("error")},validate:function(t,e,a){for(var r=this.parse_patterns(t),i=r.length,n=this.S(t[0]).closest("form"),s=/submit/.test(e.type),d=0;i>d;d++)if(!r[d]&&(s||a))return this.settings.focus_on_invalid&&t[d].focus(),n.trigger("invalid"),this.S(t[d]).closest("form").attr(this.invalid_attr,""),!1;return(s||a)&&n.trigger("valid"),n.removeAttr(this.invalid_attr),a?!1:!0},parse_patterns:function(t){for(var e=t.length,a=[];e--;)a.push(this.pattern(t[e]));return this.check_validation_and_apply_styles(a)},pattern:function(t){var e=t.getAttribute("type"),a="string"==typeof t.getAttribute("required"),r=t.getAttribute("pattern")||"";return this.settings.patterns.hasOwnProperty(r)&&r.length>0?[t,this.settings.patterns[r],a]:r.length>0?[t,new RegExp(r),a]:this.settings.patterns.hasOwnProperty(e)?[t,this.settings.patterns[e],a]:(r=/.*/,[t,r,a])},check_validation_and_apply_styles:function(e){var a=e.length,r=[],i=this.S(e[0][0]).closest("[data-"+this.attr_name(!0)+"]");for(i.data(this.attr_name(!0)+"-init")||{};a--;){var n,s,d=e[a][0],u=e[a][2],l=d.value.trim(),F=this.S(d).parent(),o=d.getAttribute(this.add_namespace("data-abide-validator")),h="radio"===d.type,v="checkbox"===d.type,_=this.S('label[for="'+d.getAttribute("id")+'"]'),f=u?d.value.length>0:!0,c=[];if(d.getAttribute(this.add_namespace("data-equalto"))&&(o="equalTo"),n=F.is("label")?F.parent():F,o&&(s=this.settings.validators[o].apply(this,[d,u,n]),c.push(s)),h&&u)c.push(this.valid_radio(d,u));else if(v&&u)c.push(this.valid_checkbox(d,u));else{if(c.push(e[a][1].test(l)&&f||!u&&d.value.length<1||t(d).attr("disabled")?!0:!1),c=[c.every(function(t){return t})],c[0])this.S(d).removeAttr(this.invalid_attr),d.setAttribute("aria-invalid","false"),d.removeAttribute("aria-describedby"),n.removeClass("error"),_.length>0&&this.settings.error_labels&&_.removeClass("error").removeAttr("role"),t(d).triggerHandler("valid");else{this.S(d).attr(this.invalid_attr,""),d.setAttribute("aria-invalid","true");var A=n.find("small.error, span.error"),m=A.length>0?A[0].id:"";m.length>0&&d.setAttribute("aria-describedby",m),n.addClass("error"),_.length>0&&this.settings.error_labels&&_.addClass("error").attr("role","alert"),t(d).triggerHandler("invalid")}r.push(c[0])}}return r=[r.every(function(t){return t})]},valid_checkbox:function(t,e){var t=this.S(t),a=t.is(":checked")||!e;return a?t.removeAttr(this.invalid_attr).parent().removeClass("error"):t.attr(this.invalid_attr,"").parent().addClass("error"),a},valid_radio:function(t){for(var e=t.getAttribute("name"),a=this.S(t).closest("[data-"+this.attr_name(!0)+"]").find("[name='"+e+"']"),r=a.length,i=!1,n=0;r>n;n++)a[n].checked&&(i=!0);for(var n=0;r>n;n++)i?this.S(a[n]).removeAttr(this.invalid_attr).parent().removeClass("error"):this.S(a[n]).attr(this.invalid_attr,"").parent().addClass("error");return i},valid_equal:function(t,e,r){var i=a.getElementById(t.getAttribute(this.add_namespace("data-equalto"))).value,n=t.value,s=i===n;return s?(this.S(t).removeAttr(this.invalid_attr),r.removeClass("error"),label.length>0&&settings.error_labels&&label.removeClass("error")):(this.S(t).attr(this.invalid_attr,""),r.addClass("error"),label.length>0&&settings.error_labels&&label.addClass("error")),s},valid_oneof:function(t,e,a,r){var t=this.S(t),i=this.S("["+this.add_namespace("data-oneof")+"]"),n=i.filter(":checked").length>0;if(n?t.removeAttr(this.invalid_attr).parent().removeClass("error"):t.attr(this.invalid_attr,"").parent().addClass("error"),!r){var s=this;i.each(function(){s.valid_oneof.call(s,this,null,null,!0)})}return n}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.accordion.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.accordion.js new file mode 100644 index 000000000..3cbf6e77f --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.accordion.js @@ -0,0 +1,65 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.accordion = { + name : 'accordion', + + version : '5.4.5', + + settings : { + active_class: 'active', + multi_expand: false, + toggleable: true, + callback : function () {} + }, + + init : function (scope, method, options) { + this.bindings(method, options); + }, + + events : function () { + var self = this; + var S = this.S; + S(this.scope) + .off('.fndtn.accordion') + .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a', function (e) { + var accordion = S(this).closest('[' + self.attr_name() + ']'), + groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()), + settings = accordion.data(self.attr_name(true) + '-init'), + target = S('#' + this.href.split('#')[1]), + aunts = $('> dd', accordion), + siblings = aunts.children('.content'), + active_content = siblings.filter('.' + settings.active_class); + e.preventDefault(); + + if (accordion.attr(self.attr_name())) { + siblings = siblings.add('[' + groupSelector + '] dd > .content'); + aunts = aunts.add('[' + groupSelector + '] dd'); + } + + if (settings.toggleable && target.is(active_content)) { + target.parent('dd').toggleClass(settings.active_class, false); + target.toggleClass(settings.active_class, false); + settings.callback(target); + target.triggerHandler('toggled', [accordion]); + accordion.triggerHandler('toggled', [target]); + return; + } + + if (!settings.multi_expand) { + siblings.removeClass(settings.active_class); + aunts.removeClass(settings.active_class); + } + + target.addClass(settings.active_class).parent().addClass(settings.active_class); + settings.callback(target); + target.triggerHandler('toggled', [accordion]); + accordion.triggerHandler('toggled', [target]); + }); + }, + + off : function () {}, + + reflow : function () {} + }; +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.accordion.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.accordion.min.js new file mode 100644 index 000000000..4b9b18cfb --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.accordion.min.js @@ -0,0 +1 @@ +!function(t){"use strict";Foundation.libs.accordion={name:"accordion",version:"5.4.5",settings:{active_class:"active",multi_expand:!1,toggleable:!0,callback:function(){}},init:function(t,a,e){this.bindings(a,e)},events:function(){var a=this,e=this.S;e(this.scope).off(".fndtn.accordion").on("click.fndtn.accordion","["+this.attr_name()+"] > dd > a",function(n){var i=e(this).closest("["+a.attr_name()+"]"),s=a.attr_name()+"="+i.attr(a.attr_name()),c=i.data(a.attr_name(!0)+"-init"),l=e("#"+this.href.split("#")[1]),d=t("> dd",i),o=d.children(".content"),r=o.filter("."+c.active_class);return n.preventDefault(),i.attr(a.attr_name())&&(o=o.add("["+s+"] dd > .content"),d=d.add("["+s+"] dd")),c.toggleable&&l.is(r)?(l.parent("dd").toggleClass(c.active_class,!1),l.toggleClass(c.active_class,!1),c.callback(l),l.triggerHandler("toggled",[i]),void i.triggerHandler("toggled",[l])):(c.multi_expand||(o.removeClass(c.active_class),d.removeClass(c.active_class)),l.addClass(c.active_class).parent().addClass(c.active_class),c.callback(l),l.triggerHandler("toggled",[i]),void i.triggerHandler("toggled",[l]))})},off:function(){},reflow:function(){}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.alert.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.alert.js new file mode 100644 index 000000000..b8d38c95c --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.alert.js @@ -0,0 +1,43 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.alert = { + name : 'alert', + + version : '5.4.5', + + settings : { + callback: function (){} + }, + + init : function (scope, method, options) { + this.bindings(method, options); + }, + + events : function () { + var self = this, + S = this.S; + + $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) { + var alertBox = S(this).closest('[' + self.attr_name() + ']'), + settings = alertBox.data(self.attr_name(true) + '-init') || self.settings; + + e.preventDefault(); + if (Modernizr.csstransitions) { + alertBox.addClass("alert-close"); + alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function(e) { + S(this).trigger('close').trigger('close.fndtn.alert').remove(); + settings.callback(); + }); + } else { + alertBox.fadeOut(300, function () { + S(this).trigger('close').trigger('close.fndtn.alert').remove(); + settings.callback(); + }); + } + }); + }, + + reflow : function () {} + }; +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.alert.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.alert.min.js new file mode 100644 index 000000000..cafe1173f --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.alert.min.js @@ -0,0 +1 @@ +!function(t){"use strict";Foundation.libs.alert={name:"alert",version:"5.4.5",settings:{callback:function(){}},init:function(t,n,i){this.bindings(n,i)},events:function(){var n=this,i=this.S;t(this.scope).off(".alert").on("click.fndtn.alert","["+this.attr_name()+"] .close",function(t){var e=i(this).closest("["+n.attr_name()+"]"),s=e.data(n.attr_name(!0)+"-init")||n.settings;t.preventDefault(),Modernizr.csstransitions?(e.addClass("alert-close"),e.on("transitionend webkitTransitionEnd oTransitionEnd",function(){i(this).trigger("close").trigger("close.fndtn.alert").remove(),s.callback()})):e.fadeOut(300,function(){i(this).trigger("close").trigger("close.fndtn.alert").remove(),s.callback()})})},reflow:function(){}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.clearing.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.clearing.js new file mode 100644 index 000000000..984eb26dc --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.clearing.js @@ -0,0 +1,558 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.clearing = { + name : 'clearing', + + version: '5.4.5', + + settings : { + templates : { + viewing : '×' + + '' + }, + + // comma delimited list of selectors that, on click, will close clearing, + // add 'div.clearing-blackout, div.visible-img' to close on background click + close_selectors : '.clearing-close, div.clearing-blackout', + + // Default to the entire li element. + open_selectors : '', + + // Image will be skipped in carousel. + skip_selector : '', + + touch_label : '', + + // event initializers and locks + init : false, + locked : false + }, + + init : function (scope, method, options) { + var self = this; + Foundation.inherit(this, 'throttle image_loaded'); + + this.bindings(method, options); + + if (self.S(this.scope).is('[' + this.attr_name() + ']')) { + this.assemble(self.S('li', this.scope)); + } else { + self.S('[' + this.attr_name() + ']', this.scope).each(function () { + self.assemble(self.S('li', this)); + }); + } + }, + + events : function (scope) { + var self = this, + S = self.S, + $scroll_container = $('.scroll-container'); + + if ($scroll_container.length > 0) { + this.scope = $scroll_container; + } + + S(this.scope) + .off('.clearing') + .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors, + function (e, current, target) { + var current = current || S(this), + target = target || current, + next = current.next('li'), + settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'), + image = S(e.target); + + e.preventDefault(); + + if (!settings) { + self.init(); + settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'); + } + + // if clearing is open and the current image is + // clicked, go to the next image in sequence + if (target.hasClass('visible') && + current[0] === target[0] && + next.length > 0 && self.is_open(current)) { + target = next; + image = S('img', target); + } + + // set current and target to the clicked li if not otherwise defined. + self.open(image, current, target); + self.update_paddles(target); + }) + + .on('click.fndtn.clearing', '.clearing-main-next', + function (e) { self.nav(e, 'next') }) + .on('click.fndtn.clearing', '.clearing-main-prev', + function (e) { self.nav(e, 'prev') }) + .on('click.fndtn.clearing', this.settings.close_selectors, + function (e) { Foundation.libs.clearing.close(e, this) }); + + $(document).on('keydown.fndtn.clearing', + function (e) { self.keydown(e) }); + + S(window).off('.clearing').on('resize.fndtn.clearing', + function () { self.resize() }); + + this.swipe_events(scope); + }, + + swipe_events : function (scope) { + var self = this, + S = self.S; + + S(this.scope) + .on('touchstart.fndtn.clearing', '.visible-img', function(e) { + if (!e.touches) { e = e.originalEvent; } + var data = { + start_page_x: e.touches[0].pageX, + start_page_y: e.touches[0].pageY, + start_time: (new Date()).getTime(), + delta_x: 0, + is_scrolling: undefined + }; + + S(this).data('swipe-transition', data); + e.stopPropagation(); + }) + .on('touchmove.fndtn.clearing', '.visible-img', function(e) { + if (!e.touches) { e = e.originalEvent; } + // Ignore pinch/zoom events + if(e.touches.length > 1 || e.scale && e.scale !== 1) return; + + var data = S(this).data('swipe-transition'); + + if (typeof data === 'undefined') { + data = {}; + } + + data.delta_x = e.touches[0].pageX - data.start_page_x; + + if (Foundation.rtl) { + data.delta_x = -data.delta_x; + } + + if (typeof data.is_scrolling === 'undefined') { + data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) ); + } + + if (!data.is_scrolling && !data.active) { + e.preventDefault(); + var direction = (data.delta_x < 0) ? 'next' : 'prev'; + data.active = true; + self.nav(e, direction); + } + }) + .on('touchend.fndtn.clearing', '.visible-img', function(e) { + S(this).data('swipe-transition', {}); + e.stopPropagation(); + }); + }, + + assemble : function ($li) { + var $el = $li.parent(); + + if ($el.parent().hasClass('carousel')) { + return; + } + + $el.after('
    '); + + var grid = $el.detach(), + grid_outerHTML = ''; + + if (grid[0] == null) { + return; + } else { + grid_outerHTML = grid[0].outerHTML; + } + + var holder = this.S('#foundationClearingHolder'), + settings = $el.data(this.attr_name(true) + '-init'), + data = { + grid: '', + viewing: settings.templates.viewing + }, + wrapper = '
    ' + data.viewing + + data.grid + '
    ', + touch_label = this.settings.touch_label; + + if (Modernizr.touch) { + wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end(); + } + + holder.after(wrapper).remove(); + }, + + open : function ($image, current, target) { + var self = this, + body = $(document.body), + root = target.closest('.clearing-assembled'), + container = self.S('div', root).first(), + visible_image = self.S('.visible-img', container), + image = self.S('img', visible_image).not($image), + label = self.S('.clearing-touch-label', container), + error = false; + + // Event to disable scrolling on touch devices when Clearing is activated + $('body').on('touchmove',function(e){ + e.preventDefault(); + }); + + image.error(function () { + error = true; + }); + + function startLoad() { + setTimeout(function () { + this.image_loaded(image, function () { + if (image.outerWidth() === 1 && !error) { + startLoad.call(this); + } else { + cb.call(this, image); + } + }.bind(this)); + }.bind(this), 100); + } + + function cb (image) { + var $image = $(image); + $image.css('visibility', 'visible'); + // toggle the gallery + body.css('overflow', 'hidden'); + root.addClass('clearing-blackout'); + container.addClass('clearing-container'); + visible_image.show(); + this.fix_height(target) + .caption(self.S('.clearing-caption', visible_image), self.S('img', target)) + .center_and_label(image, label) + .shift(current, target, function () { + target.closest('li').siblings().removeClass('visible'); + target.closest('li').addClass('visible'); + }); + visible_image.trigger('opened.fndtn.clearing') + } + + if (!this.locked()) { + visible_image.trigger('open.fndtn.clearing'); + // set the image to the selected thumbnail + image + .attr('src', this.load($image)) + .css('visibility', 'hidden'); + + startLoad.call(this); + } + }, + + close : function (e, el) { + e.preventDefault(); + + var root = (function (target) { + if (/blackout/.test(target.selector)) { + return target; + } else { + return target.closest('.clearing-blackout'); + } + }($(el))), + body = $(document.body), container, visible_image; + + if (el === e.target && root) { + body.css('overflow', ''); + container = $('div', root).first(); + visible_image = $('.visible-img', container); + visible_image.trigger('close.fndtn.clearing'); + this.settings.prev_index = 0; + $('ul[' + this.attr_name() + ']', root) + .attr('style', '').closest('.clearing-blackout') + .removeClass('clearing-blackout'); + container.removeClass('clearing-container'); + visible_image.hide(); + visible_image.trigger('closed.fndtn.clearing'); + } + + // Event to re-enable scrolling on touch devices + $('body').off('touchmove'); + + return false; + }, + + is_open : function (current) { + return current.parent().prop('style').length > 0; + }, + + keydown : function (e) { + var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'), + NEXT_KEY = this.rtl ? 37 : 39, + PREV_KEY = this.rtl ? 39 : 37, + ESC_KEY = 27; + + if (e.which === NEXT_KEY) this.go(clearing, 'next'); + if (e.which === PREV_KEY) this.go(clearing, 'prev'); + if (e.which === ESC_KEY) this.S('a.clearing-close').trigger('click').trigger('click.fndtn.clearing'); + }, + + nav : function (e, direction) { + var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout'); + + e.preventDefault(); + this.go(clearing, direction); + }, + + resize : function () { + var image = $('img', '.clearing-blackout .visible-img'), + label = $('.clearing-touch-label', '.clearing-blackout'); + + if (image.length) { + this.center_and_label(image, label); + image.trigger('resized.fndtn.clearing') + } + }, + + // visual adjustments + fix_height : function (target) { + var lis = target.parent().children(), + self = this; + + lis.each(function () { + var li = self.S(this), + image = li.find('img'); + + if (li.height() > image.outerHeight()) { + li.addClass('fix-height'); + } + }) + .closest('ul') + .width(lis.length * 100 + '%'); + + return this; + }, + + update_paddles : function (target) { + target = target.closest('li'); + var visible_image = target + .closest('.carousel') + .siblings('.visible-img'); + + if (target.next().length > 0) { + this.S('.clearing-main-next', visible_image).removeClass('disabled'); + } else { + this.S('.clearing-main-next', visible_image).addClass('disabled'); + } + + if (target.prev().length > 0) { + this.S('.clearing-main-prev', visible_image).removeClass('disabled'); + } else { + this.S('.clearing-main-prev', visible_image).addClass('disabled'); + } + }, + + center_and_label : function (target, label) { + if (!this.rtl) { + target.css({ + marginLeft : -(target.outerWidth() / 2), + marginTop : -(target.outerHeight() / 2) + }); + + if (label.length > 0) { + label.css({ + marginLeft : -(label.outerWidth() / 2), + marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10 + }); + } + } else { + target.css({ + marginRight : -(target.outerWidth() / 2), + marginTop : -(target.outerHeight() / 2), + left: 'auto', + right: '50%' + }); + + if (label.length > 0) { + label.css({ + marginRight : -(label.outerWidth() / 2), + marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10, + left: 'auto', + right: '50%' + }); + } + } + return this; + }, + + // image loading and preloading + + load : function ($image) { + var href; + + if ($image[0].nodeName === "A") { + href = $image.attr('href'); + } else { + href = $image.parent().attr('href'); + } + + this.preload($image); + + if (href) return href; + return $image.attr('src'); + }, + + preload : function ($image) { + this + .img($image.closest('li').next()) + .img($image.closest('li').prev()); + }, + + img : function (img) { + if (img.length) { + var new_img = new Image(), + new_a = this.S('a', img); + + if (new_a.length) { + new_img.src = new_a.attr('href'); + } else { + new_img.src = this.S('img', img).attr('src'); + } + } + return this; + }, + + // image caption + + caption : function (container, $image) { + var caption = $image.attr('data-caption'); + + if (caption) { + container + .html(caption) + .show(); + } else { + container + .text('') + .hide(); + } + return this; + }, + + // directional methods + + go : function ($ul, direction) { + var current = this.S('.visible', $ul), + target = current[direction](); + + // Check for skip selector. + if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) { + target = target[direction](); + } + + if (target.length) { + this.S('img', target) + .trigger('click', [current, target]).trigger('click.fndtn.clearing', [current, target]) + .trigger('change.fndtn.clearing'); + } + }, + + shift : function (current, target, callback) { + var clearing = target.parent(), + old_index = this.settings.prev_index || target.index(), + direction = this.direction(clearing, current, target), + dir = this.rtl ? 'right' : 'left', + left = parseInt(clearing.css('left'), 10), + width = target.outerWidth(), + skip_shift; + + var dir_obj = {}; + + // we use jQuery animate instead of CSS transitions because we + // need a callback to unlock the next animation + // needs support for RTL ** + if (target.index() !== old_index && !/skip/.test(direction)){ + if (/left/.test(direction)) { + this.lock(); + dir_obj[dir] = left + width; + clearing.animate(dir_obj, 300, this.unlock()); + } else if (/right/.test(direction)) { + this.lock(); + dir_obj[dir] = left - width; + clearing.animate(dir_obj, 300, this.unlock()); + } + } else if (/skip/.test(direction)) { + // the target image is not adjacent to the current image, so + // do we scroll right or not + skip_shift = target.index() - this.settings.up_count; + this.lock(); + + if (skip_shift > 0) { + dir_obj[dir] = -(skip_shift * width); + clearing.animate(dir_obj, 300, this.unlock()); + } else { + dir_obj[dir] = 0; + clearing.animate(dir_obj, 300, this.unlock()); + } + } + + callback(); + }, + + direction : function ($el, current, target) { + var lis = this.S('li', $el), + li_width = lis.outerWidth() + (lis.outerWidth() / 4), + up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1, + target_index = lis.index(target), + response; + + this.settings.up_count = up_count; + + if (this.adjacent(this.settings.prev_index, target_index)) { + if ((target_index > up_count) && target_index > this.settings.prev_index) { + response = 'right'; + } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) { + response = 'left'; + } else { + response = false; + } + } else { + response = 'skip'; + } + + this.settings.prev_index = target_index; + + return response; + }, + + adjacent : function (current_index, target_index) { + for (var i = target_index + 1; i >= target_index - 1; i--) { + if (i === current_index) return true; + } + return false; + }, + + // lock management + + lock : function () { + this.settings.locked = true; + }, + + unlock : function () { + this.settings.locked = false; + }, + + locked : function () { + return this.settings.locked; + }, + + off : function () { + this.S(this.scope).off('.fndtn.clearing'); + this.S(window).off('.fndtn.clearing'); + }, + + reflow : function () { + this.init(); + } + }; + +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.clearing.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.clearing.min.js new file mode 100644 index 000000000..b83942ae4 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.clearing.min.js @@ -0,0 +1 @@ +!function(t,i,e,n){"use strict";Foundation.libs.clearing={name:"clearing",version:"5.4.5",settings:{templates:{viewing:'×'},close_selectors:".clearing-close, div.clearing-blackout",open_selectors:"",skip_selector:"",touch_label:"",init:!1,locked:!1},init:function(t,i,e){var n=this;Foundation.inherit(this,"throttle image_loaded"),this.bindings(i,e),n.S(this.scope).is("["+this.attr_name()+"]")?this.assemble(n.S("li",this.scope)):n.S("["+this.attr_name()+"]",this.scope).each(function(){n.assemble(n.S("li",this))})},events:function(n){var s=this,a=s.S,r=t(".scroll-container");r.length>0&&(this.scope=r),a(this.scope).off(".clearing").on("click.fndtn.clearing","ul["+this.attr_name()+"] li "+this.settings.open_selectors,function(t,i,e){var i=i||a(this),e=e||i,n=i.next("li"),r=i.closest("["+s.attr_name()+"]").data(s.attr_name(!0)+"-init"),l=a(t.target);t.preventDefault(),r||(s.init(),r=i.closest("["+s.attr_name()+"]").data(s.attr_name(!0)+"-init")),e.hasClass("visible")&&i[0]===e[0]&&n.length>0&&s.is_open(i)&&(e=n,l=a("img",e)),s.open(l,i,e),s.update_paddles(e)}).on("click.fndtn.clearing",".clearing-main-next",function(t){s.nav(t,"next")}).on("click.fndtn.clearing",".clearing-main-prev",function(t){s.nav(t,"prev")}).on("click.fndtn.clearing",this.settings.close_selectors,function(t){Foundation.libs.clearing.close(t,this)}),t(e).on("keydown.fndtn.clearing",function(t){s.keydown(t)}),a(i).off(".clearing").on("resize.fndtn.clearing",function(){s.resize()}),this.swipe_events(n)},swipe_events:function(){var t=this,i=t.S;i(this.scope).on("touchstart.fndtn.clearing",".visible-img",function(t){t.touches||(t=t.originalEvent);var e={start_page_x:t.touches[0].pageX,start_page_y:t.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:n};i(this).data("swipe-transition",e),t.stopPropagation()}).on("touchmove.fndtn.clearing",".visible-img",function(e){if(e.touches||(e=e.originalEvent),!(e.touches.length>1||e.scale&&1!==e.scale)){var n=i(this).data("swipe-transition");if("undefined"==typeof n&&(n={}),n.delta_x=e.touches[0].pageX-n.start_page_x,Foundation.rtl&&(n.delta_x=-n.delta_x),"undefined"==typeof n.is_scrolling&&(n.is_scrolling=!!(n.is_scrolling||Math.abs(n.delta_x)
');var n=e.detach(),s="";if(null!=n[0]){s=n[0].outerHTML;var a=this.S("#foundationClearingHolder"),r=e.data(this.attr_name(!0)+"-init"),l={grid:'",viewing:r.templates.viewing},o='
'+l.viewing+l.grid+"
",c=this.settings.touch_label;Modernizr.touch&&(o=t(o).find(".clearing-touch-label").html(c).end()),a.after(o).remove()}}},open:function(i,n,s){function a(){setTimeout(function(){this.image_loaded(d,function(){1!==d.outerWidth()||f?r.call(this,d):a.call(this)}.bind(this))}.bind(this),100)}function r(i){var e=t(i);e.css("visibility","visible"),o.css("overflow","hidden"),c.addClass("clearing-blackout"),h.addClass("clearing-container"),g.show(),this.fix_height(s).caption(l.S(".clearing-caption",g),l.S("img",s)).center_and_label(i,u).shift(n,s,function(){s.closest("li").siblings().removeClass("visible"),s.closest("li").addClass("visible")}),g.trigger("opened.fndtn.clearing")}var l=this,o=t(e.body),c=s.closest(".clearing-assembled"),h=l.S("div",c).first(),g=l.S(".visible-img",h),d=l.S("img",g).not(i),u=l.S(".clearing-touch-label",h),f=!1;t("body").on("touchmove",function(t){t.preventDefault()}),d.error(function(){f=!0}),this.locked()||(g.trigger("open.fndtn.clearing"),d.attr("src",this.load(i)).css("visibility","hidden"),a.call(this))},close:function(i,n){i.preventDefault();var s,a,r=function(t){return/blackout/.test(t.selector)?t:t.closest(".clearing-blackout")}(t(n)),l=t(e.body);return n===i.target&&r&&(l.css("overflow",""),s=t("div",r).first(),a=t(".visible-img",s),a.trigger("close.fndtn.clearing"),this.settings.prev_index=0,t("ul["+this.attr_name()+"]",r).attr("style","").closest(".clearing-blackout").removeClass("clearing-blackout"),s.removeClass("clearing-container"),a.hide(),a.trigger("closed.fndtn.clearing")),t("body").off("touchmove"),!1},is_open:function(t){return t.parent().prop("style").length>0},keydown:function(i){var e=t(".clearing-blackout ul["+this.attr_name()+"]"),n=this.rtl?37:39,s=this.rtl?39:37,a=27;i.which===n&&this.go(e,"next"),i.which===s&&this.go(e,"prev"),i.which===a&&this.S("a.clearing-close").trigger("click").trigger("click.fndtn.clearing")},nav:function(i,e){var n=t("ul["+this.attr_name()+"]",".clearing-blackout");i.preventDefault(),this.go(n,e)},resize:function(){var i=t("img",".clearing-blackout .visible-img"),e=t(".clearing-touch-label",".clearing-blackout");i.length&&(this.center_and_label(i,e),i.trigger("resized.fndtn.clearing"))},fix_height:function(t){var i=t.parent().children(),e=this;return i.each(function(){var t=e.S(this),i=t.find("img");t.height()>i.outerHeight()&&t.addClass("fix-height")}).closest("ul").width(100*i.length+"%"),this},update_paddles:function(t){t=t.closest("li");var i=t.closest(".carousel").siblings(".visible-img");t.next().length>0?this.S(".clearing-main-next",i).removeClass("disabled"):this.S(".clearing-main-next",i).addClass("disabled"),t.prev().length>0?this.S(".clearing-main-prev",i).removeClass("disabled"):this.S(".clearing-main-prev",i).addClass("disabled")},center_and_label:function(t,i){return this.rtl?(t.css({marginRight:-(t.outerWidth()/2),marginTop:-(t.outerHeight()/2),left:"auto",right:"50%"}),i.length>0&&i.css({marginRight:-(i.outerWidth()/2),marginTop:-(t.outerHeight()/2)-i.outerHeight()-10,left:"auto",right:"50%"})):(t.css({marginLeft:-(t.outerWidth()/2),marginTop:-(t.outerHeight()/2)}),i.length>0&&i.css({marginLeft:-(i.outerWidth()/2),marginTop:-(t.outerHeight()/2)-i.outerHeight()-10})),this},load:function(t){var i;return i="A"===t[0].nodeName?t.attr("href"):t.parent().attr("href"),this.preload(t),i?i:t.attr("src")},preload:function(t){this.img(t.closest("li").next()).img(t.closest("li").prev())},img:function(t){if(t.length){var i=new Image,e=this.S("a",t);i.src=e.length?e.attr("href"):this.S("img",t).attr("src")}return this},caption:function(t,i){var e=i.attr("data-caption");return e?t.html(e).show():t.text("").hide(),this},go:function(t,i){var e=this.S(".visible",t),n=e[i]();this.settings.skip_selector&&0!=n.find(this.settings.skip_selector).length&&(n=n[i]()),n.length&&this.S("img",n).trigger("click",[e,n]).trigger("click.fndtn.clearing",[e,n]).trigger("change.fndtn.clearing")},shift:function(t,i,e){var n,s=i.parent(),a=this.settings.prev_index||i.index(),r=this.direction(s,t,i),l=this.rtl?"right":"left",o=parseInt(s.css("left"),10),c=i.outerWidth(),h={};i.index()===a||/skip/.test(r)?/skip/.test(r)&&(n=i.index()-this.settings.up_count,this.lock(),n>0?(h[l]=-(n*c),s.animate(h,300,this.unlock())):(h[l]=0,s.animate(h,300,this.unlock()))):/left/.test(r)?(this.lock(),h[l]=o+c,s.animate(h,300,this.unlock())):/right/.test(r)&&(this.lock(),h[l]=o-c,s.animate(h,300,this.unlock())),e()},direction:function(t,i,e){var n,s=this.S("li",t),a=s.outerWidth()+s.outerWidth()/4,r=Math.floor(this.S(".clearing-container").outerWidth()/a)-1,l=s.index(e);return this.settings.up_count=r,n=this.adjacent(this.settings.prev_index,l)?l>r&&l>this.settings.prev_index?"right":l>r-1&&l<=this.settings.prev_index?"left":!1:"skip",this.settings.prev_index=l,n},adjacent:function(t,i){for(var e=i+1;e>=i-1;e--)if(e===t)return!0;return!1},lock:function(){this.settings.locked=!0},unlock:function(){this.settings.locked=!1},locked:function(){return this.settings.locked},off:function(){this.S(this.scope).off(".fndtn.clearing"),this.S(i).off(".fndtn.clearing")},reflow:function(){this.init()}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.dropdown.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.dropdown.js new file mode 100644 index 000000000..252b87cae --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.dropdown.js @@ -0,0 +1,322 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.dropdown = { + name : 'dropdown', + + version : '5.4.5', + + settings : { + active_class: 'open', + mega_class: 'mega', + align: 'bottom', + is_hover: false, + opened: function(){}, + closed: function(){} + }, + + init : function (scope, method, options) { + Foundation.inherit(this, 'throttle'); + + this.bindings(method, options); + }, + + events : function (scope) { + var self = this, + S = self.S; + + S(this.scope) + .off('.dropdown') + .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) { + var settings = S(this).data(self.attr_name(true) + '-init') || self.settings; + if (!settings.is_hover || Modernizr.touch) { + e.preventDefault(); + self.toggle($(this)); + } + }) + .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) { + var $this = S(this), + dropdown, + target; + + clearTimeout(self.timeout); + + if ($this.data(self.data_attr())) { + dropdown = S('#' + $this.data(self.data_attr())); + target = $this; + } else { + dropdown = $this; + target = S("[" + self.attr_name() + "='" + dropdown.attr('id') + "']"); + } + + var settings = target.data(self.attr_name(true) + '-init') || self.settings; + + if(S(e.target).data(self.data_attr()) && settings.is_hover) { + self.closeall.call(self); + } + + if (settings.is_hover) self.open.apply(self, [dropdown, target]); + }) + .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) { + var $this = S(this); + self.timeout = setTimeout(function () { + if ($this.data(self.data_attr())) { + var settings = $this.data(self.data_attr(true) + '-init') || self.settings; + if (settings.is_hover) self.close.call(self, S('#' + $this.data(self.data_attr()))); + } else { + var target = S('[' + self.attr_name() + '="' + S(this).attr('id') + '"]'), + settings = target.data(self.attr_name(true) + '-init') || self.settings; + if (settings.is_hover) self.close.call(self, $this); + } + }.bind(this), 150); + }) + .on('click.fndtn.dropdown', function (e) { + var parent = S(e.target).closest('[' + self.attr_name() + '-content]'); + + if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) { + return; + } + if (!(S(e.target).data('revealId')) && + (parent.length > 0 && (S(e.target).is('[' + self.attr_name() + '-content]') || + $.contains(parent.first()[0], e.target)))) { + e.stopPropagation(); + return; + } + + self.close.call(self, S('[' + self.attr_name() + '-content]')); + }) + .on('opened.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () { + self.settings.opened.call(this); + }) + .on('closed.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () { + self.settings.closed.call(this); + }); + + S(window) + .off('.dropdown') + .on('resize.fndtn.dropdown', self.throttle(function () { + self.resize.call(self); + }, 50)); + + this.resize(); + }, + + close: function (dropdown) { + var self = this; + dropdown.each(function () { + var original_target = $('[' + self.attr_name() + '=' + dropdown[0].id + ']') || $('aria-controls=' + dropdown[0].id+ ']'); + original_target.attr('aria-expanded', "false"); + if (self.S(this).hasClass(self.settings.active_class)) { + self.S(this) + .css(Foundation.rtl ? 'right':'left', '-99999px') + .attr('aria-hidden', "true") + .removeClass(self.settings.active_class) + .prev('[' + self.attr_name() + ']') + .removeClass(self.settings.active_class) + .removeData('target'); + + self.S(this).trigger('closed').trigger('closed.fndtn.dropdown', [dropdown]); + } + }); + }, + + closeall: function() { + var self = this; + $.each(self.S('[' + this.attr_name() + '-content]'), function() { + self.close.call(self, self.S(this)); + }); + }, + + open: function (dropdown, target) { + this + .css(dropdown + .addClass(this.settings.active_class), target); + dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class); + dropdown.data('target', target.get(0)).trigger('opened').trigger('opened.fndtn.dropdown', [dropdown, target]); + dropdown.attr('aria-hidden', 'false'); + target.attr('aria-expanded', 'true'); + dropdown.focus(); + }, + + data_attr: function () { + if (this.namespace.length > 0) { + return this.namespace + '-' + this.name; + } + + return this.name; + }, + + toggle : function (target) { + var dropdown = this.S('#' + target.data(this.data_attr())); + if (dropdown.length === 0) { + // No dropdown found, not continuing + return; + } + + this.close.call(this, this.S('[' + this.attr_name() + '-content]').not(dropdown)); + + if (dropdown.hasClass(this.settings.active_class)) { + this.close.call(this, dropdown); + if (dropdown.data('target') !== target.get(0)) + this.open.call(this, dropdown, target); + } else { + this.open.call(this, dropdown, target); + } + }, + + resize : function () { + var dropdown = this.S('[' + this.attr_name() + '-content].open'), + target = this.S("[" + this.attr_name() + "='" + dropdown.attr('id') + "']"); + + if (dropdown.length && target.length) { + this.css(dropdown, target); + } + }, + + css : function (dropdown, target) { + var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8), + settings = target.data(this.attr_name(true) + '-init') || this.settings; + + this.clear_idx(); + + if (this.small()) { + var p = this.dirs.bottom.call(dropdown, target, settings); + + dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({ + position : 'absolute', + width: '95%', + 'max-width': 'none', + top: p.top + }); + + dropdown.css(Foundation.rtl ? 'right':'left', left_offset); + } else { + + this.style(dropdown, target, settings); + } + + return dropdown; + }, + + style : function (dropdown, target, settings) { + var css = $.extend({position: 'absolute'}, + this.dirs[settings.align].call(dropdown, target, settings)); + + dropdown.attr('style', '').css(css); + }, + + // return CSS property object + // `this` is the dropdown + dirs : { + // Calculate target offset + _base : function (t) { + var o_p = this.offsetParent(), + o = o_p.offset(), + p = t.offset(); + + p.top -= o.top; + p.left -= o.left; + + return p; + }, + top: function (t, s) { + var self = Foundation.libs.dropdown, + p = self.dirs._base.call(this, t); + + this.addClass('drop-top'); + + if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) { + self.adjust_pip(this,t,s,p); + } + + if (Foundation.rtl) { + return {left: p.left - this.outerWidth() + t.outerWidth(), + top: p.top - this.outerHeight()}; + } + + return {left: p.left, top: p.top - this.outerHeight()}; + }, + bottom: function (t,s) { + var self = Foundation.libs.dropdown, + p = self.dirs._base.call(this, t); + + if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) { + self.adjust_pip(this,t,s,p); + } + + if (self.rtl) { + return {left: p.left - this.outerWidth() + t.outerWidth(), top: p.top + t.outerHeight()}; + } + + return {left: p.left, top: p.top + t.outerHeight()}; + }, + left: function (t, s) { + var p = Foundation.libs.dropdown.dirs._base.call(this, t); + + this.addClass('drop-left'); + + return {left: p.left - this.outerWidth(), top: p.top}; + }, + right: function (t, s) { + var p = Foundation.libs.dropdown.dirs._base.call(this, t); + + this.addClass('drop-right'); + + return {left: p.left + t.outerWidth(), top: p.top}; + } + }, + + // Insert rule to style psuedo elements + adjust_pip : function (dropdown,target,settings,position) { + var sheet = Foundation.stylesheet, + pip_offset_base = 8; + + if (dropdown.hasClass(settings.mega_class)) { + pip_offset_base = position.left + (target.outerWidth()/2) - 8; + } + else if (this.small()) { + pip_offset_base += position.left - 8; + } + + this.rule_idx = sheet.cssRules.length; + + var sel_before = '.f-dropdown.open:before', + sel_after = '.f-dropdown.open:after', + css_before = 'left: ' + pip_offset_base + 'px;', + css_after = 'left: ' + (pip_offset_base - 1) + 'px;'; + + if (sheet.insertRule) { + sheet.insertRule([sel_before, '{', css_before, '}'].join(' '), this.rule_idx); + sheet.insertRule([sel_after, '{', css_after, '}'].join(' '), this.rule_idx + 1); + } else { + sheet.addRule(sel_before, css_before, this.rule_idx); + sheet.addRule(sel_after, css_after, this.rule_idx + 1); + } + }, + + // Remove old dropdown rule index + clear_idx : function () { + var sheet = Foundation.stylesheet; + + if (this.rule_idx) { + sheet.deleteRule(this.rule_idx); + sheet.deleteRule(this.rule_idx); + delete this.rule_idx; + } + }, + + small : function () { + return matchMedia(Foundation.media_queries.small).matches && + !matchMedia(Foundation.media_queries.medium).matches; + }, + + off: function () { + this.S(this.scope).off('.fndtn.dropdown'); + this.S('html, body').off('.fndtn.dropdown'); + this.S(window).off('.fndtn.dropdown'); + this.S('[data-dropdown-content]').off('.fndtn.dropdown'); + }, + + reflow : function () {} + }; +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.dropdown.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.dropdown.min.js new file mode 100644 index 000000000..b146fb132 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.dropdown.min.js @@ -0,0 +1 @@ +!function(t,e){"use strict";Foundation.libs.dropdown={name:"dropdown",version:"5.4.5",settings:{active_class:"open",mega_class:"mega",align:"bottom",is_hover:!1,opened:function(){},closed:function(){}},init:function(t,e,i){Foundation.inherit(this,"throttle"),this.bindings(e,i)},events:function(){var i=this,a=i.S;a(this.scope).off(".dropdown").on("click.fndtn.dropdown","["+this.attr_name()+"]",function(e){var n=a(this).data(i.attr_name(!0)+"-init")||i.settings;(!n.is_hover||Modernizr.touch)&&(e.preventDefault(),i.toggle(t(this)))}).on("mouseenter.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(t){var e,n,s=a(this);clearTimeout(i.timeout),s.data(i.data_attr())?(e=a("#"+s.data(i.data_attr())),n=s):(e=s,n=a("["+i.attr_name()+"='"+e.attr("id")+"']"));var o=n.data(i.attr_name(!0)+"-init")||i.settings;a(t.target).data(i.data_attr())&&o.is_hover&&i.closeall.call(i),o.is_hover&&i.open.apply(i,[e,n])}).on("mouseleave.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(){var t=a(this);i.timeout=setTimeout(function(){if(t.data(i.data_attr())){var e=t.data(i.data_attr(!0)+"-init")||i.settings;e.is_hover&&i.close.call(i,a("#"+t.data(i.data_attr())))}else{var n=a("["+i.attr_name()+'="'+a(this).attr("id")+'"]'),e=n.data(i.attr_name(!0)+"-init")||i.settings;e.is_hover&&i.close.call(i,t)}}.bind(this),150)}).on("click.fndtn.dropdown",function(e){var n=a(e.target).closest("["+i.attr_name()+"-content]");if(!(a(e.target).closest("["+i.attr_name()+"]").length>0))return!a(e.target).data("revealId")&&n.length>0&&(a(e.target).is("["+i.attr_name()+"-content]")||t.contains(n.first()[0],e.target))?void e.stopPropagation():void i.close.call(i,a("["+i.attr_name()+"-content]"))}).on("opened.fndtn.dropdown","["+i.attr_name()+"-content]",function(){i.settings.opened.call(this)}).on("closed.fndtn.dropdown","["+i.attr_name()+"-content]",function(){i.settings.closed.call(this)}),a(e).off(".dropdown").on("resize.fndtn.dropdown",i.throttle(function(){i.resize.call(i)},50)),this.resize()},close:function(e){var i=this;e.each(function(){var a=t("["+i.attr_name()+"="+e[0].id+"]")||t("aria-controls="+e[0].id+"]");a.attr("aria-expanded","false"),i.S(this).hasClass(i.settings.active_class)&&(i.S(this).css(Foundation.rtl?"right":"left","-99999px").attr("aria-hidden","true").removeClass(i.settings.active_class).prev("["+i.attr_name()+"]").removeClass(i.settings.active_class).removeData("target"),i.S(this).trigger("closed").trigger("closed.fndtn.dropdown",[e]))})},closeall:function(){var e=this;t.each(e.S("["+this.attr_name()+"-content]"),function(){e.close.call(e,e.S(this))})},open:function(t,e){this.css(t.addClass(this.settings.active_class),e),t.prev("["+this.attr_name()+"]").addClass(this.settings.active_class),t.data("target",e.get(0)).trigger("opened").trigger("opened.fndtn.dropdown",[t,e]),t.attr("aria-hidden","false"),e.attr("aria-expanded","true"),t.focus()},data_attr:function(){return this.namespace.length>0?this.namespace+"-"+this.name:this.name},toggle:function(t){var e=this.S("#"+t.data(this.data_attr()));0!==e.length&&(this.close.call(this,this.S("["+this.attr_name()+"-content]").not(e)),e.hasClass(this.settings.active_class)?(this.close.call(this,e),e.data("target")!==t.get(0)&&this.open.call(this,e,t)):this.open.call(this,e,t))},resize:function(){var t=this.S("["+this.attr_name()+"-content].open"),e=this.S("["+this.attr_name()+"='"+t.attr("id")+"']");t.length&&e.length&&this.css(t,e)},css:function(t,e){var i=Math.max((e.width()-t.width())/2,8),a=e.data(this.attr_name(!0)+"-init")||this.settings;if(this.clear_idx(),this.small()){var n=this.dirs.bottom.call(t,e,a);t.attr("style","").removeClass("drop-left drop-right drop-top").css({position:"absolute",width:"95%","max-width":"none",top:n.top}),t.css(Foundation.rtl?"right":"left",i)}else this.style(t,e,a);return t},style:function(e,i,a){var n=t.extend({position:"absolute"},this.dirs[a.align].call(e,i,a));e.attr("style","").css(n)},dirs:{_base:function(t){var e=this.offsetParent(),i=e.offset(),a=t.offset();return a.top-=i.top,a.left-=i.left,a},top:function(t,e){var i=Foundation.libs.dropdown,a=i.dirs._base.call(this,t);return this.addClass("drop-top"),(t.outerWidth() 0) { + var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]'); + + while (count--) { + var mq, rule = scenarios[count][2]; + if (this.settings.named_queries.hasOwnProperty(rule)) { + mq = matchMedia(this.settings.named_queries[rule]); + } else { + mq = matchMedia(rule); + } + if (mq.matches) { + return {el: el, scenario: scenarios[count]}; + } + } + } + + return false; + }, + + load : function (type, force_update) { + if (typeof this['cached_' + type] === 'undefined' || force_update) { + this['update_' + type](); + } + + return this['cached_' + type]; + }, + + update_images : function () { + var images = this.S('img[' + this.data_attr + ']'), + count = images.length, + i = count, + loaded_count = 0, + data_attr = this.data_attr; + + this.cache = {}; + this.cached_images = []; + this.images_loaded = (count === 0); + + while (i--) { + loaded_count++; + if (images[i]) { + var str = images[i].getAttribute(data_attr) || ''; + + if (str.length > 0) { + this.cached_images.push(images[i]); + } + } + + if (loaded_count === count) { + this.images_loaded = true; + this.enhance('images'); + } + } + + return this; + }, + + update_nodes : function () { + var nodes = this.S('[' + this.data_attr + ']').not('img'), + count = nodes.length, + i = count, + loaded_count = 0, + data_attr = this.data_attr; + + this.cached_nodes = []; + this.nodes_loaded = (count === 0); + + + while (i--) { + loaded_count++; + var str = nodes[i].getAttribute(data_attr) || ''; + + if (str.length > 0) { + this.cached_nodes.push(nodes[i]); + } + + if(loaded_count === count) { + this.nodes_loaded = true; + this.enhance('nodes'); + } + } + + return this; + }, + + enhance : function (type) { + var i = this['cached_' + type].length; + + while (i--) { + this.object($(this['cached_' + type][i])); + } + + return $(window).trigger('resize').trigger('resize.fndtn.interchange'); + }, + + convert_directive : function (directive) { + + var trimmed = this.trim(directive); + + if (trimmed.length > 0) { + return trimmed; + } + + return 'replace'; + }, + + parse_scenario : function (scenario) { + // This logic had to be made more complex since some users were using commas in the url path + // So we cannot simply just split on a comma + var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/), + media_query = scenario[1]; + + if (directive_match) { + var path = directive_match[1], + directive = directive_match[2]; + } + else { + var cached_split = scenario[0].split(/,\s*$/), + path = cached_split[0], + directive = ''; + } + + return [this.trim(path), this.convert_directive(directive), this.trim(media_query)]; + }, + + object : function(el) { + var raw_arr = this.parse_data_attr(el), + scenarios = [], + i = raw_arr.length; + + if (i > 0) { + while (i--) { + var split = raw_arr[i].split(/\((.*?)(\))$/); + + if (split.length > 1) { + var params = this.parse_scenario(split); + scenarios.push(params); + } + } + } + + return this.store(el, scenarios); + }, + + store : function (el, scenarios) { + var uuid = this.random_str(), + current_uuid = el.data(this.add_namespace('uuid', true)); + + if (this.cache[current_uuid]) return this.cache[current_uuid]; + + el.attr(this.add_namespace('data-uuid'), uuid); + + return this.cache[uuid] = scenarios; + }, + + trim : function(str) { + + if (typeof str === 'string') { + return $.trim(str); + } + + return str; + }, + + set_data_attr: function (init) { + if (init) { + if (this.namespace.length > 0) { + return this.namespace + '-' + this.settings.load_attr; + } + + return this.settings.load_attr; + } + + if (this.namespace.length > 0) { + return 'data-' + this.namespace + '-' + this.settings.load_attr; + } + + return 'data-' + this.settings.load_attr; + }, + + parse_data_attr : function (el) { + var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/), + i = raw.length, + output = []; + + while (i--) { + if (raw[i].replace(/[\W\d]+/, '').length > 4) { + output.push(raw[i]); + } + } + + return output; + }, + + reflow : function () { + this.load('images', true); + this.load('nodes', true); + } + + }; + +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.interchange.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.interchange.min.js new file mode 100644 index 000000000..adfd598d7 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.interchange.min.js @@ -0,0 +1 @@ +!function(t,e){"use strict";Foundation.libs.interchange={name:"interchange",version:"5.4.5",cache:{},images_loaded:!1,nodes_loaded:!1,settings:{load_attr:"interchange",named_queries:{"default":"only screen",small:Foundation.media_queries.small,medium:Foundation.media_queries.medium,large:Foundation.media_queries.large,xlarge:Foundation.media_queries.xlarge,xxlarge:Foundation.media_queries.xxlarge,landscape:"only screen and (orientation: landscape)",portrait:"only 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)"},directives:{replace:function(e,i,a){if(/IMG/.test(e[0].nodeName)){var n=e[0].src;if(new RegExp(i,"i").test(n))return;return e[0].src=i,a(e[0].src)}var s=e.data(this.data_attr+"-last-path"),r=this;if(s!=i)return/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(i)?(t(e).css("background-image","url("+i+")"),e.data("interchange-last-path",i),a(i)):t.get(i,function(t){e.html(t),e.data(r.data_attr+"-last-path",i),a()})}}},init:function(e,i,a){Foundation.inherit(this,"throttle random_str"),this.data_attr=this.set_data_attr(),t.extend(!0,this.settings,i,a),this.bindings(i,a),this.load("images"),this.load("nodes")},get_media_hash:function(){var t="";for(var e in this.settings.named_queries)t+=matchMedia(this.settings.named_queries[e]).matches.toString();return t},events:function(){var i,a=this;return t(e).off(".interchange").on("resize.fndtn.interchange",a.throttle(function(){var t=a.get_media_hash();t!==i&&a.resize(),i=t},50)),this},resize:function(){var e=this.cache;if(!this.images_loaded||!this.nodes_loaded)return void setTimeout(t.proxy(this.resize,this),50);for(var i in e)if(e.hasOwnProperty(i)){var a=this.results(i,e[i]);a&&this.settings.directives[a.scenario[1]].call(this,a.el,a.scenario[0],function(){if(arguments[0]instanceof Array)var t=arguments[0];else var t=Array.prototype.slice.call(arguments,0);a.el.trigger(a.scenario[1],t)})}},results:function(t,e){var i=e.length;if(i>0)for(var a=this.S("["+this.add_namespace("data-uuid")+'="'+t+'"]');i--;){var n,s=e[i][2];if(n=matchMedia(this.settings.named_queries.hasOwnProperty(s)?this.settings.named_queries[s]:s),n.matches)return{el:a,scenario:e[i]}}return!1},load:function(t,e){return("undefined"==typeof this["cached_"+t]||e)&&this["update_"+t](),this["cached_"+t]},update_images:function(){var t=this.S("img["+this.data_attr+"]"),e=t.length,i=e,a=0,n=this.data_attr;for(this.cache={},this.cached_images=[],this.images_loaded=0===e;i--;){if(a++,t[i]){var s=t[i].getAttribute(n)||"";s.length>0&&this.cached_images.push(t[i])}a===e&&(this.images_loaded=!0,this.enhance("images"))}return this},update_nodes:function(){var t=this.S("["+this.data_attr+"]").not("img"),e=t.length,i=e,a=0,n=this.data_attr;for(this.cached_nodes=[],this.nodes_loaded=0===e;i--;){a++;var s=t[i].getAttribute(n)||"";s.length>0&&this.cached_nodes.push(t[i]),a===e&&(this.nodes_loaded=!0,this.enhance("nodes"))}return this},enhance:function(i){for(var a=this["cached_"+i].length;a--;)this.object(t(this["cached_"+i][a]));return t(e).trigger("resize").trigger("resize.fndtn.interchange")},convert_directive:function(t){var e=this.trim(t);return e.length>0?e:"replace"},parse_scenario:function(t){var e=t[0].match(/(.+),\s*(\w+)\s*$/),i=t[1];if(e)var a=e[1],n=e[2];else var s=t[0].split(/,\s*$/),a=s[0],n="";return[this.trim(a),this.convert_directive(n),this.trim(i)]},object:function(t){var e=this.parse_data_attr(t),i=[],a=e.length;if(a>0)for(;a--;){var n=e[a].split(/\((.*?)(\))$/);if(n.length>1){var s=this.parse_scenario(n);i.push(s)}}return this.store(t,i)},store:function(t,e){var i=this.random_str(),a=t.data(this.add_namespace("uuid",!0));return this.cache[a]?this.cache[a]:(t.attr(this.add_namespace("data-uuid"),i),this.cache[i]=e)},trim:function(e){return"string"==typeof e?t.trim(e):e},set_data_attr:function(t){return t?this.namespace.length>0?this.namespace+"-"+this.settings.load_attr:this.settings.load_attr:this.namespace.length>0?"data-"+this.namespace+"-"+this.settings.load_attr:"data-"+this.settings.load_attr},parse_data_attr:function(t){for(var e=t.attr(this.attr_name()).split(/\[(.*?)\]/),i=e.length,a=[];i--;)e[i].replace(/[\W\d]+/,"").length>4&&a.push(e[i]);return a},reflow:function(){this.load("images",!0),this.load("nodes",!0)}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.joyride.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.joyride.js new file mode 100644 index 000000000..37637404e --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.joyride.js @@ -0,0 +1,915 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + var Modernizr = Modernizr || false; + + Foundation.libs.joyride = { + name : 'joyride', + + version : '5.4.5', + + defaults : { + expose : false, // turn on or off the expose feature + modal : true, // Whether to cover page with modal during the tour + keyboard : true, // enable left, right and esc keystrokes + tip_location : 'bottom', // 'top' or 'bottom' in relation to parent + nub_position : 'auto', // override on a per tooltip bases + scroll_speed : 1500, // Page scrolling speed in milliseconds, 0 = no scroll animation + scroll_animation : 'linear', // supports 'swing' and 'linear', extend with jQuery UI. + timer : 0, // 0 = no timer , all other numbers = timer in milliseconds + start_timer_on_click : true, // true or false - true requires clicking the first button start the timer + start_offset : 0, // the index of the tooltip you want to start on (index of the li) + next_button : true, // true or false to control whether a next button is used + prev_button : true, // true or false to control whether a prev button is used + tip_animation : 'fade', // 'pop' or 'fade' in each tip + pause_after : [], // array of indexes where to pause the tour after + exposed : [], // array of expose elements + tip_animation_fade_speed : 300, // when tipAnimation = 'fade' this is speed in milliseconds for the transition + cookie_monster : false, // true or false to control whether cookies are used + cookie_name : 'joyride', // Name the cookie you'll use + cookie_domain : false, // Will this cookie be attached to a domain, ie. '.notableapp.com' + cookie_expires : 365, // set when you would like the cookie to expire. + tip_container : 'body', // Where will the tip be attached + abort_on_close : true, // When true, the close event will not fire any callback + tip_location_patterns : { + top: ['bottom'], + bottom: [], // bottom should not need to be repositioned + left: ['right', 'top', 'bottom'], + right: ['left', 'top', 'bottom'] + }, + post_ride_callback : function (){}, // A method to call once the tour closes (canceled or complete) + post_step_callback : function (){}, // A method to call after each step + pre_step_callback : function (){}, // A method to call before each step + pre_ride_callback : function (){}, // A method to call before the tour starts (passed index, tip, and cloned exposed element) + post_expose_callback : function (){}, // A method to call after an element has been exposed + template : { // HTML segments for tip layout + link : '×', + timer : '
', + tip : '
', + wrapper : '
', + button : '', + prev_button : '', + modal : '
', + expose : '
', + expose_cover : '
' + }, + expose_add_class : '' // One or more space-separated class names to be added to exposed element + }, + + init : function (scope, method, options) { + Foundation.inherit(this, 'throttle random_str'); + + this.settings = this.settings || $.extend({}, this.defaults, (options || method)); + + this.bindings(method, options) + }, + + go_next : function() { + if (this.settings.$li.next().length < 1) { + this.end(); + } else if (this.settings.timer > 0) { + clearTimeout(this.settings.automate); + this.hide(); + this.show(); + this.startTimer(); + } else { + this.hide(); + this.show(); + } + }, + + go_prev : function() { + if (this.settings.$li.prev().length < 1) { + // Do nothing if there are no prev element + } else if (this.settings.timer > 0) { + clearTimeout(this.settings.automate); + this.hide(); + this.show(null, true); + this.startTimer(); + } else { + this.hide(); + this.show(null, true); + } + }, + + events : function () { + var self = this; + + $(this.scope) + .off('.joyride') + .on('click.fndtn.joyride', '.joyride-next-tip, .joyride-modal-bg', function (e) { + e.preventDefault(); + this.go_next() + }.bind(this)) + .on('click.fndtn.joyride', '.joyride-prev-tip', function (e) { + e.preventDefault(); + this.go_prev(); + }.bind(this)) + + .on('click.fndtn.joyride', '.joyride-close-tip', function (e) { + e.preventDefault(); + this.end(this.settings.abort_on_close); + }.bind(this)) + + .on("keyup.joyride", function(e) { + if (!this.settings.keyboard) return; + + switch (e.which) { + case 39: // right arrow + e.preventDefault(); + this.go_next(); + break; + case 37: // left arrow + e.preventDefault(); + this.go_prev(); + break; + case 27: // escape + e.preventDefault(); + this.end(this.settings.abort_on_close); + } + }.bind(this)); + + $(window) + .off('.joyride') + .on('resize.fndtn.joyride', self.throttle(function () { + if ($('[' + self.attr_name() + ']').length > 0 && self.settings.$next_tip && self.settings.riding) { + if (self.settings.exposed.length > 0) { + var $els = $(self.settings.exposed); + + $els.each(function () { + var $this = $(this); + self.un_expose($this); + self.expose($this); + }); + } + + if (self.is_phone()) { + self.pos_phone(); + } else { + self.pos_default(false); + } + } + }, 100)); + }, + + start : function () { + var self = this, + $this = $('[' + this.attr_name() + ']', this.scope), + integer_settings = ['timer', 'scrollSpeed', 'startOffset', 'tipAnimationFadeSpeed', 'cookieExpires'], + int_settings_count = integer_settings.length; + + if (!$this.length > 0) return; + + if (!this.settings.init) this.events(); + + this.settings = $this.data(this.attr_name(true) + '-init'); + + // non configureable settings + this.settings.$content_el = $this; + this.settings.$body = $(this.settings.tip_container); + this.settings.body_offset = $(this.settings.tip_container).position(); + this.settings.$tip_content = this.settings.$content_el.find('> li'); + this.settings.paused = false; + this.settings.attempts = 0; + this.settings.riding = true; + + // can we create cookies? + if (typeof $.cookie !== 'function') { + this.settings.cookie_monster = false; + } + + // generate the tips and insert into dom. + if (!this.settings.cookie_monster || this.settings.cookie_monster && !$.cookie(this.settings.cookie_name)) { + this.settings.$tip_content.each(function (index) { + var $this = $(this); + this.settings = $.extend({}, self.defaults, self.data_options($this)); + + // Make sure that settings parsed from data_options are integers where necessary + var i = int_settings_count; + while (i--) { + self.settings[integer_settings[i]] = parseInt(self.settings[integer_settings[i]], 10); + } + self.create({$li : $this, index : index}); + }); + + // show first tip + if (!this.settings.start_timer_on_click && this.settings.timer > 0) { + this.show('init'); + this.startTimer(); + } else { + this.show('init'); + } + + } + }, + + resume : function () { + this.set_li(); + this.show(); + }, + + tip_template : function (opts) { + var $blank, content; + + opts.tip_class = opts.tip_class || ''; + + $blank = $(this.settings.template.tip).addClass(opts.tip_class); + content = $.trim($(opts.li).html()) + + this.prev_button_text(opts.prev_button_text, opts.index) + + this.button_text(opts.button_text) + + this.settings.template.link + + this.timer_instance(opts.index); + + $blank.append($(this.settings.template.wrapper)); + $blank.first().attr(this.add_namespace('data-index'), opts.index); + $('.joyride-content-wrapper', $blank).append(content); + + return $blank[0]; + }, + + timer_instance : function (index) { + var txt; + + if ((index === 0 && this.settings.start_timer_on_click && this.settings.timer > 0) || this.settings.timer === 0) { + txt = ''; + } else { + txt = $(this.settings.template.timer)[0].outerHTML; + } + return txt; + }, + + button_text : function (txt) { + if (this.settings.tip_settings.next_button) { + txt = $.trim(txt) || 'Next'; + txt = $(this.settings.template.button).append(txt)[0].outerHTML; + } else { + txt = ''; + } + return txt; + }, + + prev_button_text : function (txt, idx) { + if (this.settings.tip_settings.prev_button) { + txt = $.trim(txt) || 'Previous'; + + // Add the disabled class to the button if it's the first element + if (idx == 0) + txt = $(this.settings.template.prev_button).append(txt).addClass('disabled')[0].outerHTML; + else + txt = $(this.settings.template.prev_button).append(txt)[0].outerHTML; + } else { + txt = ''; + } + return txt; + }, + + create : function (opts) { + this.settings.tip_settings = $.extend({}, this.settings, this.data_options(opts.$li)); + var buttonText = opts.$li.attr(this.add_namespace('data-button')) + || opts.$li.attr(this.add_namespace('data-text')), + prevButtonText = opts.$li.attr(this.add_namespace('data-button-prev')) + || opts.$li.attr(this.add_namespace('data-prev-text')), + tipClass = opts.$li.attr('class'), + $tip_content = $(this.tip_template({ + tip_class : tipClass, + index : opts.index, + button_text : buttonText, + prev_button_text : prevButtonText, + li : opts.$li + })); + + $(this.settings.tip_container).append($tip_content); + }, + + show : function (init, is_prev) { + var $timer = null; + + // are we paused? + if (this.settings.$li === undefined + || ($.inArray(this.settings.$li.index(), this.settings.pause_after) === -1)) { + + // don't go to the next li if the tour was paused + if (this.settings.paused) { + this.settings.paused = false; + } else { + this.set_li(init, is_prev); + } + + this.settings.attempts = 0; + + if (this.settings.$li.length && this.settings.$target.length > 0) { + if (init) { //run when we first start + this.settings.pre_ride_callback(this.settings.$li.index(), this.settings.$next_tip); + if (this.settings.modal) { + this.show_modal(); + } + } + + this.settings.pre_step_callback(this.settings.$li.index(), this.settings.$next_tip); + + if (this.settings.modal && this.settings.expose) { + this.expose(); + } + + this.settings.tip_settings = $.extend({}, this.settings, this.data_options(this.settings.$li)); + + this.settings.timer = parseInt(this.settings.timer, 10); + + this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location]; + + // scroll if not modal + if (!/body/i.test(this.settings.$target.selector)) { + this.scroll_to(); + } + + if (this.is_phone()) { + this.pos_phone(true); + } else { + this.pos_default(true); + } + + $timer = this.settings.$next_tip.find('.joyride-timer-indicator'); + + if (/pop/i.test(this.settings.tip_animation)) { + + $timer.width(0); + + if (this.settings.timer > 0) { + + this.settings.$next_tip.show(); + + setTimeout(function () { + $timer.animate({ + width: $timer.parent().width() + }, this.settings.timer, 'linear'); + }.bind(this), this.settings.tip_animation_fade_speed); + + } else { + this.settings.$next_tip.show(); + + } + + + } else if (/fade/i.test(this.settings.tip_animation)) { + + $timer.width(0); + + if (this.settings.timer > 0) { + + this.settings.$next_tip + .fadeIn(this.settings.tip_animation_fade_speed) + .show(); + + setTimeout(function () { + $timer.animate({ + width: $timer.parent().width() + }, this.settings.timer, 'linear'); + }.bind(this), this.settings.tip_animation_fade_speed); + + } else { + this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed); + } + } + + this.settings.$current_tip = this.settings.$next_tip; + + // skip non-existant targets + } else if (this.settings.$li && this.settings.$target.length < 1) { + + this.show(); + + } else { + + this.end(); + + } + } else { + + this.settings.paused = true; + + } + + }, + + is_phone : function () { + return matchMedia(Foundation.media_queries.small).matches && + !matchMedia(Foundation.media_queries.medium).matches; + }, + + hide : function () { + if (this.settings.modal && this.settings.expose) { + this.un_expose(); + } + + if (!this.settings.modal) { + $('.joyride-modal-bg').hide(); + } + + // Prevent scroll bouncing...wait to remove from layout + this.settings.$current_tip.css('visibility', 'hidden'); + setTimeout($.proxy(function() { + this.hide(); + this.css('visibility', 'visible'); + }, this.settings.$current_tip), 0); + this.settings.post_step_callback(this.settings.$li.index(), + this.settings.$current_tip); + }, + + set_li : function (init, is_prev) { + if (init) { + this.settings.$li = this.settings.$tip_content.eq(this.settings.start_offset); + this.set_next_tip(); + this.settings.$current_tip = this.settings.$next_tip; + } else { + if (is_prev) + this.settings.$li = this.settings.$li.prev(); + else + this.settings.$li = this.settings.$li.next(); + this.set_next_tip(); + } + + this.set_target(); + }, + + set_next_tip : function () { + this.settings.$next_tip = $(".joyride-tip-guide").eq(this.settings.$li.index()); + this.settings.$next_tip.data('closed', ''); + }, + + set_target : function () { + var cl = this.settings.$li.attr(this.add_namespace('data-class')), + id = this.settings.$li.attr(this.add_namespace('data-id')), + $sel = function () { + if (id) { + return $(document.getElementById(id)); + } else if (cl) { + return $('.' + cl).first(); + } else { + return $('body'); + } + }; + + this.settings.$target = $sel(); + }, + + scroll_to : function () { + var window_half, tipOffset; + + window_half = $(window).height() / 2; + tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()); + + if (tipOffset != 0) { + $('html, body').stop().animate({ + scrollTop: tipOffset + }, this.settings.scroll_speed, 'swing'); + } + }, + + paused : function () { + return ($.inArray((this.settings.$li.index() + 1), this.settings.pause_after) === -1); + }, + + restart : function () { + this.hide(); + this.settings.$li = undefined; + this.show('init'); + }, + + pos_default : function (init) { + var $nub = this.settings.$next_tip.find('.joyride-nub'), + nub_width = Math.ceil($nub.outerWidth() / 2), + nub_height = Math.ceil($nub.outerHeight() / 2), + toggle = init || false; + + // tip must not be "display: none" to calculate position + if (toggle) { + this.settings.$next_tip.css('visibility', 'hidden'); + this.settings.$next_tip.show(); + } + + if (!/body/i.test(this.settings.$target.selector)) { + var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0, + leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0; + + if (this.bottom()) { + if (this.rtl) { + this.settings.$next_tip.css({ + top: (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment), + left: this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment}); + } else { + this.settings.$next_tip.css({ + top: (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment), + left: this.settings.$target.offset().left + leftAdjustment}); + } + + this.nub_position($nub, this.settings.tip_settings.nub_position, 'top'); + + } else if (this.top()) { + if (this.rtl) { + this.settings.$next_tip.css({ + top: (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment), + left: this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()}); + } else { + this.settings.$next_tip.css({ + top: (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment), + left: this.settings.$target.offset().left + leftAdjustment}); + } + + this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom'); + + } else if (this.right()) { + + this.settings.$next_tip.css({ + top: this.settings.$target.offset().top + topAdjustment, + left: (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)}); + + this.nub_position($nub, this.settings.tip_settings.nub_position, 'left'); + + } else if (this.left()) { + + this.settings.$next_tip.css({ + top: this.settings.$target.offset().top + topAdjustment, + left: (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)}); + + this.nub_position($nub, this.settings.tip_settings.nub_position, 'right'); + + } + + if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) { + + $nub.removeClass('bottom') + .removeClass('top') + .removeClass('right') + .removeClass('left'); + + this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts]; + + this.settings.attempts++; + + this.pos_default(); + + } + + } else if (this.settings.$li.length) { + + this.pos_modal($nub); + + } + + if (toggle) { + this.settings.$next_tip.hide(); + this.settings.$next_tip.css('visibility', 'visible'); + } + + }, + + pos_phone : function (init) { + var tip_height = this.settings.$next_tip.outerHeight(), + tip_offset = this.settings.$next_tip.offset(), + target_height = this.settings.$target.outerHeight(), + $nub = $('.joyride-nub', this.settings.$next_tip), + nub_height = Math.ceil($nub.outerHeight() / 2), + toggle = init || false; + + $nub.removeClass('bottom') + .removeClass('top') + .removeClass('right') + .removeClass('left'); + + if (toggle) { + this.settings.$next_tip.css('visibility', 'hidden'); + this.settings.$next_tip.show(); + } + + if (!/body/i.test(this.settings.$target.selector)) { + + if (this.top()) { + + this.settings.$next_tip.offset({top: this.settings.$target.offset().top - tip_height - nub_height}); + $nub.addClass('bottom'); + + } else { + + this.settings.$next_tip.offset({top: this.settings.$target.offset().top + target_height + nub_height}); + $nub.addClass('top'); + + } + + } else if (this.settings.$li.length) { + this.pos_modal($nub); + } + + if (toggle) { + this.settings.$next_tip.hide(); + this.settings.$next_tip.css('visibility', 'visible'); + } + }, + + pos_modal : function ($nub) { + this.center(); + $nub.hide(); + + this.show_modal(); + }, + + show_modal : function () { + if (!this.settings.$next_tip.data('closed')) { + var joyridemodalbg = $('.joyride-modal-bg'); + if (joyridemodalbg.length < 1) { + $('body').append(this.settings.template.modal).show(); + } + + if (/pop/i.test(this.settings.tip_animation)) { + joyridemodalbg.show(); + } else { + joyridemodalbg.fadeIn(this.settings.tip_animation_fade_speed); + } + } + }, + + expose : function () { + var expose, + exposeCover, + el, + origCSS, + origClasses, + randId = 'expose-' + this.random_str(6); + + if (arguments.length > 0 && arguments[0] instanceof $) { + el = arguments[0]; + } else if(this.settings.$target && !/body/i.test(this.settings.$target.selector)){ + el = this.settings.$target; + } else { + return false; + } + + if(el.length < 1){ + if(window.console){ + console.error('element not valid', el); + } + return false; + } + + expose = $(this.settings.template.expose); + this.settings.$body.append(expose); + expose.css({ + top: el.offset().top, + left: el.offset().left, + width: el.outerWidth(true), + height: el.outerHeight(true) + }); + + exposeCover = $(this.settings.template.expose_cover); + + origCSS = { + zIndex: el.css('z-index'), + position: el.css('position') + }; + + origClasses = el.attr('class') == null ? '' : el.attr('class'); + + el.css('z-index',parseInt(expose.css('z-index'))+1); + + if (origCSS.position == 'static') { + el.css('position','relative'); + } + + el.data('expose-css',origCSS); + el.data('orig-class', origClasses); + el.attr('class', origClasses + ' ' + this.settings.expose_add_class); + + exposeCover.css({ + top: el.offset().top, + left: el.offset().left, + width: el.outerWidth(true), + height: el.outerHeight(true) + }); + + if (this.settings.modal) this.show_modal(); + + this.settings.$body.append(exposeCover); + expose.addClass(randId); + exposeCover.addClass(randId); + el.data('expose', randId); + this.settings.post_expose_callback(this.settings.$li.index(), this.settings.$next_tip, el); + this.add_exposed(el); + }, + + un_expose : function () { + var exposeId, + el, + expose , + origCSS, + origClasses, + clearAll = false; + + if (arguments.length > 0 && arguments[0] instanceof $) { + el = arguments[0]; + } else if(this.settings.$target && !/body/i.test(this.settings.$target.selector)){ + el = this.settings.$target; + } else { + return false; + } + + if(el.length < 1){ + if (window.console) { + console.error('element not valid', el); + } + return false; + } + + exposeId = el.data('expose'); + expose = $('.' + exposeId); + + if (arguments.length > 1) { + clearAll = arguments[1]; + } + + if (clearAll === true) { + $('.joyride-expose-wrapper,.joyride-expose-cover').remove(); + } else { + expose.remove(); + } + + origCSS = el.data('expose-css'); + + if (origCSS.zIndex == 'auto') { + el.css('z-index', ''); + } else { + el.css('z-index', origCSS.zIndex); + } + + if (origCSS.position != el.css('position')) { + if(origCSS.position == 'static') {// this is default, no need to set it. + el.css('position', ''); + } else { + el.css('position', origCSS.position); + } + } + + origClasses = el.data('orig-class'); + el.attr('class', origClasses); + el.removeData('orig-classes'); + + el.removeData('expose'); + el.removeData('expose-z-index'); + this.remove_exposed(el); + }, + + add_exposed: function(el){ + this.settings.exposed = this.settings.exposed || []; + if (el instanceof $ || typeof el === 'object') { + this.settings.exposed.push(el[0]); + } else if (typeof el == 'string') { + this.settings.exposed.push(el); + } + }, + + remove_exposed: function(el){ + var search, i; + if (el instanceof $) { + search = el[0] + } else if (typeof el == 'string'){ + search = el; + } + + this.settings.exposed = this.settings.exposed || []; + i = this.settings.exposed.length; + + while (i--) { + if (this.settings.exposed[i] == search) { + this.settings.exposed.splice(i, 1); + return; + } + } + }, + + center : function () { + var $w = $(window); + + this.settings.$next_tip.css({ + top : ((($w.height() - this.settings.$next_tip.outerHeight()) / 2) + $w.scrollTop()), + left : ((($w.width() - this.settings.$next_tip.outerWidth()) / 2) + $w.scrollLeft()) + }); + + return true; + }, + + bottom : function () { + return /bottom/i.test(this.settings.tip_settings.tip_location); + }, + + top : function () { + return /top/i.test(this.settings.tip_settings.tip_location); + }, + + right : function () { + return /right/i.test(this.settings.tip_settings.tip_location); + }, + + left : function () { + return /left/i.test(this.settings.tip_settings.tip_location); + }, + + corners : function (el) { + var w = $(window), + window_half = w.height() / 2, + //using this to calculate since scroll may not have finished yet. + tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()), + right = w.width() + w.scrollLeft(), + offsetBottom = w.height() + tipOffset, + bottom = w.height() + w.scrollTop(), + top = w.scrollTop(); + + if (tipOffset < top) { + if (tipOffset < 0) { + top = 0; + } else { + top = tipOffset; + } + } + + if (offsetBottom > bottom) { + bottom = offsetBottom; + } + + return [ + el.offset().top < top, + right < el.offset().left + el.outerWidth(), + bottom < el.offset().top + el.outerHeight(), + w.scrollLeft() > el.offset().left + ]; + }, + + visible : function (hidden_corners) { + var i = hidden_corners.length; + + while (i--) { + if (hidden_corners[i]) return false; + } + + return true; + }, + + nub_position : function (nub, pos, def) { + if (pos === 'auto') { + nub.addClass(def); + } else { + nub.addClass(pos); + } + }, + + startTimer : function () { + if (this.settings.$li.length) { + this.settings.automate = setTimeout(function () { + this.hide(); + this.show(); + this.startTimer(); + }.bind(this), this.settings.timer); + } else { + clearTimeout(this.settings.automate); + } + }, + + end : function (abort) { + if (this.settings.cookie_monster) { + $.cookie(this.settings.cookie_name, 'ridden', { expires: this.settings.cookie_expires, domain: this.settings.cookie_domain }); + } + + if (this.settings.timer > 0) { + clearTimeout(this.settings.automate); + } + + if (this.settings.modal && this.settings.expose) { + this.un_expose(); + } + + // Unplug keystrokes listener + $(this.scope).off('keyup.joyride') + + this.settings.$next_tip.data('closed', true); + this.settings.riding = false; + + $('.joyride-modal-bg').hide(); + this.settings.$current_tip.hide(); + + if (typeof abort === 'undefined' || abort === false) { + this.settings.post_step_callback(this.settings.$li.index(), this.settings.$current_tip); + this.settings.post_ride_callback(this.settings.$li.index(), this.settings.$current_tip); + } + + $('.joyride-tip-guide').remove(); + }, + + off : function () { + $(this.scope).off('.joyride'); + $(window).off('.joyride'); + $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride'); + $('.joyride-tip-guide, .joyride-modal-bg').remove(); + clearTimeout(this.settings.automate); + this.settings = {}; + }, + + reflow : function () {} + }; +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.joyride.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.joyride.min.js new file mode 100644 index 000000000..814cf961d --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.joyride.min.js @@ -0,0 +1 @@ +!function(t,s,i,e){"use strict";Foundation.libs.joyride={name:"joyride",version:"5.4.5",defaults:{expose:!1,modal:!0,keyboard:!0,tip_location:"bottom",nub_position:"auto",scroll_speed:1500,scroll_animation:"linear",timer:0,start_timer_on_click:!0,start_offset:0,next_button:!0,prev_button:!0,tip_animation:"fade",pause_after:[],exposed:[],tip_animation_fade_speed:300,cookie_monster:!1,cookie_name:"joyride",cookie_domain:!1,cookie_expires:365,tip_container:"body",abort_on_close:!0,tip_location_patterns:{top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},post_ride_callback:function(){},post_step_callback:function(){},pre_step_callback:function(){},pre_ride_callback:function(){},post_expose_callback:function(){},template:{link:'×',timer:'
',tip:'
',wrapper:'
',button:'',prev_button:'',modal:'
',expose:'
',expose_cover:'
'},expose_add_class:""},init:function(s,i,e){Foundation.inherit(this,"throttle random_str"),this.settings=this.settings||t.extend({},this.defaults,e||i),this.bindings(i,e)},go_next:function(){this.settings.$li.next().length<1?this.end():this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(),this.startTimer()):(this.hide(),this.show())},go_prev:function(){this.settings.$li.prev().length<1||(this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(null,!0),this.startTimer()):(this.hide(),this.show(null,!0)))},events:function(){var i=this;t(this.scope).off(".joyride").on("click.fndtn.joyride",".joyride-next-tip, .joyride-modal-bg",function(t){t.preventDefault(),this.go_next()}.bind(this)).on("click.fndtn.joyride",".joyride-prev-tip",function(t){t.preventDefault(),this.go_prev()}.bind(this)).on("click.fndtn.joyride",".joyride-close-tip",function(t){t.preventDefault(),this.end(this.settings.abort_on_close)}.bind(this)).on("keyup.joyride",function(t){if(this.settings.keyboard)switch(t.which){case 39:t.preventDefault(),this.go_next();break;case 37:t.preventDefault(),this.go_prev();break;case 27:t.preventDefault(),this.end(this.settings.abort_on_close)}}.bind(this)),t(s).off(".joyride").on("resize.fndtn.joyride",i.throttle(function(){if(t("["+i.attr_name()+"]").length>0&&i.settings.$next_tip&&i.settings.riding){if(i.settings.exposed.length>0){var s=t(i.settings.exposed);s.each(function(){var s=t(this);i.un_expose(s),i.expose(s)})}i.is_phone()?i.pos_phone():i.pos_default(!1)}},100))},start:function(){var s=this,i=t("["+this.attr_name()+"]",this.scope),e=["timer","scrollSpeed","startOffset","tipAnimationFadeSpeed","cookieExpires"],n=e.length;!i.length>0||(this.settings.init||this.events(),this.settings=i.data(this.attr_name(!0)+"-init"),this.settings.$content_el=i,this.settings.$body=t(this.settings.tip_container),this.settings.body_offset=t(this.settings.tip_container).position(),this.settings.$tip_content=this.settings.$content_el.find("> li"),this.settings.paused=!1,this.settings.attempts=0,this.settings.riding=!0,"function"!=typeof t.cookie&&(this.settings.cookie_monster=!1),(!this.settings.cookie_monster||this.settings.cookie_monster&&!t.cookie(this.settings.cookie_name))&&(this.settings.$tip_content.each(function(i){var o=t(this);this.settings=t.extend({},s.defaults,s.data_options(o));for(var h=n;h--;)s.settings[e[h]]=parseInt(s.settings[e[h]],10);s.create({$li:o,index:i})}),!this.settings.start_timer_on_click&&this.settings.timer>0?(this.show("init"),this.startTimer()):this.show("init")))},resume:function(){this.set_li(),this.show()},tip_template:function(s){var i,e;return s.tip_class=s.tip_class||"",i=t(this.settings.template.tip).addClass(s.tip_class),e=t.trim(t(s.li).html())+this.prev_button_text(s.prev_button_text,s.index)+this.button_text(s.button_text)+this.settings.template.link+this.timer_instance(s.index),i.append(t(this.settings.template.wrapper)),i.first().attr(this.add_namespace("data-index"),s.index),t(".joyride-content-wrapper",i).append(e),i[0]},timer_instance:function(s){var i;return i=0===s&&this.settings.start_timer_on_click&&this.settings.timer>0||0===this.settings.timer?"":t(this.settings.template.timer)[0].outerHTML},button_text:function(s){return this.settings.tip_settings.next_button?(s=t.trim(s)||"Next",s=t(this.settings.template.button).append(s)[0].outerHTML):s="",s},prev_button_text:function(s,i){return this.settings.tip_settings.prev_button?(s=t.trim(s)||"Previous",s=0==i?t(this.settings.template.prev_button).append(s).addClass("disabled")[0].outerHTML:t(this.settings.template.prev_button).append(s)[0].outerHTML):s="",s},create:function(s){this.settings.tip_settings=t.extend({},this.settings,this.data_options(s.$li));var i=s.$li.attr(this.add_namespace("data-button"))||s.$li.attr(this.add_namespace("data-text")),e=s.$li.attr(this.add_namespace("data-button-prev"))||s.$li.attr(this.add_namespace("data-prev-text")),n=s.$li.attr("class"),o=t(this.tip_template({tip_class:n,index:s.index,button_text:i,prev_button_text:e,li:s.$li}));t(this.settings.tip_container).append(o)},show:function(s,i){var n=null;this.settings.$li===e||-1===t.inArray(this.settings.$li.index(),this.settings.pause_after)?(this.settings.paused?this.settings.paused=!1:this.set_li(s,i),this.settings.attempts=0,this.settings.$li.length&&this.settings.$target.length>0?(s&&(this.settings.pre_ride_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.show_modal()),this.settings.pre_step_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.settings.expose&&this.expose(),this.settings.tip_settings=t.extend({},this.settings,this.data_options(this.settings.$li)),this.settings.timer=parseInt(this.settings.timer,10),this.settings.tip_settings.tip_location_pattern=this.settings.tip_location_patterns[this.settings.tip_settings.tip_location],/body/i.test(this.settings.$target.selector)||this.scroll_to(),this.is_phone()?this.pos_phone(!0):this.pos_default(!0),n=this.settings.$next_tip.find(".joyride-timer-indicator"),/pop/i.test(this.settings.tip_animation)?(n.width(0),this.settings.timer>0?(this.settings.$next_tip.show(),setTimeout(function(){n.animate({width:n.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.show()):/fade/i.test(this.settings.tip_animation)&&(n.width(0),this.settings.timer>0?(this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed).show(),setTimeout(function(){n.animate({width:n.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed)),this.settings.$current_tip=this.settings.$next_tip):this.settings.$li&&this.settings.$target.length<1?this.show():this.end()):this.settings.paused=!0},is_phone:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},hide:function(){this.settings.modal&&this.settings.expose&&this.un_expose(),this.settings.modal||t(".joyride-modal-bg").hide(),this.settings.$current_tip.css("visibility","hidden"),setTimeout(t.proxy(function(){this.hide(),this.css("visibility","visible")},this.settings.$current_tip),0),this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip)},set_li:function(t,s){t?(this.settings.$li=this.settings.$tip_content.eq(this.settings.start_offset),this.set_next_tip(),this.settings.$current_tip=this.settings.$next_tip):(this.settings.$li=s?this.settings.$li.prev():this.settings.$li.next(),this.set_next_tip()),this.set_target()},set_next_tip:function(){this.settings.$next_tip=t(".joyride-tip-guide").eq(this.settings.$li.index()),this.settings.$next_tip.data("closed","")},set_target:function(){var s=this.settings.$li.attr(this.add_namespace("data-class")),e=this.settings.$li.attr(this.add_namespace("data-id")),n=function(){return e?t(i.getElementById(e)):s?t("."+s).first():t("body")};this.settings.$target=n()},scroll_to:function(){var i,e;i=t(s).height()/2,e=Math.ceil(this.settings.$target.offset().top-i+this.settings.$next_tip.outerHeight()),0!=e&&t("html, body").stop().animate({scrollTop:e},this.settings.scroll_speed,"swing")},paused:function(){return-1===t.inArray(this.settings.$li.index()+1,this.settings.pause_after)},restart:function(){this.hide(),this.settings.$li=e,this.show("init")},pos_default:function(t){var s=this.settings.$next_tip.find(".joyride-nub"),i=Math.ceil(s.outerWidth()/2),e=Math.ceil(s.outerHeight()/2),n=t||!1;if(n&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show()),/body/i.test(this.settings.$target.selector))this.settings.$li.length&&this.pos_modal(s);else{var o=this.settings.tip_settings.tipAdjustmentY?parseInt(this.settings.tip_settings.tipAdjustmentY):0,h=this.settings.tip_settings.tipAdjustmentX?parseInt(this.settings.tip_settings.tipAdjustmentX):0;this.bottom()?(this.settings.$next_tip.css(this.rtl?{top:this.settings.$target.offset().top+e+this.settings.$target.outerHeight()+o,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()+h}:{top:this.settings.$target.offset().top+e+this.settings.$target.outerHeight()+o,left:this.settings.$target.offset().left+h}),this.nub_position(s,this.settings.tip_settings.nub_position,"top")):this.top()?(this.settings.$next_tip.css(this.rtl?{top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-e+o,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()}:{top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-e+o,left:this.settings.$target.offset().left+h}),this.nub_position(s,this.settings.tip_settings.nub_position,"bottom")):this.right()?(this.settings.$next_tip.css({top:this.settings.$target.offset().top+o,left:this.settings.$target.outerWidth()+this.settings.$target.offset().left+i+h}),this.nub_position(s,this.settings.tip_settings.nub_position,"left")):this.left()&&(this.settings.$next_tip.css({top:this.settings.$target.offset().top+o,left:this.settings.$target.offset().left-this.settings.$next_tip.outerWidth()-i+h}),this.nub_position(s,this.settings.tip_settings.nub_position,"right")),!this.visible(this.corners(this.settings.$next_tip))&&this.settings.attempts0&&arguments[0]instanceof t)n=arguments[0];else{if(!this.settings.$target||/body/i.test(this.settings.$target.selector))return!1;n=this.settings.$target}return n.length<1?(s.console&&console.error("element not valid",n),!1):(i=t(this.settings.template.expose),this.settings.$body.append(i),i.css({top:n.offset().top,left:n.offset().left,width:n.outerWidth(!0),height:n.outerHeight(!0)}),e=t(this.settings.template.expose_cover),o={zIndex:n.css("z-index"),position:n.css("position")},h=null==n.attr("class")?"":n.attr("class"),n.css("z-index",parseInt(i.css("z-index"))+1),"static"==o.position&&n.css("position","relative"),n.data("expose-css",o),n.data("orig-class",h),n.attr("class",h+" "+this.settings.expose_add_class),e.css({top:n.offset().top,left:n.offset().left,width:n.outerWidth(!0),height:n.outerHeight(!0)}),this.settings.modal&&this.show_modal(),this.settings.$body.append(e),i.addClass(a),e.addClass(a),n.data("expose",a),this.settings.post_expose_callback(this.settings.$li.index(),this.settings.$next_tip,n),void this.add_exposed(n))},un_expose:function(){var i,e,n,o,h,a=!1;if(arguments.length>0&&arguments[0]instanceof t)e=arguments[0];else{if(!this.settings.$target||/body/i.test(this.settings.$target.selector))return!1;e=this.settings.$target}return e.length<1?(s.console&&console.error("element not valid",e),!1):(i=e.data("expose"),n=t("."+i),arguments.length>1&&(a=arguments[1]),a===!0?t(".joyride-expose-wrapper,.joyride-expose-cover").remove():n.remove(),o=e.data("expose-css"),"auto"==o.zIndex?e.css("z-index",""):e.css("z-index",o.zIndex),o.position!=e.css("position")&&("static"==o.position?e.css("position",""):e.css("position",o.position)),h=e.data("orig-class"),e.attr("class",h),e.removeData("orig-classes"),e.removeData("expose"),e.removeData("expose-z-index"),void this.remove_exposed(e))},add_exposed:function(s){this.settings.exposed=this.settings.exposed||[],s instanceof t||"object"==typeof s?this.settings.exposed.push(s[0]):"string"==typeof s&&this.settings.exposed.push(s)},remove_exposed:function(s){var i,e;for(s instanceof t?i=s[0]:"string"==typeof s&&(i=s),this.settings.exposed=this.settings.exposed||[],e=this.settings.exposed.length;e--;)if(this.settings.exposed[e]==i)return void this.settings.exposed.splice(e,1)},center:function(){var i=t(s);return this.settings.$next_tip.css({top:(i.height()-this.settings.$next_tip.outerHeight())/2+i.scrollTop(),left:(i.width()-this.settings.$next_tip.outerWidth())/2+i.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(this.settings.tip_settings.tip_location)},top:function(){return/top/i.test(this.settings.tip_settings.tip_location)},right:function(){return/right/i.test(this.settings.tip_settings.tip_location)},left:function(){return/left/i.test(this.settings.tip_settings.tip_location)},corners:function(i){var e=t(s),n=e.height()/2,o=Math.ceil(this.settings.$target.offset().top-n+this.settings.$next_tip.outerHeight()),h=e.width()+e.scrollLeft(),a=e.height()+o,r=e.height()+e.scrollTop(),p=e.scrollTop();return p>o&&(p=0>o?0:o),a>r&&(r=a),[i.offset().topi.offset().left]},visible:function(t){for(var s=t.length;s--;)if(t[s])return!1;return!0},nub_position:function(t,s,i){t.addClass("auto"===s?i:s)},startTimer:function(){this.settings.$li.length?this.settings.automate=setTimeout(function(){this.hide(),this.show(),this.startTimer()}.bind(this),this.settings.timer):clearTimeout(this.settings.automate)},end:function(s){this.settings.cookie_monster&&t.cookie(this.settings.cookie_name,"ridden",{expires:this.settings.cookie_expires,domain:this.settings.cookie_domain}),this.settings.timer>0&&clearTimeout(this.settings.automate),this.settings.modal&&this.settings.expose&&this.un_expose(),t(this.scope).off("keyup.joyride"),this.settings.$next_tip.data("closed",!0),this.settings.riding=!1,t(".joyride-modal-bg").hide(),this.settings.$current_tip.hide(),("undefined"==typeof s||s===!1)&&(this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip),this.settings.post_ride_callback(this.settings.$li.index(),this.settings.$current_tip)),t(".joyride-tip-guide").remove()},off:function(){t(this.scope).off(".joyride"),t(s).off(".joyride"),t(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),t(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(this.settings.automate),this.settings={}},reflow:function(){}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.js new file mode 100644 index 000000000..920409b8a --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.js @@ -0,0 +1,625 @@ +/* + * Foundation Responsive Library + * http://foundation.zurb.com + * Copyright 2014, ZURB + * Free to use under the MIT license. + * http://www.opensource.org/licenses/mit-license.php +*/ + +(function ($, window, document, undefined) { + 'use strict'; + + var header_helpers = function (class_array) { + var i = class_array.length; + var head = $('head'); + + while (i--) { + if(head.has('.' + class_array[i]).length === 0) { + head.append(''); + } + } + }; + + header_helpers([ + 'foundation-mq-small', + 'foundation-mq-medium', + 'foundation-mq-large', + 'foundation-mq-xlarge', + 'foundation-mq-xxlarge', + 'foundation-data-attribute-namespace']); + + // Enable FastClick if present + + $(function() { + if (typeof FastClick !== 'undefined') { + // Don't attach to body if undefined + if (typeof document.body !== 'undefined') { + FastClick.attach(document.body); + } + } + }); + + // private Fast Selector wrapper, + // returns jQuery object. Only use where + // getElementById is not available. + var S = function (selector, context) { + if (typeof selector === 'string') { + if (context) { + var cont; + if (context.jquery) { + cont = context[0]; + if (!cont) return context; + } else { + cont = context; + } + return $(cont.querySelectorAll(selector)); + } + + return $(document.querySelectorAll(selector)); + } + + return $(selector, context); + }; + + // Namespace functions. + + var attr_name = function (init) { + var arr = []; + if (!init) arr.push('data'); + if (this.namespace.length > 0) arr.push(this.namespace); + arr.push(this.name); + + return arr.join('-'); + }; + + var add_namespace = function (str) { + var parts = str.split('-'), + i = parts.length, + arr = []; + + while (i--) { + if (i !== 0) { + arr.push(parts[i]); + } else { + if (this.namespace.length > 0) { + arr.push(this.namespace, parts[i]); + } else { + arr.push(parts[i]); + } + } + } + + return arr.reverse().join('-'); + }; + + // Event binding and data-options updating. + + var bindings = function (method, options) { + var self = this, + should_bind_events = !S(this).data(this.attr_name(true)); + + + if (S(this.scope).is('[' + this.attr_name() +']')) { + S(this.scope).data(this.attr_name(true) + '-init', $.extend({}, this.settings, (options || method), this.data_options(S(this.scope)))); + + if (should_bind_events) { + this.events(this.scope); + } + + } else { + S('[' + this.attr_name() +']', this.scope).each(function () { + var should_bind_events = !S(this).data(self.attr_name(true) + '-init'); + S(this).data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options(S(this)))); + + if (should_bind_events) { + self.events(this); + } + }); + } + // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating. + if (typeof method === 'string') { + return this[method].call(this, options); + } + + }; + + var single_image_loaded = function (image, callback) { + function loaded () { + callback(image[0]); + } + + function bindLoad () { + this.one('load', loaded); + + if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { + var src = this.attr( 'src' ), + param = src.match( /\?/ ) ? '&' : '?'; + + param += 'random=' + (new Date()).getTime(); + this.attr('src', src + param); + } + } + + if (!image.attr('src')) { + loaded(); + return; + } + + if (image[0].complete || image[0].readyState === 4) { + loaded(); + } else { + bindLoad.call(image); + } + }; + + /* + https://github.com/paulirish/matchMedia.js + */ + + window.matchMedia = window.matchMedia || (function( doc ) { + + "use strict"; + + var bool, + docElem = doc.documentElement, + refNode = docElem.firstElementChild || docElem.firstChild, + // fakeBody required for + fakeBody = doc.createElement( "body" ), + div = doc.createElement( "div" ); + + div.id = "mq-test-1"; + div.style.cssText = "position:absolute;top:-100em"; + fakeBody.style.background = "none"; + fakeBody.appendChild(div); + + return function (q) { + + div.innerHTML = "­"; + + docElem.insertBefore( fakeBody, refNode ); + bool = div.offsetWidth === 42; + docElem.removeChild( fakeBody ); + + return { + matches: bool, + media: q + }; + + }; + + }( document )); + + /* + * jquery.requestAnimationFrame + * https://github.com/gnarf37/jquery-requestAnimationFrame + * Requires jQuery 1.8+ + * + * Copyright (c) 2012 Corey Frang + * Licensed under the MIT license. + */ + + (function($) { + + // requestAnimationFrame polyfill adapted from Erik Möller + // fixes from Paul Irish and Tino Zijdel + // http://paulirish.com/2011/requestanimationframe-for-smart-animating/ + // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating + + var animating, + lastTime = 0, + vendors = ['webkit', 'moz'], + requestAnimationFrame = window.requestAnimationFrame, + cancelAnimationFrame = window.cancelAnimationFrame, + jqueryFxAvailable = 'undefined' !== typeof jQuery.fx; + + for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) { + requestAnimationFrame = window[ vendors[lastTime] + "RequestAnimationFrame" ]; + cancelAnimationFrame = cancelAnimationFrame || + window[ vendors[lastTime] + "CancelAnimationFrame" ] || + window[ vendors[lastTime] + "CancelRequestAnimationFrame" ]; + } + + function raf() { + if (animating) { + requestAnimationFrame(raf); + + if (jqueryFxAvailable) { + jQuery.fx.tick(); + } + } + } + + if (requestAnimationFrame) { + // use rAF + window.requestAnimationFrame = requestAnimationFrame; + window.cancelAnimationFrame = cancelAnimationFrame; + + if (jqueryFxAvailable) { + jQuery.fx.timer = function (timer) { + if (timer() && jQuery.timers.push(timer) && !animating) { + animating = true; + raf(); + } + }; + + jQuery.fx.stop = function () { + animating = false; + }; + } + } else { + // polyfill + window.requestAnimationFrame = function (callback) { + var currTime = new Date().getTime(), + timeToCall = Math.max(0, 16 - (currTime - lastTime)), + id = window.setTimeout(function () { + callback(currTime + timeToCall); + }, timeToCall); + lastTime = currTime + timeToCall; + return id; + }; + + window.cancelAnimationFrame = function (id) { + clearTimeout(id); + }; + + } + + }( jQuery )); + + + function removeQuotes (string) { + if (typeof string === 'string' || string instanceof String) { + string = string.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g, ''); + } + + return string; + } + + window.Foundation = { + name : 'Foundation', + + version : '5.4.5', + + media_queries : { + small : S('.foundation-mq-small').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), + medium : S('.foundation-mq-medium').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), + large : S('.foundation-mq-large').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), + xlarge: S('.foundation-mq-xlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), + xxlarge: S('.foundation-mq-xxlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, '') + }, + + stylesheet : $('').appendTo('head')[0].sheet, + + global: { + namespace: undefined + }, + + init : function (scope, libraries, method, options, response) { + var args = [scope, method, options, response], + responses = []; + + // check RTL + this.rtl = /rtl/i.test(S('html').attr('dir')); + + // set foundation global scope + this.scope = scope || this.scope; + + this.set_namespace(); + + if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) { + if (this.libs.hasOwnProperty(libraries)) { + responses.push(this.init_lib(libraries, args)); + } + } else { + for (var lib in this.libs) { + responses.push(this.init_lib(lib, libraries)); + } + } + + S(window).load(function(){ + S(window) + .trigger('resize.fndtn.clearing') + .trigger('resize.fndtn.dropdown') + .trigger('resize.fndtn.equalizer') + .trigger('resize.fndtn.interchange') + .trigger('resize.fndtn.joyride') + .trigger('resize.fndtn.magellan') + .trigger('resize.fndtn.topbar') + .trigger('resize.fndtn.slider'); + }); + + return scope; + }, + + init_lib : function (lib, args) { + if (this.libs.hasOwnProperty(lib)) { + this.patch(this.libs[lib]); + + if (args && args.hasOwnProperty(lib)) { + if (typeof this.libs[lib].settings !== 'undefined') { + $.extend(true, this.libs[lib].settings, args[lib]); + } + else if (typeof this.libs[lib].defaults !== 'undefined') { + $.extend(true, this.libs[lib].defaults, args[lib]); + } + return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]); + } + + args = args instanceof Array ? args : new Array(args); // PATCH: added this line + return this.libs[lib].init.apply(this.libs[lib], args); + } + + return function () {}; + }, + + patch : function (lib) { + lib.scope = this.scope; + lib.namespace = this.global.namespace; + lib.rtl = this.rtl; + lib['data_options'] = this.utils.data_options; + lib['attr_name'] = attr_name; + lib['add_namespace'] = add_namespace; + lib['bindings'] = bindings; + lib['S'] = this.utils.S; + }, + + inherit : function (scope, methods) { + var methods_arr = methods.split(' '), + i = methods_arr.length; + + while (i--) { + if (this.utils.hasOwnProperty(methods_arr[i])) { + scope[methods_arr[i]] = this.utils[methods_arr[i]]; + } + } + }, + + set_namespace: function () { + + // Description: + // Don't bother reading the namespace out of the meta tag + // if the namespace has been set globally in javascript + // + // Example: + // Foundation.global.namespace = 'my-namespace'; + // or make it an empty string: + // Foundation.global.namespace = ''; + // + // + + // If the namespace has not been set (is undefined), try to read it out of the meta element. + // Otherwise use the globally defined namespace, even if it's empty ('') + var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace; + + // Finally, if the namsepace is either undefined or false, set it to an empty string. + // Otherwise use the namespace value. + this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace; + }, + + libs : {}, + + // methods that can be inherited in libraries + utils : { + + // Description: + // Fast Selector wrapper returns jQuery object. Only use where getElementById + // is not available. + // + // Arguments: + // Selector (String): CSS selector describing the element(s) to be + // returned as a jQuery object. + // + // Scope (String): CSS selector describing the area to be searched. Default + // is document. + // + // Returns: + // Element (jQuery Object): jQuery object containing elements matching the + // selector within the scope. + S : S, + + // Description: + // Executes a function a max of once every n milliseconds + // + // Arguments: + // Func (Function): Function to be throttled. + // + // Delay (Integer): Function execution threshold in milliseconds. + // + // Returns: + // Lazy_function (Function): Function with throttling applied. + throttle : function (func, delay) { + var timer = null; + + return function () { + var context = this, args = arguments; + + if (timer == null) { + timer = setTimeout(function () { + func.apply(context, args); + timer = null; + }, delay); + } + }; + }, + + // Description: + // Executes a function when it stops being invoked for n seconds + // Modified version of _.debounce() http://underscorejs.org + // + // Arguments: + // Func (Function): Function to be debounced. + // + // Delay (Integer): Function execution threshold in milliseconds. + // + // Immediate (Bool): Whether the function should be called at the beginning + // of the delay instead of the end. Default is false. + // + // Returns: + // Lazy_function (Function): Function with debouncing applied. + debounce : function (func, delay, immediate) { + var timeout, result; + return function () { + var context = this, args = arguments; + var later = function () { + timeout = null; + if (!immediate) result = func.apply(context, args); + }; + var callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, delay); + if (callNow) result = func.apply(context, args); + return result; + }; + }, + + // Description: + // Parses data-options attribute + // + // Arguments: + // El (jQuery Object): Element to be parsed. + // + // Returns: + // Options (Javascript Object): Contents of the element's data-options + // attribute. + data_options : function (el, data_attr_name) { + data_attr_name = data_attr_name || 'options'; + var opts = {}, ii, p, opts_arr, + data_options = function (el) { + var namespace = Foundation.global.namespace; + + if (namespace.length > 0) { + return el.data(namespace + '-' + data_attr_name); + } + + return el.data(data_attr_name); + }; + + var cached_options = data_options(el); + + if (typeof cached_options === 'object') { + return cached_options; + } + + opts_arr = (cached_options || ':').split(';'); + ii = opts_arr.length; + + function isNumber (o) { + return ! isNaN (o-0) && o !== null && o !== "" && o !== false && o !== true; + } + + function trim (str) { + if (typeof str === 'string') return $.trim(str); + return str; + } + + while (ii--) { + p = opts_arr[ii].split(':'); + p = [p[0], p.slice(1).join(':')]; + + if (/true/i.test(p[1])) p[1] = true; + if (/false/i.test(p[1])) p[1] = false; + if (isNumber(p[1])) { + if (p[1].indexOf('.') === -1) { + p[1] = parseInt(p[1], 10); + } else { + p[1] = parseFloat(p[1]); + } + } + + if (p.length === 2 && p[0].length > 0) { + opts[trim(p[0])] = trim(p[1]); + } + } + + return opts; + }, + + // Description: + // Adds JS-recognizable media queries + // + // Arguments: + // Media (String): Key string for the media query to be stored as in + // Foundation.media_queries + // + // Class (String): Class name for the generated tag + register_media : function (media, media_class) { + if(Foundation.media_queries[media] === undefined) { + $('head').append(''); + Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family')); + } + }, + + // Description: + // Add custom CSS within a JS-defined media query + // + // Arguments: + // Rule (String): CSS rule to be appended to the document. + // + // Media (String): Optional media query string for the CSS rule to be + // nested under. + add_custom_rule : function (rule, media) { + if (media === undefined && Foundation.stylesheet) { + Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length); + } else { + var query = Foundation.media_queries[media]; + + if (query !== undefined) { + Foundation.stylesheet.insertRule('@media ' + + Foundation.media_queries[media] + '{ ' + rule + ' }'); + } + } + }, + + // Description: + // Performs a callback function when an image is fully loaded + // + // Arguments: + // Image (jQuery Object): Image(s) to check if loaded. + // + // Callback (Function): Function to execute when image is fully loaded. + image_loaded : function (images, callback) { + var self = this, + unloaded = images.length; + + if (unloaded === 0) { + callback(images); + } + + images.each(function () { + single_image_loaded(self.S(this), function () { + unloaded -= 1; + if (unloaded === 0) { + callback(images); + } + }); + }); + }, + + // Description: + // Returns a random, alphanumeric string + // + // Arguments: + // Length (Integer): Length of string to be generated. Defaults to random + // integer. + // + // Returns: + // Rand (String): Pseudo-random, alphanumeric string. + random_str : function () { + if (!this.fidx) this.fidx = 0; + this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-'); + + return this.prefix + (this.fidx++).toString(36); + } + } + }; + + $.fn.foundation = function () { + var args = Array.prototype.slice.call(arguments, 0); + + return this.each(function () { + Foundation.init.apply(Foundation, [this].concat(args)); + return this; + }); + }; + +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.magellan.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.magellan.js new file mode 100644 index 000000000..fbbea10d2 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.magellan.js @@ -0,0 +1,189 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs['magellan-expedition'] = { + name : 'magellan-expedition', + + version : '5.4.5', + + settings : { + active_class: 'active', + threshold: 0, // pixels from the top of the expedition for it to become fixes + destination_threshold: 20, // pixels from the top of destination for it to be considered active + throttle_delay: 30, // calculation throttling to increase framerate + fixed_top: 0 // top distance in pixels assigend to the fixed element on scroll + }, + + init : function (scope, method, options) { + Foundation.inherit(this, 'throttle'); + this.bindings(method, options); + }, + + events : function () { + var self = this, + S = self.S, + settings = self.settings; + + // initialize expedition offset + self.set_expedition_position(); + + S(self.scope) + .off('.magellan') + .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href^="#"]', function (e) { + e.preventDefault(); + var expedition = $(this).closest('[' + self.attr_name() + ']'), + settings = expedition.data('magellan-expedition-init'), + hash = this.hash.split('#').join(''), + target = $("a[name='"+hash+"']"); + + if (target.length === 0) { + target = $('#'+hash); + + } + + + // Account for expedition height if fixed position + var scroll_top = target.offset().top - settings.destination_threshold + 1; + scroll_top = scroll_top - expedition.outerHeight(); + + $('html, body').stop().animate({ + 'scrollTop': scroll_top + }, 700, 'swing', function () { + if(history.pushState) { + history.pushState(null, null, '#'+hash); + } + else { + location.hash = '#'+hash; + } + }); + }) + .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay)); + + $(window) + .on('resize.fndtn.magellan', self.throttle(this.set_expedition_position.bind(this), settings.throttle_delay)); + }, + + check_for_arrivals : function() { + var self = this; + self.update_arrivals(); + self.update_expedition_positions(); + }, + + set_expedition_position : function() { + var self = this; + $('[' + this.attr_name() + '=fixed]', self.scope).each(function(idx, el) { + var expedition = $(this), + settings = expedition.data('magellan-expedition-init'), + styles = expedition.attr('styles'), // save styles + top_offset, fixed_top; + + expedition.attr('style', ''); + top_offset = expedition.offset().top + settings.threshold; + + //set fixed-top by attribute + fixed_top = parseInt(expedition.data('magellan-fixed-top')); + if(!isNaN(fixed_top)) + self.settings.fixed_top = fixed_top; + + expedition.data(self.data_attr('magellan-top-offset'), top_offset); + expedition.attr('style', styles); + }); + }, + + update_expedition_positions : function() { + var self = this, + window_top_offset = $(window).scrollTop(); + + $('[' + this.attr_name() + '=fixed]', self.scope).each(function() { + var expedition = $(this), + settings = expedition.data('magellan-expedition-init'), + styles = expedition.attr('style'), // save styles + top_offset = expedition.data('magellan-top-offset'); + + //scroll to the top distance + if (window_top_offset+self.settings.fixed_top >= top_offset) { + // Placeholder allows height calculations to be consistent even when + // appearing to switch between fixed/non-fixed placement + var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']'); + if (placeholder.length === 0) { + placeholder = expedition.clone(); + placeholder.removeAttr(self.attr_name()); + placeholder.attr(self.add_namespace('data-magellan-expedition-clone'),''); + expedition.before(placeholder); + } + expedition.css({position:'fixed', top: settings.fixed_top}).addClass('fixed'); + } else { + expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove(); + expedition.attr('style',styles).css('position','').css('top','').removeClass('fixed'); + } + }); + }, + + update_arrivals : function() { + var self = this, + window_top_offset = $(window).scrollTop(); + + $('[' + this.attr_name() + ']', self.scope).each(function() { + var expedition = $(this), + settings = expedition.data(self.attr_name(true) + '-init'), + offsets = self.offsets(expedition, window_top_offset), + arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'), + active_item = false; + offsets.each(function(idx, item) { + if (item.viewport_offset >= item.top_offset) { + var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'); + arrivals.not(item.arrival).removeClass(settings.active_class); + item.arrival.addClass(settings.active_class); + active_item = true; + return true; + } + }); + + if (!active_item) arrivals.removeClass(settings.active_class); + }); + }, + + offsets : function(expedition, window_offset) { + var self = this, + settings = expedition.data(self.attr_name(true) + '-init'), + viewport_offset = window_offset; + + return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function(idx, el) { + var name = $(this).data(self.data_attr('magellan-arrival')), + dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']'); + if (dest.length > 0) { + var top_offset = Math.floor(dest.offset().top - settings.destination_threshold - expedition.outerHeight()); + return { + destination : dest, + arrival : $(this), + top_offset : top_offset, + viewport_offset : viewport_offset + } + } + }).sort(function(a, b) { + if (a.top_offset < b.top_offset) return -1; + if (a.top_offset > b.top_offset) return 1; + return 0; + }); + }, + + data_attr: function (str) { + if (this.namespace.length > 0) { + return this.namespace + '-' + str; + } + + return str; + }, + + off : function () { + this.S(this.scope).off('.magellan'); + this.S(window).off('.magellan'); + }, + + reflow : function () { + var self = this; + // remove placeholder expeditions used for height calculation purposes + $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove(); + } + }; +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.magellan.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.magellan.min.js new file mode 100644 index 000000000..167b1bfe3 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.magellan.min.js @@ -0,0 +1 @@ +!function(t,a){"use strict";Foundation.libs["magellan-expedition"]={name:"magellan-expedition",version:"5.4.5",settings:{active_class:"active",threshold:0,destination_threshold:20,throttle_delay:30,fixed_top:0},init:function(t,a,e){Foundation.inherit(this,"throttle"),this.bindings(a,e)},events:function(){var e=this,i=e.S,n=e.settings;e.set_expedition_position(),i(e.scope).off(".magellan").on("click.fndtn.magellan","["+e.add_namespace("data-magellan-arrival")+'] a[href^="#"]',function(a){a.preventDefault();var i=t(this).closest("["+e.attr_name()+"]"),n=i.data("magellan-expedition-init"),o=this.hash.split("#").join(""),s=t("a[name='"+o+"']");0===s.length&&(s=t("#"+o));var l=s.offset().top-n.destination_threshold+1;l-=i.outerHeight(),t("html, body").stop().animate({scrollTop:l},700,"swing",function(){history.pushState?history.pushState(null,null,"#"+o):location.hash="#"+o})}).on("scroll.fndtn.magellan",e.throttle(this.check_for_arrivals.bind(this),n.throttle_delay)),t(a).on("resize.fndtn.magellan",e.throttle(this.set_expedition_position.bind(this),n.throttle_delay))},check_for_arrivals:function(){var t=this;t.update_arrivals(),t.update_expedition_positions()},set_expedition_position:function(){var a=this;t("["+this.attr_name()+"=fixed]",a.scope).each(function(){var e,i,n=t(this),o=n.data("magellan-expedition-init"),s=n.attr("styles");n.attr("style",""),e=n.offset().top+o.threshold,i=parseInt(n.data("magellan-fixed-top")),isNaN(i)||(a.settings.fixed_top=i),n.data(a.data_attr("magellan-top-offset"),e),n.attr("style",s)})},update_expedition_positions:function(){var e=this,i=t(a).scrollTop();t("["+this.attr_name()+"=fixed]",e.scope).each(function(){var a=t(this),n=a.data("magellan-expedition-init"),o=a.attr("style"),s=a.data("magellan-top-offset");if(i+e.settings.fixed_top>=s){var l=a.prev("["+e.add_namespace("data-magellan-expedition-clone")+"]");0===l.length&&(l=a.clone(),l.removeAttr(e.attr_name()),l.attr(e.add_namespace("data-magellan-expedition-clone"),""),a.before(l)),a.css({position:"fixed",top:n.fixed_top}).addClass("fixed")}else a.prev("["+e.add_namespace("data-magellan-expedition-clone")+"]").remove(),a.attr("style",o).css("position","").css("top","").removeClass("fixed")})},update_arrivals:function(){var e=this,i=t(a).scrollTop();t("["+this.attr_name()+"]",e.scope).each(function(){var a=t(this),n=a.data(e.attr_name(!0)+"-init"),o=e.offsets(a,i),s=a.find("["+e.add_namespace("data-magellan-arrival")+"]"),l=!1;o.each(function(t,i){if(i.viewport_offset>=i.top_offset){var o=a.find("["+e.add_namespace("data-magellan-arrival")+"]");return o.not(i.arrival).removeClass(n.active_class),i.arrival.addClass(n.active_class),l=!0,!0}}),l||s.removeClass(n.active_class)})},offsets:function(a,e){var i=this,n=a.data(i.attr_name(!0)+"-init"),o=e;return a.find("["+i.add_namespace("data-magellan-arrival")+"]").map(function(){var e=t(this).data(i.data_attr("magellan-arrival")),s=t("["+i.add_namespace("data-magellan-destination")+"="+e+"]");if(s.length>0){var l=Math.floor(s.offset().top-n.destination_threshold-a.outerHeight());return{destination:s,arrival:t(this),top_offset:l,viewport_offset:o}}}).sort(function(t,a){return t.top_offseta.top_offset?1:0})},data_attr:function(t){return this.namespace.length>0?this.namespace+"-"+t:t},off:function(){this.S(this.scope).off(".magellan"),this.S(a).off(".magellan")},reflow:function(){var a=this;t("["+a.add_namespace("data-magellan-expedition-clone")+"]",a.scope).remove()}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.min.js new file mode 100644 index 000000000..f18fc0cfd --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.min.js @@ -0,0 +1 @@ +!function(t,e,n,i){"use strict";function a(t){return("string"==typeof t||t instanceof String)&&(t=t.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g,"")),t}var s=function(e){for(var n=e.length,i=t("head");n--;)0===i.has("."+e[n]).length&&i.append('')};s(["foundation-mq-small","foundation-mq-medium","foundation-mq-large","foundation-mq-xlarge","foundation-mq-xxlarge","foundation-data-attribute-namespace"]),t(function(){"undefined"!=typeof FastClick&&"undefined"!=typeof n.body&&FastClick.attach(n.body)});var r=function(e,i){if("string"==typeof e){if(i){var a;if(i.jquery){if(a=i[0],!a)return i}else a=i;return t(a.querySelectorAll(e))}return t(n.querySelectorAll(e))}return t(e,i)},o=function(t){var e=[];return t||e.push("data"),this.namespace.length>0&&e.push(this.namespace),e.push(this.name),e.join("-")},u=function(t){for(var e=t.split("-"),n=e.length,i=[];n--;)0!==n?i.push(e[n]):this.namespace.length>0?i.push(this.namespace,e[n]):i.push(e[n]);return i.reverse().join("-")},l=function(e,n){var i=this,a=!r(this).data(this.attr_name(!0));return r(this.scope).is("["+this.attr_name()+"]")?(r(this.scope).data(this.attr_name(!0)+"-init",t.extend({},this.settings,n||e,this.data_options(r(this.scope)))),a&&this.events(this.scope)):r("["+this.attr_name()+"]",this.scope).each(function(){var a=!r(this).data(i.attr_name(!0)+"-init");r(this).data(i.attr_name(!0)+"-init",t.extend({},i.settings,n||e,i.data_options(r(this)))),a&&i.events(this)}),"string"==typeof e?this[e].call(this,n):void 0},c=function(t,e){function n(){e(t[0])}function i(){if(this.one("load",n),/MSIE (\d+\.\d+);/.test(navigator.userAgent)){var t=this.attr("src"),e=t.match(/\?/)?"&":"?";e+="random="+(new Date).getTime(),this.attr("src",t+e)}}return t.attr("src")?void(t[0].complete||4===t[0].readyState?n():i.call(t)):void n()};e.matchMedia=e.matchMedia||function(t){var e,n=t.documentElement,i=n.firstElementChild||n.firstChild,a=t.createElement("body"),s=t.createElement("div");return s.id="mq-test-1",s.style.cssText="position:absolute;top:-100em",a.style.background="none",a.appendChild(s),function(t){return s.innerHTML='­',n.insertBefore(a,i),e=42===s.offsetWidth,n.removeChild(a),{matches:e,media:t}}}(n),function(){function t(){n&&(s(t),o&&jQuery.fx.tick())}for(var n,i=0,a=["webkit","moz"],s=e.requestAnimationFrame,r=e.cancelAnimationFrame,o="undefined"!=typeof jQuery.fx;i").appendTo("head")[0].sheet,global:{namespace:i},init:function(t,n,i,a,s){var o=[t,i,a,s],u=[];if(this.rtl=/rtl/i.test(r("html").attr("dir")),this.scope=t||this.scope,this.set_namespace(),n&&"string"==typeof n&&!/reflow/i.test(n))this.libs.hasOwnProperty(n)&&u.push(this.init_lib(n,o));else for(var l in this.libs)u.push(this.init_lib(l,n));return r(e).load(function(){r(e).trigger("resize.fndtn.clearing").trigger("resize.fndtn.dropdown").trigger("resize.fndtn.equalizer").trigger("resize.fndtn.interchange").trigger("resize.fndtn.joyride").trigger("resize.fndtn.magellan").trigger("resize.fndtn.topbar").trigger("resize.fndtn.slider")}),t},init_lib:function(e,n){return this.libs.hasOwnProperty(e)?(this.patch(this.libs[e]),n&&n.hasOwnProperty(e)?("undefined"!=typeof this.libs[e].settings?t.extend(!0,this.libs[e].settings,n[e]):"undefined"!=typeof this.libs[e].defaults&&t.extend(!0,this.libs[e].defaults,n[e]),this.libs[e].init.apply(this.libs[e],[this.scope,n[e]])):(n=n instanceof Array?n:new Array(n),this.libs[e].init.apply(this.libs[e],n))):function(){}},patch:function(t){t.scope=this.scope,t.namespace=this.global.namespace,t.rtl=this.rtl,t.data_options=this.utils.data_options,t.attr_name=o,t.add_namespace=u,t.bindings=l,t.S=this.utils.S},inherit:function(t,e){for(var n=e.split(" "),i=n.length;i--;)this.utils.hasOwnProperty(n[i])&&(t[n[i]]=this.utils[n[i]])},set_namespace:function(){var e=this.global.namespace===i?t(".foundation-data-attribute-namespace").css("font-family"):this.global.namespace;this.global.namespace=e===i||/false/i.test(e)?"":e},libs:{},utils:{S:r,throttle:function(t,e){var n=null;return function(){var i=this,a=arguments;null==n&&(n=setTimeout(function(){t.apply(i,a),n=null},e))}},debounce:function(t,e,n){var i,a;return function(){var s=this,r=arguments,o=function(){i=null,n||(a=t.apply(s,r))},u=n&&!i;return clearTimeout(i),i=setTimeout(o,e),u&&(a=t.apply(s,r)),a}},data_options:function(e,n){function i(t){return!isNaN(t-0)&&null!==t&&""!==t&&t!==!1&&t!==!0}function a(e){return"string"==typeof e?t.trim(e):e}n=n||"options";var s,r,o,u={},l=function(t){var e=Foundation.global.namespace;return t.data(e.length>0?e+"-"+n:n)},c=l(e);if("object"==typeof c)return c;for(o=(c||":").split(";"),s=o.length;s--;)r=o[s].split(":"),r=[r[0],r.slice(1).join(":")],/true/i.test(r[1])&&(r[1]=!0),/false/i.test(r[1])&&(r[1]=!1),i(r[1])&&(r[1]=-1===r[1].indexOf(".")?parseInt(r[1],10):parseFloat(r[1])),2===r.length&&r[0].length>0&&(u[a(r[0])]=a(r[1]));return u},register_media:function(e,n){Foundation.media_queries[e]===i&&(t("head").append(''),Foundation.media_queries[e]=a(t("."+n).css("font-family")))},add_custom_rule:function(t,e){if(e===i&&Foundation.stylesheet)Foundation.stylesheet.insertRule(t,Foundation.stylesheet.cssRules.length);else{var n=Foundation.media_queries[e];n!==i&&Foundation.stylesheet.insertRule("@media "+Foundation.media_queries[e]+"{ "+t+" }")}},image_loaded:function(t,e){var n=this,i=t.length;0===i&&e(t),t.each(function(){c(n.S(this),function(){i-=1,0===i&&e(t)})})},random_str:function(){return this.fidx||(this.fidx=0),this.prefix=this.prefix||[this.name||"F",(+new Date).toString(36)].join("-"),this.prefix+(this.fidx++).toString(36)}}},t.fn.foundation=function(){var t=Array.prototype.slice.call(arguments,0);return this.each(function(){return Foundation.init.apply(Foundation,[this].concat(t)),this})}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.offcanvas.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.offcanvas.js new file mode 100644 index 000000000..409cceddb --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.offcanvas.js @@ -0,0 +1,152 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.offcanvas = { + name : 'offcanvas', + + version : '5.4.5', + + settings : { + open_method: 'move', + close_on_click: false + }, + + init : function (scope, method, options) { + this.bindings(method, options); + }, + + events : function () { + var self = this, + S = self.S, + move_class = '', + right_postfix = '', + left_postfix = ''; + + if (this.settings.open_method === 'move') { + move_class = 'move-'; + right_postfix = 'right'; + left_postfix = 'left'; + } else if (this.settings.open_method === 'overlap_single') { + move_class = 'offcanvas-overlap-'; + right_postfix = 'right'; + left_postfix = 'left'; + } else if (this.settings.open_method === 'overlap') { + move_class = 'offcanvas-overlap'; + } + + S(this.scope).off('.offcanvas') + .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) { + self.click_toggle_class(e, move_class + right_postfix); + if (self.settings.open_method !== 'overlap'){ + S(".left-submenu").removeClass(move_class + right_postfix); + } + $('.left-off-canvas-toggle').attr('aria-expanded', 'true'); + }) + .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) { + var settings = self.get_settings(e); + var parent = S(this).parent(); + + if(settings.close_on_click && !parent.hasClass("has-submenu") && !parent.hasClass("back")){ + self.hide.call(self, move_class + right_postfix, self.get_wrapper(e)); + parent.parent().removeClass(move_class + right_postfix); + }else if(S(this).parent().hasClass("has-submenu")){ + e.preventDefault(); + S(this).siblings(".left-submenu").toggleClass(move_class + right_postfix); + }else if(parent.hasClass("back")){ + e.preventDefault(); + parent.parent().removeClass(move_class + right_postfix); + } + $('.left-off-canvas-toggle').attr('aria-expanded', 'true'); + }) + .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) { + self.click_toggle_class(e, move_class + left_postfix); + if (self.settings.open_method !== 'overlap'){ + S(".right-submenu").removeClass(move_class + left_postfix); + } + $('.right-off-canvas-toggle').attr('aria-expanded', 'true'); + }) + .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) { + var settings = self.get_settings(e); + var parent = S(this).parent(); + + if(settings.close_on_click && !parent.hasClass("has-submenu") && !parent.hasClass("back")){ + self.hide.call(self, move_class + left_postfix, self.get_wrapper(e)); + parent.parent().removeClass(move_class + left_postfix); + }else if(S(this).parent().hasClass("has-submenu")){ + e.preventDefault(); + S(this).siblings(".right-submenu").toggleClass(move_class + left_postfix); + }else if(parent.hasClass("back")){ + e.preventDefault(); + parent.parent().removeClass(move_class + left_postfix); + } + $('.right-off-canvas-toggle').attr('aria-expanded', 'true'); + }) + .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) { + self.click_remove_class(e, move_class + left_postfix); + S(".right-submenu").removeClass(move_class + left_postfix); + if (right_postfix){ + self.click_remove_class(e, move_class + right_postfix); + S(".left-submenu").removeClass(move_class + left_postfix); + } + $('.right-off-canvas-toggle').attr('aria-expanded', 'true'); + }) + .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) { + self.click_remove_class(e, move_class + left_postfix); + $('.left-off-canvas-toggle').attr('aria-expanded', 'false'); + if (right_postfix) { + self.click_remove_class(e, move_class + right_postfix); + $('.right-off-canvas-toggle').attr('aria-expanded', "false"); + } + }); + }, + + toggle: function(class_name, $off_canvas) { + $off_canvas = $off_canvas || this.get_wrapper(); + if ($off_canvas.is('.' + class_name)) { + this.hide(class_name, $off_canvas); + } else { + this.show(class_name, $off_canvas); + } + }, + + show: function(class_name, $off_canvas) { + $off_canvas = $off_canvas || this.get_wrapper(); + $off_canvas.trigger('open').trigger('open.fndtn.offcanvas'); + $off_canvas.addClass(class_name); + }, + + hide: function(class_name, $off_canvas) { + $off_canvas = $off_canvas || this.get_wrapper(); + $off_canvas.trigger('close').trigger('close.fndtn.offcanvas'); + $off_canvas.removeClass(class_name); + }, + + click_toggle_class: function(e, class_name) { + e.preventDefault(); + var $off_canvas = this.get_wrapper(e); + this.toggle(class_name, $off_canvas); + }, + + click_remove_class: function(e, class_name) { + e.preventDefault(); + var $off_canvas = this.get_wrapper(e); + this.hide(class_name, $off_canvas); + }, + + get_settings: function(e) { + var offcanvas = this.S(e.target).closest('[' + this.attr_name() + ']'); + return offcanvas.data(this.attr_name(true) + '-init') || this.settings; + }, + + get_wrapper: function(e) { + var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap'); + + if ($off_canvas.length === 0) { + $off_canvas = this.S('.off-canvas-wrap'); + } + return $off_canvas; + }, + + reflow : function () {} + }; +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.offcanvas.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.offcanvas.min.js new file mode 100644 index 000000000..e0def3ab2 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.offcanvas.min.js @@ -0,0 +1 @@ +!function(e){"use strict";Foundation.libs.offcanvas={name:"offcanvas",version:"5.4.5",settings:{open_method:"move",close_on_click:!1},init:function(e,t,a){this.bindings(t,a)},events:function(){var t=this,a=t.S,s="",n="",o="";"move"===this.settings.open_method?(s="move-",n="right",o="left"):"overlap_single"===this.settings.open_method?(s="offcanvas-overlap-",n="right",o="left"):"overlap"===this.settings.open_method&&(s="offcanvas-overlap"),a(this.scope).off(".offcanvas").on("click.fndtn.offcanvas",".left-off-canvas-toggle",function(o){t.click_toggle_class(o,s+n),"overlap"!==t.settings.open_method&&a(".left-submenu").removeClass(s+n),e(".left-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".left-off-canvas-menu a",function(o){var i=t.get_settings(o),r=a(this).parent();!i.close_on_click||r.hasClass("has-submenu")||r.hasClass("back")?a(this).parent().hasClass("has-submenu")?(o.preventDefault(),a(this).siblings(".left-submenu").toggleClass(s+n)):r.hasClass("back")&&(o.preventDefault(),r.parent().removeClass(s+n)):(t.hide.call(t,s+n,t.get_wrapper(o)),r.parent().removeClass(s+n)),e(".left-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".right-off-canvas-toggle",function(n){t.click_toggle_class(n,s+o),"overlap"!==t.settings.open_method&&a(".right-submenu").removeClass(s+o),e(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".right-off-canvas-menu a",function(n){var i=t.get_settings(n),r=a(this).parent();!i.close_on_click||r.hasClass("has-submenu")||r.hasClass("back")?a(this).parent().hasClass("has-submenu")?(n.preventDefault(),a(this).siblings(".right-submenu").toggleClass(s+o)):r.hasClass("back")&&(n.preventDefault(),r.parent().removeClass(s+o)):(t.hide.call(t,s+o,t.get_wrapper(n)),r.parent().removeClass(s+o)),e(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(i){t.click_remove_class(i,s+o),a(".right-submenu").removeClass(s+o),n&&(t.click_remove_class(i,s+n),a(".left-submenu").removeClass(s+o)),e(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(a){t.click_remove_class(a,s+o),e(".left-off-canvas-toggle").attr("aria-expanded","false"),n&&(t.click_remove_class(a,s+n),e(".right-off-canvas-toggle").attr("aria-expanded","false"))})},toggle:function(e,t){t=t||this.get_wrapper(),t.is("."+e)?this.hide(e,t):this.show(e,t)},show:function(e,t){t=t||this.get_wrapper(),t.trigger("open").trigger("open.fndtn.offcanvas"),t.addClass(e)},hide:function(e,t){t=t||this.get_wrapper(),t.trigger("close").trigger("close.fndtn.offcanvas"),t.removeClass(e)},click_toggle_class:function(e,t){e.preventDefault();var a=this.get_wrapper(e);this.toggle(t,a)},click_remove_class:function(e,t){e.preventDefault();var a=this.get_wrapper(e);this.hide(t,a)},get_settings:function(e){var t=this.S(e.target).closest("["+this.attr_name()+"]");return t.data(this.attr_name(!0)+"-init")||this.settings},get_wrapper:function(e){var t=this.S(e?e.target:this.scope).closest(".off-canvas-wrap");return 0===t.length&&(t=this.S(".off-canvas-wrap")),t},reflow:function(){}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.orbit.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.orbit.js new file mode 100644 index 000000000..96ff2d77a --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.orbit.js @@ -0,0 +1,472 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + var noop = function() {}; + + var Orbit = function(el, settings) { + // Don't reinitialize plugin + if (el.hasClass(settings.slides_container_class)) { + return this; + } + + var self = this, + container, + slides_container = el, + number_container, + bullets_container, + timer_container, + idx = 0, + animate, + timer, + locked = false, + adjust_height_after = false; + + + self.slides = function() { + return slides_container.children(settings.slide_selector); + }; + + self.slides().first().addClass(settings.active_slide_class); + + self.update_slide_number = function(index) { + if (settings.slide_number) { + number_container.find('span:first').text(parseInt(index)+1); + number_container.find('span:last').text(self.slides().length); + } + if (settings.bullets) { + bullets_container.children().removeClass(settings.bullets_active_class); + $(bullets_container.children().get(index)).addClass(settings.bullets_active_class); + } + }; + + self.update_active_link = function(index) { + var link = $('[data-orbit-link="'+self.slides().eq(index).attr('data-orbit-slide')+'"]'); + link.siblings().removeClass(settings.bullets_active_class); + link.addClass(settings.bullets_active_class); + }; + + self.build_markup = function() { + slides_container.wrap('
'); + container = slides_container.parent(); + slides_container.addClass(settings.slides_container_class); + + if (settings.stack_on_small) { + container.addClass(settings.stack_on_small_class); + } + + if (settings.navigation_arrows) { + container.append($('').addClass(settings.prev_class)); + container.append($('').addClass(settings.next_class)); + } + + if (settings.timer) { + timer_container = $('
').addClass(settings.timer_container_class); + timer_container.append(''); + timer_container.append($('
').addClass(settings.timer_progress_class)); + timer_container.addClass(settings.timer_paused_class); + container.append(timer_container); + } + + if (settings.slide_number) { + number_container = $('
').addClass(settings.slide_number_class); + number_container.append(' ' + settings.slide_number_text + ' '); + container.append(number_container); + } + + if (settings.bullets) { + bullets_container = $('
    ').addClass(settings.bullets_container_class); + container.append(bullets_container); + bullets_container.wrap('
    '); + self.slides().each(function(idx, el) { + var bullet = $('
  1. ').attr('data-orbit-slide', idx).on('click', self.link_bullet);; + bullets_container.append(bullet); + }); + } + + }; + + self._goto = function(next_idx, start_timer) { + // if (locked) {return false;} + if (next_idx === idx) {return false;} + if (typeof timer === 'object') {timer.restart();} + var slides = self.slides(); + + var dir = 'next'; + locked = true; + if (next_idx < idx) {dir = 'prev';} + if (next_idx >= slides.length) { + if (!settings.circular) return false; + next_idx = 0; + } else if (next_idx < 0) { + if (!settings.circular) return false; + next_idx = slides.length - 1; + } + + var current = $(slides.get(idx)); + var next = $(slides.get(next_idx)); + + current.css('zIndex', 2); + current.removeClass(settings.active_slide_class); + next.css('zIndex', 4).addClass(settings.active_slide_class); + + slides_container.trigger('before-slide-change.fndtn.orbit'); + settings.before_slide_change(); + self.update_active_link(next_idx); + + var callback = function() { + var unlock = function() { + idx = next_idx; + locked = false; + if (start_timer === true) {timer = self.create_timer(); timer.start();} + self.update_slide_number(idx); + slides_container.trigger('after-slide-change.fndtn.orbit',[{slide_number: idx, total_slides: slides.length}]); + settings.after_slide_change(idx, slides.length); + }; + if (slides_container.height() != next.height() && settings.variable_height) { + slides_container.animate({'height': next.height()}, 250, 'linear', unlock); + } else { + unlock(); + } + }; + + if (slides.length === 1) {callback(); return false;} + + var start_animation = function() { + if (dir === 'next') {animate.next(current, next, callback);} + if (dir === 'prev') {animate.prev(current, next, callback);} + }; + + if (next.height() > slides_container.height() && settings.variable_height) { + slides_container.animate({'height': next.height()}, 250, 'linear', start_animation); + } else { + start_animation(); + } + }; + + self.next = function(e) { + e.stopImmediatePropagation(); + e.preventDefault(); + self._goto(idx + 1); + }; + + self.prev = function(e) { + e.stopImmediatePropagation(); + e.preventDefault(); + self._goto(idx - 1); + }; + + self.link_custom = function(e) { + e.preventDefault(); + var link = $(this).attr('data-orbit-link'); + if ((typeof link === 'string') && (link = $.trim(link)) != "") { + var slide = container.find('[data-orbit-slide='+link+']'); + if (slide.index() != -1) {self._goto(slide.index());} + } + }; + + self.link_bullet = function(e) { + var index = $(this).attr('data-orbit-slide'); + if ((typeof index === 'string') && (index = $.trim(index)) != "") { + if(isNaN(parseInt(index))) + { + var slide = container.find('[data-orbit-slide='+index+']'); + if (slide.index() != -1) {self._goto(slide.index() + 1);} + } + else + { + self._goto(parseInt(index)); + } + } + + } + + self.timer_callback = function() { + self._goto(idx + 1, true); + } + + self.compute_dimensions = function() { + var current = $(self.slides().get(idx)); + var h = current.height(); + if (!settings.variable_height) { + self.slides().each(function(){ + if ($(this).height() > h) { h = $(this).height(); } + }); + } + slides_container.height(h); + }; + + self.create_timer = function() { + var t = new Timer( + container.find('.'+settings.timer_container_class), + settings, + self.timer_callback + ); + return t; + }; + + self.stop_timer = function() { + if (typeof timer === 'object') timer.stop(); + }; + + self.toggle_timer = function() { + var t = container.find('.'+settings.timer_container_class); + if (t.hasClass(settings.timer_paused_class)) { + if (typeof timer === 'undefined') {timer = self.create_timer();} + timer.start(); + } + else { + if (typeof timer === 'object') {timer.stop();} + } + }; + + self.init = function() { + self.build_markup(); + if (settings.timer) { + timer = self.create_timer(); + Foundation.utils.image_loaded(this.slides().children('img'), timer.start); + } + animate = new FadeAnimation(settings, slides_container); + if (settings.animation === 'slide') + animate = new SlideAnimation(settings, slides_container); + + container.on('click', '.'+settings.next_class, self.next); + container.on('click', '.'+settings.prev_class, self.prev); + + if (settings.next_on_click) { + container.on('click', '.'+settings.slides_container_class+' [data-orbit-slide]', self.link_bullet); + } + + container.on('click', self.toggle_timer); + if (settings.swipe) { + container.on('touchstart.fndtn.orbit', function(e) { + if (!e.touches) {e = e.originalEvent;} + var data = { + start_page_x: e.touches[0].pageX, + start_page_y: e.touches[0].pageY, + start_time: (new Date()).getTime(), + delta_x: 0, + is_scrolling: undefined + }; + container.data('swipe-transition', data); + e.stopPropagation(); + }) + .on('touchmove.fndtn.orbit', function(e) { + if (!e.touches) { e = e.originalEvent; } + // Ignore pinch/zoom events + if(e.touches.length > 1 || e.scale && e.scale !== 1) return; + + var data = container.data('swipe-transition'); + if (typeof data === 'undefined') {data = {};} + + data.delta_x = e.touches[0].pageX - data.start_page_x; + + if ( typeof data.is_scrolling === 'undefined') { + data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) ); + } + + if (!data.is_scrolling && !data.active) { + e.preventDefault(); + var direction = (data.delta_x < 0) ? (idx+1) : (idx-1); + data.active = true; + self._goto(direction); + } + }) + .on('touchend.fndtn.orbit', function(e) { + container.data('swipe-transition', {}); + e.stopPropagation(); + }) + } + container.on('mouseenter.fndtn.orbit', function(e) { + if (settings.timer && settings.pause_on_hover) { + self.stop_timer(); + } + }) + .on('mouseleave.fndtn.orbit', function(e) { + if (settings.timer && settings.resume_on_mouseout) { + timer.start(); + } + }); + + $(document).on('click', '[data-orbit-link]', self.link_custom); + $(window).on('load resize', self.compute_dimensions); + Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions); + Foundation.utils.image_loaded(this.slides().children('img'), function() { + container.prev('.'+settings.preloader_class).css('display', 'none'); + self.update_slide_number(0); + self.update_active_link(0); + slides_container.trigger('ready.fndtn.orbit'); + }); + }; + + self.init(); + }; + + var Timer = function(el, settings, callback) { + var self = this, + duration = settings.timer_speed, + progress = el.find('.'+settings.timer_progress_class), + start, + timeout, + left = -1; + + this.update_progress = function(w) { + var new_progress = progress.clone(); + new_progress.attr('style', ''); + new_progress.css('width', w+'%'); + progress.replaceWith(new_progress); + progress = new_progress; + }; + + this.restart = function() { + clearTimeout(timeout); + el.addClass(settings.timer_paused_class); + left = -1; + self.update_progress(0); + }; + + this.start = function() { + if (!el.hasClass(settings.timer_paused_class)) {return true;} + left = (left === -1) ? duration : left; + el.removeClass(settings.timer_paused_class); + start = new Date().getTime(); + progress.animate({'width': '100%'}, left, 'linear'); + timeout = setTimeout(function() { + self.restart(); + callback(); + }, left); + el.trigger('timer-started.fndtn.orbit') + }; + + this.stop = function() { + if (el.hasClass(settings.timer_paused_class)) {return true;} + clearTimeout(timeout); + el.addClass(settings.timer_paused_class); + var end = new Date().getTime(); + left = left - (end - start); + var w = 100 - ((left / duration) * 100); + self.update_progress(w); + el.trigger('timer-stopped.fndtn.orbit'); + }; + }; + + var SlideAnimation = function(settings, container) { + var duration = settings.animation_speed; + var is_rtl = ($('html[dir=rtl]').length === 1); + var margin = is_rtl ? 'marginRight' : 'marginLeft'; + var animMargin = {}; + animMargin[margin] = '0%'; + + this.next = function(current, next, callback) { + current.animate({marginLeft:'-100%'}, duration); + next.animate(animMargin, duration, function() { + current.css(margin, '100%'); + callback(); + }); + }; + + this.prev = function(current, prev, callback) { + current.animate({marginLeft:'100%'}, duration); + prev.css(margin, '-100%'); + prev.animate(animMargin, duration, function() { + current.css(margin, '100%'); + callback(); + }); + }; + }; + + var FadeAnimation = function(settings, container) { + var duration = settings.animation_speed; + var is_rtl = ($('html[dir=rtl]').length === 1); + var margin = is_rtl ? 'marginRight' : 'marginLeft'; + + this.next = function(current, next, callback) { + next.css({'margin':'0%', 'opacity':'0.01'}); + next.animate({'opacity':'1'}, duration, 'linear', function() { + current.css('margin', '100%'); + callback(); + }); + }; + + this.prev = function(current, prev, callback) { + prev.css({'margin':'0%', 'opacity':'0.01'}); + prev.animate({'opacity':'1'}, duration, 'linear', function() { + current.css('margin', '100%'); + callback(); + }); + }; + }; + + + Foundation.libs = Foundation.libs || {}; + + Foundation.libs.orbit = { + name: 'orbit', + + version: '5.4.5', + + settings: { + animation: 'slide', + timer_speed: 10000, + pause_on_hover: true, + resume_on_mouseout: false, + next_on_click: true, + animation_speed: 500, + stack_on_small: false, + navigation_arrows: true, + slide_number: true, + slide_number_text: 'of', + container_class: 'orbit-container', + stack_on_small_class: 'orbit-stack-on-small', + next_class: 'orbit-next', + prev_class: 'orbit-prev', + timer_container_class: 'orbit-timer', + timer_paused_class: 'paused', + timer_progress_class: 'orbit-progress', + slides_container_class: 'orbit-slides-container', + preloader_class: 'preloader', + slide_selector: '*', + bullets_container_class: 'orbit-bullets', + bullets_active_class: 'active', + slide_number_class: 'orbit-slide-number', + caption_class: 'orbit-caption', + active_slide_class: 'active', + orbit_transition_class: 'orbit-transitioning', + bullets: true, + circular: true, + timer: true, + variable_height: false, + swipe: true, + before_slide_change: noop, + after_slide_change: noop + }, + + init : function (scope, method, options) { + var self = this; + this.bindings(method, options); + }, + + events : function (instance) { + var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init')); + this.S(instance).data(this.name + '-instance', orbit_instance); + }, + + reflow : function () { + var self = this; + + if (self.S(self.scope).is('[data-orbit]')) { + var $el = self.S(self.scope); + var instance = $el.data(self.name + '-instance'); + instance.compute_dimensions(); + } else { + self.S('[data-orbit]', self.scope).each(function(idx, el) { + var $el = self.S(el); + var opts = self.data_options($el); + var instance = $el.data(self.name + '-instance'); + instance.compute_dimensions(); + }); + } + } + }; + + +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.orbit.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.orbit.min.js new file mode 100644 index 000000000..2a004dbff --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.orbit.min.js @@ -0,0 +1 @@ +!function(t,e,i,s){"use strict";var a=function(){},n=function(a,n){if(a.hasClass(n.slides_container_class))return this;var c,d,_,u,p,m,f=this,g=a,h=0,v=!1;f.slides=function(){return g.children(n.slide_selector)},f.slides().first().addClass(n.active_slide_class),f.update_slide_number=function(e){n.slide_number&&(d.find("span:first").text(parseInt(e)+1),d.find("span:last").text(f.slides().length)),n.bullets&&(_.children().removeClass(n.bullets_active_class),t(_.children().get(e)).addClass(n.bullets_active_class))},f.update_active_link=function(e){var i=t('[data-orbit-link="'+f.slides().eq(e).attr("data-orbit-slide")+'"]');i.siblings().removeClass(n.bullets_active_class),i.addClass(n.bullets_active_class)},f.build_markup=function(){g.wrap('
    '),c=g.parent(),g.addClass(n.slides_container_class),n.stack_on_small&&c.addClass(n.stack_on_small_class),n.navigation_arrows&&(c.append(t('').addClass(n.prev_class)),c.append(t('').addClass(n.next_class))),n.timer&&(u=t("
    ").addClass(n.timer_container_class),u.append(""),u.append(t("
    ").addClass(n.timer_progress_class)),u.addClass(n.timer_paused_class),c.append(u)),n.slide_number&&(d=t("
    ").addClass(n.slide_number_class),d.append(" "+n.slide_number_text+" "),c.append(d)),n.bullets&&(_=t("
      ").addClass(n.bullets_container_class),c.append(_),_.wrap('
      '),f.slides().each(function(e){var i=t("
    1. ").attr("data-orbit-slide",e).on("click",f.link_bullet);_.append(i)}))},f._goto=function(e,i){if(e===h)return!1;"object"==typeof m&&m.restart();var s=f.slides(),a="next";if(v=!0,h>e&&(a="prev"),e>=s.length){if(!n.circular)return!1;e=0}else if(0>e){if(!n.circular)return!1;e=s.length-1}var r=t(s.get(h)),o=t(s.get(e));r.css("zIndex",2),r.removeClass(n.active_slide_class),o.css("zIndex",4).addClass(n.active_slide_class),g.trigger("before-slide-change.fndtn.orbit"),n.before_slide_change(),f.update_active_link(e);var l=function(){var t=function(){h=e,v=!1,i===!0&&(m=f.create_timer(),m.start()),f.update_slide_number(h),g.trigger("after-slide-change.fndtn.orbit",[{slide_number:h,total_slides:s.length}]),n.after_slide_change(h,s.length)};g.height()!=o.height()&&n.variable_height?g.animate({height:o.height()},250,"linear",t):t()};if(1===s.length)return l(),!1;var c=function(){"next"===a&&p.next(r,o,l),"prev"===a&&p.prev(r,o,l)};o.height()>g.height()&&n.variable_height?g.animate({height:o.height()},250,"linear",c):c()},f.next=function(t){t.stopImmediatePropagation(),t.preventDefault(),f._goto(h+1)},f.prev=function(t){t.stopImmediatePropagation(),t.preventDefault(),f._goto(h-1)},f.link_custom=function(e){e.preventDefault();var i=t(this).attr("data-orbit-link");if("string"==typeof i&&""!=(i=t.trim(i))){var s=c.find("[data-orbit-slide="+i+"]");-1!=s.index()&&f._goto(s.index())}},f.link_bullet=function(){var e=t(this).attr("data-orbit-slide");if("string"==typeof e&&""!=(e=t.trim(e)))if(isNaN(parseInt(e))){var i=c.find("[data-orbit-slide="+e+"]");-1!=i.index()&&f._goto(i.index()+1)}else f._goto(parseInt(e))},f.timer_callback=function(){f._goto(h+1,!0)},f.compute_dimensions=function(){var e=t(f.slides().get(h)),i=e.height();n.variable_height||f.slides().each(function(){t(this).height()>i&&(i=t(this).height())}),g.height(i)},f.create_timer=function(){var t=new r(c.find("."+n.timer_container_class),n,f.timer_callback);return t},f.stop_timer=function(){"object"==typeof m&&m.stop()},f.toggle_timer=function(){var t=c.find("."+n.timer_container_class);t.hasClass(n.timer_paused_class)?("undefined"==typeof m&&(m=f.create_timer()),m.start()):"object"==typeof m&&m.stop()},f.init=function(){f.build_markup(),n.timer&&(m=f.create_timer(),Foundation.utils.image_loaded(this.slides().children("img"),m.start)),p=new l(n,g),"slide"===n.animation&&(p=new o(n,g)),c.on("click","."+n.next_class,f.next),c.on("click","."+n.prev_class,f.prev),n.next_on_click&&c.on("click","."+n.slides_container_class+" [data-orbit-slide]",f.link_bullet),c.on("click",f.toggle_timer),n.swipe&&c.on("touchstart.fndtn.orbit",function(t){t.touches||(t=t.originalEvent);var e={start_page_x:t.touches[0].pageX,start_page_y:t.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:s};c.data("swipe-transition",e),t.stopPropagation()}).on("touchmove.fndtn.orbit",function(t){if(t.touches||(t=t.originalEvent),!(t.touches.length>1||t.scale&&1!==t.scale)){var e=c.data("swipe-transition");if("undefined"==typeof e&&(e={}),e.delta_x=t.touches[0].pageX-e.start_page_x,"undefined"==typeof e.is_scrolling&&(e.is_scrolling=!!(e.is_scrolling||Math.abs(e.delta_x) 0) { + S(this.scope) + // .off('.reveal') + .on('open.fndtn.reveal', this.settings.open) + .on('opened.fndtn.reveal', this.settings.opened) + .on('opened.fndtn.reveal', this.open_video) + .on('close.fndtn.reveal', this.settings.close) + .on('closed.fndtn.reveal', this.settings.closed) + .on('closed.fndtn.reveal', this.close_video); + } else { + S(this.scope) + // .off('.reveal') + .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open) + .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened) + .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video) + .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close) + .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed) + .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video); + } + + return true; + }, + + // PATCH #3: turning on key up capture only when a reveal window is open + key_up_on : function (scope) { + var self = this; + + // PATCH #1: fixing multiple keyup event trigger from single key press + self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) { + var open_modal = self.S('[' + self.attr_name() + '].open'), + settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ; + // PATCH #2: making sure that the close event can be called only while unlocked, + // so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window. + if ( settings && event.which === 27 && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key + self.close.call(self, open_modal); + } + }); + + return true; + }, + + // PATCH #3: turning on key up capture only when a reveal window is open + key_up_off : function (scope) { + this.S('body').off('keyup.fndtn.reveal'); + return true; + }, + + + open : function (target, ajax_settings) { + var self = this, + modal; + + if (target) { + if (typeof target.selector !== 'undefined') { + // Find the named node; only use the first one found, since the rest of the code assumes there's only one node + modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first(); + } else { + modal = self.S(this.scope); + + ajax_settings = target; + } + } else { + modal = self.S(this.scope); + } + + var settings = modal.data(self.attr_name(true) + '-init'); + settings = settings || this.settings; + + + if (modal.hasClass('open') && target.attr('data-reveal-id') == modal.attr('id')) { + return self.close(modal); + } + + if (!modal.hasClass('open')) { + var open_modal = self.S('[' + self.attr_name() + '].open'); + + if (typeof modal.data('css-top') === 'undefined') { + modal.data('css-top', parseInt(modal.css('top'), 10)) + .data('offset', this.cache_offset(modal)); + } + + this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open + modal.trigger('open').trigger('open.fndtn.reveal'); + + if (open_modal.length < 1) { + this.toggle_bg(modal, true); + } + + if (typeof ajax_settings === 'string') { + ajax_settings = { + url: ajax_settings + }; + } + + if (typeof ajax_settings === 'undefined' || !ajax_settings.url) { + if (open_modal.length > 0) { + this.hide(open_modal, settings.css.close); + } + + this.show(modal, settings.css.open); + } else { + var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null; + + $.extend(ajax_settings, { + success: function (data, textStatus, jqXHR) { + if ( $.isFunction(old_success) ) { + old_success(data, textStatus, jqXHR); + } + + modal.html(data); + self.S(modal).foundation('section', 'reflow'); + self.S(modal).children().foundation(); + + if (open_modal.length > 0) { + self.hide(open_modal, settings.css.close); + } + self.show(modal, settings.css.open); + } + }); + + $.ajax(ajax_settings); + } + } + self.S(window).trigger('resize'); + }, + + close : function (modal) { + var modal = modal && modal.length ? modal : this.S(this.scope), + open_modals = this.S('[' + this.attr_name() + '].open'), + settings = modal.data(this.attr_name(true) + '-init') || this.settings; + + if (open_modals.length > 0) { + this.locked = true; + this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open + modal.trigger('close').trigger('close.fndtn.reveal'); + this.toggle_bg(modal, false); + this.hide(open_modals, settings.css.close, settings); + } + }, + + close_targets : function () { + var base = '.' + this.settings.dismiss_modal_class; + + if (this.settings.close_on_background_click) { + return base + ', .' + this.settings.bg_class; + } + + return base; + }, + + toggle_bg : function (modal, state) { + if (this.S('.' + this.settings.bg_class).length === 0) { + this.settings.bg = $('
      ', {'class': this.settings.bg_class}) + .appendTo('body').hide(); + } + + var visible = this.settings.bg.filter(':visible').length > 0; + if ( state != visible ) { + if ( state == undefined ? visible : !state ) { + this.hide(this.settings.bg); + } else { + this.show(this.settings.bg); + } + } + }, + + show : function (el, css) { + // is modal + if (css) { + var settings = el.data(this.attr_name(true) + '-init') || this.settings, + root_element = settings.root_element; + + if (el.parent(root_element).length === 0) { + var placeholder = el.wrap('
      ').parent(); + + el.on('closed.fndtn.reveal.wrapped', function() { + el.detach().appendTo(placeholder); + el.unwrap().unbind('closed.fndtn.reveal.wrapped'); + }); + + el.detach().appendTo(root_element); + } + + var animData = getAnimationData(settings.animation); + if (!animData.animate) { + this.locked = false; + } + if (animData.pop) { + css.top = $(window).scrollTop() - el.data('offset') + 'px'; + var end_css = { + top: $(window).scrollTop() + el.data('css-top') + 'px', + opacity: 1 + }; + + return setTimeout(function () { + return el + .css(css) + .animate(end_css, settings.animation_speed, 'linear', function () { + this.locked = false; + el.trigger('opened').trigger('opened.fndtn.reveal'); + }.bind(this)) + .addClass('open'); + }.bind(this), settings.animation_speed / 2); + } + + if (animData.fade) { + css.top = $(window).scrollTop() + el.data('css-top') + 'px'; + var end_css = {opacity: 1}; + + return setTimeout(function () { + return el + .css(css) + .animate(end_css, settings.animation_speed, 'linear', function () { + this.locked = false; + el.trigger('opened').trigger('opened.fndtn.reveal'); + }.bind(this)) + .addClass('open'); + }.bind(this), settings.animation_speed / 2); + } + + return el.css(css).show().css({opacity: 1}).addClass('open').trigger('opened').trigger('opened.fndtn.reveal'); + } + + var settings = this.settings; + + // should we animate the background? + if (getAnimationData(settings.animation).fade) { + return el.fadeIn(settings.animation_speed / 2); + } + + this.locked = false; + + return el.show(); + }, + + hide : function (el, css) { + // is modal + if (css) { + var settings = el.data(this.attr_name(true) + '-init'); + settings = settings || this.settings; + + var animData = getAnimationData(settings.animation); + if (!animData.animate) { + this.locked = false; + } + if (animData.pop) { + var end_css = { + top: - $(window).scrollTop() - el.data('offset') + 'px', + opacity: 0 + }; + + return setTimeout(function () { + return el + .animate(end_css, settings.animation_speed, 'linear', function () { + this.locked = false; + el.css(css).trigger('closed').trigger('closed.fndtn.reveal'); + }.bind(this)) + .removeClass('open'); + }.bind(this), settings.animation_speed / 2); + } + + if (animData.fade) { + var end_css = {opacity: 0}; + + return setTimeout(function () { + return el + .animate(end_css, settings.animation_speed, 'linear', function () { + this.locked = false; + el.css(css).trigger('closed').trigger('closed.fndtn.reveal'); + }.bind(this)) + .removeClass('open'); + }.bind(this), settings.animation_speed / 2); + } + + return el.hide().css(css).removeClass('open').trigger('closed').trigger('closed.fndtn.reveal'); + } + + var settings = this.settings; + + // should we animate the background? + if (getAnimationData(settings.animation).fade) { + return el.fadeOut(settings.animation_speed / 2); + } + + return el.hide(); + }, + + close_video : function (e) { + var video = $('.flex-video', e.target), + iframe = $('iframe', video); + + if (iframe.length > 0) { + iframe.attr('data-src', iframe[0].src); + iframe.attr('src', iframe.attr('src')); + video.hide(); + } + }, + + open_video : function (e) { + var video = $('.flex-video', e.target), + iframe = video.find('iframe'); + + if (iframe.length > 0) { + var data_src = iframe.attr('data-src'); + if (typeof data_src === 'string') { + iframe[0].src = iframe.attr('data-src'); + } else { + var src = iframe[0].src; + iframe[0].src = undefined; + iframe[0].src = src; + } + video.show(); + } + }, + + data_attr: function (str) { + if (this.namespace.length > 0) { + return this.namespace + '-' + str; + } + + return str; + }, + + cache_offset : function (modal) { + var offset = modal.show().height() + parseInt(modal.css('top'), 10); + + modal.hide(); + + return offset; + }, + + off : function () { + $(this.scope).off('.fndtn.reveal'); + }, + + reflow : function () {} + }; + + /* + * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true} + * getAnimationData('fade') // {animate: true, pop: false, fade: true} + * getAnimationData('pop') // {animate: true, pop: true, fade: false} + * getAnimationData('foo') // {animate: false, pop: false, fade: false} + * getAnimationData(null) // {animate: false, pop: false, fade: false} + */ + function getAnimationData(str) { + var fade = /fade/i.test(str); + var pop = /pop/i.test(str); + return { + animate: fade || pop, + pop: pop, + fade: fade + }; + } +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.reveal.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.reveal.min.js new file mode 100644 index 000000000..1cc62f2ff --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.reveal.min.js @@ -0,0 +1 @@ +!function(e,t,n,s){"use strict";function i(e){var t=/fade/i.test(e),n=/pop/i.test(e);return{animate:t||n,pop:n,fade:t}}Foundation.libs.reveal={name:"reveal",version:"5.4.5",locked:!1,settings:{animation:"fadeAndPop",animation_speed:250,close_on_background_click:!0,close_on_esc:!0,dismiss_modal_class:"close-reveal-modal",bg_class:"reveal-modal-bg",root_element:"body",open:function(){},opened:function(){},close:function(){},closed:function(){},bg:e(".reveal-modal-bg"),css:{open:{opacity:0,visibility:"visible",display:"block"},close:{opacity:1,visibility:"hidden",display:"none"}}},init:function(t,n,s){e.extend(!0,this.settings,n,s),this.bindings(n,s)},events:function(){var e=this,t=e.S;return t(this.scope).off(".reveal").on("click.fndtn.reveal","["+this.add_namespace("data-reveal-id")+"]:not([disabled])",function(n){if(n.preventDefault(),!e.locked){var s=t(this),i=s.data(e.data_attr("reveal-ajax"));if(e.locked=!0,"undefined"==typeof i)e.open.call(e,s);else{var a=i===!0?s.attr("href"):i;e.open.call(e,s,{url:a})}}}),t(n).on("click.fndtn.reveal",this.close_targets(),function(n){if(n.preventDefault(),!e.locked){var s=t("["+e.attr_name()+"].open").data(e.attr_name(!0)+"-init"),i=t(n.target)[0]===t("."+s.bg_class)[0];if(i){if(!s.close_on_background_click)return;n.stopPropagation()}e.locked=!0,e.close.call(e,i?t("["+e.attr_name()+"].open"):t(this).closest("["+e.attr_name()+"]"))}}),t("["+e.attr_name()+"]",this.scope).length>0?t(this.scope).on("open.fndtn.reveal",this.settings.open).on("opened.fndtn.reveal",this.settings.opened).on("opened.fndtn.reveal",this.open_video).on("close.fndtn.reveal",this.settings.close).on("closed.fndtn.reveal",this.settings.closed).on("closed.fndtn.reveal",this.close_video):t(this.scope).on("open.fndtn.reveal","["+e.attr_name()+"]",this.settings.open).on("opened.fndtn.reveal","["+e.attr_name()+"]",this.settings.opened).on("opened.fndtn.reveal","["+e.attr_name()+"]",this.open_video).on("close.fndtn.reveal","["+e.attr_name()+"]",this.settings.close).on("closed.fndtn.reveal","["+e.attr_name()+"]",this.settings.closed).on("closed.fndtn.reveal","["+e.attr_name()+"]",this.close_video),!0},key_up_on:function(){var e=this;return e.S("body").off("keyup.fndtn.reveal").on("keyup.fndtn.reveal",function(t){var n=e.S("["+e.attr_name()+"].open"),s=n.data(e.attr_name(!0)+"-init")||e.settings;s&&27===t.which&&s.close_on_esc&&!e.locked&&e.close.call(e,n)}),!0},key_up_off:function(){return this.S("body").off("keyup.fndtn.reveal"),!0},open:function(n,s){var i,a=this;n?"undefined"!=typeof n.selector?i=a.S("#"+n.data(a.data_attr("reveal-id"))).first():(i=a.S(this.scope),s=n):i=a.S(this.scope);var o=i.data(a.attr_name(!0)+"-init");if(o=o||this.settings,i.hasClass("open")&&n.attr("data-reveal-id")==i.attr("id"))return a.close(i);if(!i.hasClass("open")){var r=a.S("["+a.attr_name()+"].open");if("undefined"==typeof i.data("css-top")&&i.data("css-top",parseInt(i.css("top"),10)).data("offset",this.cache_offset(i)),this.key_up_on(i),i.trigger("open").trigger("open.fndtn.reveal"),r.length<1&&this.toggle_bg(i,!0),"string"==typeof s&&(s={url:s}),"undefined"!=typeof s&&s.url){var d="undefined"!=typeof s.success?s.success:null;e.extend(s,{success:function(t,n,s){e.isFunction(d)&&d(t,n,s),i.html(t),a.S(i).foundation("section","reflow"),a.S(i).children().foundation(),r.length>0&&a.hide(r,o.css.close),a.show(i,o.css.open)}}),e.ajax(s)}else r.length>0&&this.hide(r,o.css.close),this.show(i,o.css.open)}a.S(t).trigger("resize")},close:function(e){var e=e&&e.length?e:this.S(this.scope),t=this.S("["+this.attr_name()+"].open"),n=e.data(this.attr_name(!0)+"-init")||this.settings;t.length>0&&(this.locked=!0,this.key_up_off(e),e.trigger("close").trigger("close.fndtn.reveal"),this.toggle_bg(e,!1),this.hide(t,n.css.close,n))},close_targets:function(){var e="."+this.settings.dismiss_modal_class;return this.settings.close_on_background_click?e+", ."+this.settings.bg_class:e},toggle_bg:function(t,n){0===this.S("."+this.settings.bg_class).length&&(this.settings.bg=e("
      ",{"class":this.settings.bg_class}).appendTo("body").hide());var i=this.settings.bg.filter(":visible").length>0;n!=i&&((n==s?i:!n)?this.hide(this.settings.bg):this.show(this.settings.bg))},show:function(n,s){if(s){var a=n.data(this.attr_name(!0)+"-init")||this.settings,o=a.root_element;if(0===n.parent(o).length){var r=n.wrap('
      ').parent();n.on("closed.fndtn.reveal.wrapped",function(){n.detach().appendTo(r),n.unwrap().unbind("closed.fndtn.reveal.wrapped")}),n.detach().appendTo(o)}var d=i(a.animation);if(d.animate||(this.locked=!1),d.pop){s.top=e(t).scrollTop()-n.data("offset")+"px";var c={top:e(t).scrollTop()+n.data("css-top")+"px",opacity:1};return setTimeout(function(){return n.css(s).animate(c,a.animation_speed,"linear",function(){this.locked=!1,n.trigger("opened").trigger("opened.fndtn.reveal")}.bind(this)).addClass("open")}.bind(this),a.animation_speed/2)}if(d.fade){s.top=e(t).scrollTop()+n.data("css-top")+"px";var c={opacity:1};return setTimeout(function(){return n.css(s).animate(c,a.animation_speed,"linear",function(){this.locked=!1,n.trigger("opened").trigger("opened.fndtn.reveal")}.bind(this)).addClass("open")}.bind(this),a.animation_speed/2)}return n.css(s).show().css({opacity:1}).addClass("open").trigger("opened").trigger("opened.fndtn.reveal")}var a=this.settings;return i(a.animation).fade?n.fadeIn(a.animation_speed/2):(this.locked=!1,n.show())},hide:function(n,s){if(s){var a=n.data(this.attr_name(!0)+"-init");a=a||this.settings;var o=i(a.animation);if(o.animate||(this.locked=!1),o.pop){var r={top:-e(t).scrollTop()-n.data("offset")+"px",opacity:0};return setTimeout(function(){return n.animate(r,a.animation_speed,"linear",function(){this.locked=!1,n.css(s).trigger("closed").trigger("closed.fndtn.reveal")}.bind(this)).removeClass("open")}.bind(this),a.animation_speed/2)}if(o.fade){var r={opacity:0};return setTimeout(function(){return n.animate(r,a.animation_speed,"linear",function(){this.locked=!1,n.css(s).trigger("closed").trigger("closed.fndtn.reveal")}.bind(this)).removeClass("open")}.bind(this),a.animation_speed/2)}return n.hide().css(s).removeClass("open").trigger("closed").trigger("closed.fndtn.reveal")}var a=this.settings;return i(a.animation).fade?n.fadeOut(a.animation_speed/2):n.hide()},close_video:function(t){var n=e(".flex-video",t.target),s=e("iframe",n);s.length>0&&(s.attr("data-src",s[0].src),s.attr("src",s.attr("src")),n.hide())},open_video:function(t){var n=e(".flex-video",t.target),i=n.find("iframe");if(i.length>0){var a=i.attr("data-src");if("string"==typeof a)i[0].src=i.attr("data-src");else{var o=i[0].src;i[0].src=s,i[0].src=o}n.show()}},data_attr:function(e){return this.namespace.length>0?this.namespace+"-"+e:e},cache_offset:function(e){var t=e.show().height()+parseInt(e.css("top"),10);return e.hide(),t},off:function(){e(this.scope).off(".fndtn.reveal")},reflow:function(){}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.slider.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.slider.js new file mode 100644 index 000000000..96594d854 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.slider.js @@ -0,0 +1,239 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.slider = { + name : 'slider', + + version : '5.4.5', + + settings: { + start: 0, + end: 100, + step: 1, + initial: null, + display_selector: '', + vertical: false, + on_change: function(){} + }, + + cache : {}, + + init : function (scope, method, options) { + Foundation.inherit(this,'throttle'); + this.bindings(method, options); + this.reflow(); + }, + + events : function() { + var self = this; + + $(this.scope) + .off('.slider') + .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider', + '[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function(e) { + if (!self.cache.active) { + e.preventDefault(); + self.set_active_slider($(e.target)); + } + }) + .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function(e) { + if (!!self.cache.active) { + e.preventDefault(); + if ($.data(self.cache.active[0], 'settings').vertical) { + var scroll_offset = 0; + if (!e.pageY) { + scroll_offset = window.scrollY; + } + self.calculate_position(self.cache.active, (e.pageY || + e.originalEvent.clientY || + e.originalEvent.touches[0].clientY || + e.currentPoint.y) + + scroll_offset); + } else { + self.calculate_position(self.cache.active, e.pageX || + e.originalEvent.clientX || + e.originalEvent.touches[0].clientX || + e.currentPoint.x); + } + } + }) + .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function(e) { + self.remove_active_slider(); + }) + .on('change.fndtn.slider', function(e) { + self.settings.on_change(); + }); + + self.S(window) + .on('resize.fndtn.slider', self.throttle(function(e) { + self.reflow(); + }, 300)); + }, + + set_active_slider : function($handle) { + this.cache.active = $handle; + }, + + remove_active_slider : function() { + this.cache.active = null; + }, + + calculate_position : function($handle, cursor_x) { + var self = this, + settings = $.data($handle[0], 'settings'), + handle_l = $.data($handle[0], 'handle_l'), + handle_o = $.data($handle[0], 'handle_o'), + bar_l = $.data($handle[0], 'bar_l'), + bar_o = $.data($handle[0], 'bar_o'); + + requestAnimationFrame(function(){ + var pct; + + if (Foundation.rtl && !settings.vertical) { + pct = self.limit_to(((bar_o+bar_l-cursor_x)/bar_l),0,1); + } else { + pct = self.limit_to(((cursor_x-bar_o)/bar_l),0,1); + } + + pct = settings.vertical ? 1-pct : pct; + + var norm = self.normalized_value(pct, settings.start, settings.end, settings.step); + + self.set_ui($handle, norm); + }); + }, + + set_ui : function($handle, value) { + var settings = $.data($handle[0], 'settings'), + handle_l = $.data($handle[0], 'handle_l'), + bar_l = $.data($handle[0], 'bar_l'), + norm_pct = this.normalized_percentage(value, settings.start, settings.end), + handle_offset = norm_pct*(bar_l-handle_l)-1, + progress_bar_length = norm_pct*100; + + if (Foundation.rtl && !settings.vertical) { + handle_offset = -handle_offset; + } + + handle_offset = settings.vertical ? -handle_offset + bar_l - handle_l + 1 : handle_offset; + this.set_translate($handle, handle_offset, settings.vertical); + + if (settings.vertical) { + $handle.siblings('.range-slider-active-segment').css('height', progress_bar_length + '%'); + } else { + $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%'); + } + + $handle.parent().attr(this.attr_name(), value).trigger('change').trigger('change.fndtn.slider'); + + $handle.parent().children('input[type=hidden]').val(value); + + if (!$handle[0].hasAttribute('aria-valuemin')) { + $handle.attr({ + 'aria-valuemin': settings.start, + 'aria-valuemax': settings.end, + }); + } + $handle.attr('aria-valuenow', value); + + // if (settings.input_id != '') { + // $(settings.display_selector).each(function(){ + // if (this.hasOwnProperty('value')) { + // $(this).val(value); + // } else { + // $(this).text(value); + // } + // }); + // } + + }, + + normalized_percentage : function(val, start, end) { + return Math.min(1, (val - start)/(end - start)); + }, + + normalized_value : function(val, start, end, step) { + var range = end - start, + point = val*range, + mod = (point-(point%step)) / step, + rem = point % step, + round = ( rem >= step*0.5 ? step : 0); + return (mod*step + round) + start; + }, + + set_translate : function(ele, offset, vertical) { + if (vertical) { + $(ele) + .css('-webkit-transform', 'translateY('+offset+'px)') + .css('-moz-transform', 'translateY('+offset+'px)') + .css('-ms-transform', 'translateY('+offset+'px)') + .css('-o-transform', 'translateY('+offset+'px)') + .css('transform', 'translateY('+offset+'px)'); + } else { + $(ele) + .css('-webkit-transform', 'translateX('+offset+'px)') + .css('-moz-transform', 'translateX('+offset+'px)') + .css('-ms-transform', 'translateX('+offset+'px)') + .css('-o-transform', 'translateX('+offset+'px)') + .css('transform', 'translateX('+offset+'px)'); + } + }, + + limit_to : function(val, min, max) { + return Math.min(Math.max(val, min), max); + }, + + initialize_settings : function(handle) { + var settings = $.extend({}, this.settings, this.data_options($(handle).parent())); + + if (settings.vertical) { + $.data(handle, 'bar_o', $(handle).parent().offset().top); + $.data(handle, 'bar_l', $(handle).parent().outerHeight()); + $.data(handle, 'handle_o', $(handle).offset().top); + $.data(handle, 'handle_l', $(handle).outerHeight()); + } else { + $.data(handle, 'bar_o', $(handle).parent().offset().left); + $.data(handle, 'bar_l', $(handle).parent().outerWidth()); + $.data(handle, 'handle_o', $(handle).offset().left); + $.data(handle, 'handle_l', $(handle).outerWidth()); + } + + $.data(handle, 'bar', $(handle).parent()); + $.data(handle, 'settings', settings); + }, + + set_initial_position : function($ele) { + var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'), + initial = (!!settings.initial ? settings.initial : Math.floor((settings.end-settings.start)*0.5/settings.step)*settings.step+settings.start), + $handle = $ele.children('.range-slider-handle'); + this.set_ui($handle, initial); + }, + + set_value : function(value) { + var self = this; + $('[' + self.attr_name() + ']', this.scope).each(function(){ + $(this).attr(self.attr_name(), value); + }); + if (!!$(this.scope).attr(self.attr_name())) { + $(this.scope).attr(self.attr_name(), value); + } + self.reflow(); + }, + + reflow : function() { + var self = this; + self.S('[' + this.attr_name() + ']').each(function() { + var handle = $(this).children('.range-slider-handle')[0], + val = $(this).attr(self.attr_name()); + self.initialize_settings(handle); + + if (val) { + self.set_ui($(handle), parseFloat(val)); + } else { + self.set_initial_position($(this)); + } + }); + } + }; + +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.slider.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.slider.min.js new file mode 100644 index 000000000..b4530ea0f --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.slider.min.js @@ -0,0 +1 @@ +!function(t,e){"use strict";Foundation.libs.slider={name:"slider",version:"5.4.5",settings:{start:0,end:100,step:1,initial:null,display_selector:"",vertical:!1,on_change:function(){}},cache:{},init:function(t,e,a){Foundation.inherit(this,"throttle"),this.bindings(e,a),this.reflow()},events:function(){var a=this;t(this.scope).off(".slider").on("mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider","["+a.attr_name()+"]:not(.disabled, [disabled]) .range-slider-handle",function(e){a.cache.active||(e.preventDefault(),a.set_active_slider(t(e.target)))}).on("mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider",function(n){if(a.cache.active)if(n.preventDefault(),t.data(a.cache.active[0],"settings").vertical){var i=0;n.pageY||(i=e.scrollY),a.calculate_position(a.cache.active,(n.pageY||n.originalEvent.clientY||n.originalEvent.touches[0].clientY||n.currentPoint.y)+i)}else a.calculate_position(a.cache.active,n.pageX||n.originalEvent.clientX||n.originalEvent.touches[0].clientX||n.currentPoint.x)}).on("mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider",function(){a.remove_active_slider()}).on("change.fndtn.slider",function(){a.settings.on_change()}),a.S(e).on("resize.fndtn.slider",a.throttle(function(){a.reflow()},300))},set_active_slider:function(t){this.cache.active=t},remove_active_slider:function(){this.cache.active=null},calculate_position:function(e,a){var n=this,i=t.data(e[0],"settings"),r=(t.data(e[0],"handle_l"),t.data(e[0],"handle_o"),t.data(e[0],"bar_l")),s=t.data(e[0],"bar_o");requestAnimationFrame(function(){var t;t=Foundation.rtl&&!i.vertical?n.limit_to((s+r-a)/r,0,1):n.limit_to((a-s)/r,0,1),t=i.vertical?1-t:t;var o=n.normalized_value(t,i.start,i.end,i.step);n.set_ui(e,o)})},set_ui:function(e,a){var n=t.data(e[0],"settings"),i=t.data(e[0],"handle_l"),r=t.data(e[0],"bar_l"),s=this.normalized_percentage(a,n.start,n.end),o=s*(r-i)-1,l=100*s;Foundation.rtl&&!n.vertical&&(o=-o),o=n.vertical?-o+r-i+1:o,this.set_translate(e,o,n.vertical),n.vertical?e.siblings(".range-slider-active-segment").css("height",l+"%"):e.siblings(".range-slider-active-segment").css("width",l+"%"),e.parent().attr(this.attr_name(),a).trigger("change").trigger("change.fndtn.slider"),e.parent().children("input[type=hidden]").val(a),e[0].hasAttribute("aria-valuemin")||e.attr({"aria-valuemin":n.start,"aria-valuemax":n.end}),e.attr("aria-valuenow",a)},normalized_percentage:function(t,e,a){return Math.min(1,(t-e)/(a-e))},normalized_value:function(t,e,a,n){var i=a-e,r=t*i,s=(r-r%n)/n,o=r%n,l=o>=.5*n?n:0;return s*n+l+e},set_translate:function(e,a,n){n?t(e).css("-webkit-transform","translateY("+a+"px)").css("-moz-transform","translateY("+a+"px)").css("-ms-transform","translateY("+a+"px)").css("-o-transform","translateY("+a+"px)").css("transform","translateY("+a+"px)"):t(e).css("-webkit-transform","translateX("+a+"px)").css("-moz-transform","translateX("+a+"px)").css("-ms-transform","translateX("+a+"px)").css("-o-transform","translateX("+a+"px)").css("transform","translateX("+a+"px)")},limit_to:function(t,e,a){return Math.min(Math.max(t,e),a)},initialize_settings:function(e){var a=t.extend({},this.settings,this.data_options(t(e).parent()));a.vertical?(t.data(e,"bar_o",t(e).parent().offset().top),t.data(e,"bar_l",t(e).parent().outerHeight()),t.data(e,"handle_o",t(e).offset().top),t.data(e,"handle_l",t(e).outerHeight())):(t.data(e,"bar_o",t(e).parent().offset().left),t.data(e,"bar_l",t(e).parent().outerWidth()),t.data(e,"handle_o",t(e).offset().left),t.data(e,"handle_l",t(e).outerWidth())),t.data(e,"bar",t(e).parent()),t.data(e,"settings",a)},set_initial_position:function(e){var a=t.data(e.children(".range-slider-handle")[0],"settings"),n=a.initial?a.initial:Math.floor(.5*(a.end-a.start)/a.step)*a.step+a.start,i=e.children(".range-slider-handle");this.set_ui(i,n)},set_value:function(e){var a=this;t("["+a.attr_name()+"]",this.scope).each(function(){t(this).attr(a.attr_name(),e)}),t(this.scope).attr(a.attr_name())&&t(this.scope).attr(a.attr_name(),e),a.reflow()},reflow:function(){var e=this;e.S("["+this.attr_name()+"]").each(function(){var a=t(this).children(".range-slider-handle")[0],n=t(this).attr(e.attr_name());e.initialize_settings(a),n?e.set_ui(t(a),parseFloat(n)):e.set_initial_position(t(this))})}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.tab.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.tab.js new file mode 100644 index 000000000..6eabfe905 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.tab.js @@ -0,0 +1,217 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.tab = { + name : 'tab', + + version : '5.4.5', + + settings : { + active_class: 'active', + callback : function () {}, + deep_linking: false, + scroll_to_content: true, + is_hover: false + }, + + default_tab_hashes: [], + + init : function (scope, method, options) { + var self = this, + S = this.S; + + this.bindings(method, options); + this.handle_location_hash_change(); + + // Store the default active tabs which will be referenced when the + // location hash is absent, as in the case of navigating the tabs and + // returning to the first viewing via the browser Back button. + S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () { + self.default_tab_hashes.push(this.hash); + }); + }, + + events : function () { + var self = this, + S = this.S; + + var usual_tab_behavior = function (e) { + var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init'); + if (!settings.is_hover || Modernizr.touch) { + e.preventDefault(); + e.stopPropagation(); + self.toggle_active_tab(S(this).parent()); + } + }; + + S(this.scope) + .off('.tab') + // Click event: tab title + .on('focus.fndtn.tab', '[' + this.attr_name() + '] > * > a', usual_tab_behavior ) + .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', usual_tab_behavior ) + // Hover event: tab title + .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) { + var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init'); + if (settings.is_hover) self.toggle_active_tab(S(this).parent()); + }); + + // Location hash change event + S(window).on('hashchange.fndtn.tab', function (e) { + e.preventDefault(); + self.handle_location_hash_change(); + }); + }, + + handle_location_hash_change : function () { + + var self = this, + S = this.S; + + S('[' + this.attr_name() + ']', this.scope).each(function () { + var settings = S(this).data(self.attr_name(true) + '-init'); + if (settings.deep_linking) { + // Match the location hash to a label + var hash; + if (settings.scroll_to_content) { + hash = self.scope.location.hash; + } else { + // prefix the hash to prevent anchor scrolling + hash = self.scope.location.hash.replace('fndtn-', ''); + } + if (hash != '') { + // Check whether the location hash references a tab content div or + // another element on the page (inside or outside the tab content div) + var hash_element = S(hash); + if (hash_element.hasClass('content') && hash_element.parent().hasClass('tab-content')) { + // Tab content div + self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent()); + } else { + // Not the tab content div. If inside the tab content, find the + // containing tab and toggle it as active. + var hash_tab_container_id = hash_element.closest('.content').attr('id'); + if (hash_tab_container_id != undefined) { + self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash); + } + } + } else { + // Reference the default tab hashes which were initialized in the init function + for (var ind in self.default_tab_hashes) { + self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent()); + } + } + } + }); + }, + + toggle_active_tab: function (tab, location_hash) { + var S = this.S, + tabs = tab.closest('[' + this.attr_name() + ']'), + tab_link = tab.find('a'), + anchor = tab.children('a').first(), + target_hash = '#' + anchor.attr('href').split('#')[1], + target = S(target_hash), + siblings = tab.siblings(), + settings = tabs.data(this.attr_name(true) + '-init'), + interpret_keyup_action = function(e) { + // Light modification of Heydon Pickering's Practical ARIA Examples: http://heydonworks.com/practical_aria_examples/js/a11y.js + + // define current, previous and next (possible) tabs + + var $original = $(this); + var $prev = $(this).parents('li').prev().children('[role="tab"]'); + var $next = $(this).parents('li').next().children('[role="tab"]'); + var $target; + + // find the direction (prev or next) + + switch (e.keyCode) { + case 37: + $target = $prev; + break; + case 39: + $target = $next; + break; + default: + $target = false + break; + } + + if ($target.length) { + $original.attr({ + 'tabindex' : '-1', + 'aria-selected' : null + }); + $target.attr({ + 'tabindex' : '0', + 'aria-selected' : true + }).focus(); + } + + // Hide panels + + $('[role="tabpanel"]') + .attr('aria-hidden', 'true'); + + // Show panel which corresponds to target + + $('#' + $(document.activeElement).attr('href').substring(1)) + .attr('aria-hidden', null); + + }; + + // allow usage of data-tab-content attribute instead of href + if (S(this).data(this.data_attr('tab-content'))) { + target_hash = '#' + S(this).data(this.data_attr('tab-content')).split('#')[1]; + target = S(target_hash); + } + + if (settings.deep_linking) { + + if (settings.scroll_to_content) { + // retain current hash to scroll to content + window.location.hash = location_hash || target_hash; + if (location_hash == undefined || location_hash == target_hash) { + tab.parent()[0].scrollIntoView(); + } else { + S(target_hash)[0].scrollIntoView(); + } + } else { + // prefix the hashes so that the browser doesn't scroll down + if (location_hash != undefined) { + window.location.hash = 'fndtn-' + location_hash.replace('#', ''); + } else { + window.location.hash = 'fndtn-' + target_hash.replace('#', ''); + } + } + } + + // WARNING: The activation and deactivation of the tab content must + // occur after the deep linking in order to properly refresh the browser + // window (notably in Chrome). + // Clean up multiple attr instances to done once + tab.addClass(settings.active_class).triggerHandler('opened'); + tab_link.attr({"aria-selected": "true", tabindex: 0}); + siblings.removeClass(settings.active_class) + siblings.find('a').attr({"aria-selected": "false", tabindex: -1}); + target.siblings().removeClass(settings.active_class).attr({"aria-hidden": "true", tabindex: -1}).end().addClass(settings.active_class).attr('aria-hidden', 'false').find(':first-child').attr('tabindex', 0); + settings.callback(tab); + target.children().attr('tab-index', 0); + target.triggerHandler('toggled', [tab]); + tabs.triggerHandler('toggled', [target]); + + tab_link.on('keydown', interpret_keyup_action ); + }, + + data_attr: function (str) { + if (this.namespace.length > 0) { + return this.namespace + '-' + str; + } + + return str; + }, + + off : function () {}, + + reflow : function () {} + }; +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.tab.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.tab.min.js new file mode 100644 index 000000000..0d093e011 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.tab.min.js @@ -0,0 +1 @@ +!function(t,a,e,n){"use strict";Foundation.libs.tab={name:"tab",version:"5.4.5",settings:{active_class:"active",callback:function(){},deep_linking:!1,scroll_to_content:!0,is_hover:!1},default_tab_hashes:[],init:function(t,a,e){var n=this,i=this.S;this.bindings(a,e),this.handle_location_hash_change(),i("["+this.attr_name()+"] > .active > a",this.scope).each(function(){n.default_tab_hashes.push(this.hash)})},events:function(){var t=this,e=this.S,n=function(a){var n=e(this).closest("["+t.attr_name()+"]").data(t.attr_name(!0)+"-init");(!n.is_hover||Modernizr.touch)&&(a.preventDefault(),a.stopPropagation(),t.toggle_active_tab(e(this).parent()))};e(this.scope).off(".tab").on("focus.fndtn.tab","["+this.attr_name()+"] > * > a",n).on("click.fndtn.tab","["+this.attr_name()+"] > * > a",n).on("mouseenter.fndtn.tab","["+this.attr_name()+"] > * > a",function(){var a=e(this).closest("["+t.attr_name()+"]").data(t.attr_name(!0)+"-init");a.is_hover&&t.toggle_active_tab(e(this).parent())}),e(a).on("hashchange.fndtn.tab",function(a){a.preventDefault(),t.handle_location_hash_change()})},handle_location_hash_change:function(){var a=this,e=this.S;e("["+this.attr_name()+"]",this.scope).each(function(){var i=e(this).data(a.attr_name(!0)+"-init");if(i.deep_linking){var s;if(s=i.scroll_to_content?a.scope.location.hash:a.scope.location.hash.replace("fndtn-",""),""!=s){var r=e(s);if(r.hasClass("content")&&r.parent().hasClass("tab-content"))a.toggle_active_tab(t("["+a.attr_name()+"] > * > a[href="+s+"]").parent());else{var o=r.closest(".content").attr("id");o!=n&&a.toggle_active_tab(t("["+a.attr_name()+"] > * > a[href=#"+o+"]").parent(),s)}}else for(var c in a.default_tab_hashes)a.toggle_active_tab(t("["+a.attr_name()+"] > * > a[href="+a.default_tab_hashes[c]+"]").parent())}})},toggle_active_tab:function(i,s){var r=this.S,o=i.closest("["+this.attr_name()+"]"),c=i.find("a"),l=i.children("a").first(),h="#"+l.attr("href").split("#")[1],d=r(h),_=i.siblings(),f=o.data(this.attr_name(!0)+"-init"),b=function(a){var n,i=t(this),s=t(this).parents("li").prev().children('[role="tab"]'),r=t(this).parents("li").next().children('[role="tab"]');switch(a.keyCode){case 37:n=s;break;case 39:n=r;break;default:n=!1}n.length&&(i.attr({tabindex:"-1","aria-selected":null}),n.attr({tabindex:"0","aria-selected":!0}).focus()),t('[role="tabpanel"]').attr("aria-hidden","true"),t("#"+t(e.activeElement).attr("href").substring(1)).attr("aria-hidden",null)};r(this).data(this.data_attr("tab-content"))&&(h="#"+r(this).data(this.data_attr("tab-content")).split("#")[1],d=r(h)),f.deep_linking&&(f.scroll_to_content?(a.location.hash=s||h,s==n||s==h?i.parent()[0].scrollIntoView():r(h)[0].scrollIntoView()):a.location.hash=s!=n?"fndtn-"+s.replace("#",""):"fndtn-"+h.replace("#","")),i.addClass(f.active_class).triggerHandler("opened"),c.attr({"aria-selected":"true",tabindex:0}),_.removeClass(f.active_class),_.find("a").attr({"aria-selected":"false",tabindex:-1}),d.siblings().removeClass(f.active_class).attr({"aria-hidden":"true",tabindex:-1}).end().addClass(f.active_class).attr("aria-hidden","false").find(":first-child").attr("tabindex",0),f.callback(i),d.children().attr("tab-index",0),d.triggerHandler("toggled",[i]),o.triggerHandler("toggled",[d]),c.on("keydown",b)},data_attr:function(t){return this.namespace.length>0?this.namespace+"-"+t:t},off:function(){},reflow:function(){}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.tooltip.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.tooltip.js new file mode 100644 index 000000000..e2efc58a0 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.tooltip.js @@ -0,0 +1,300 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.tooltip = { + name : 'tooltip', + + version : '5.4.5', + + settings : { + additional_inheritable_classes : [], + tooltip_class : '.tooltip', + append_to: 'body', + touch_close_text: 'Tap To Close', + disable_for_touch: false, + hover_delay: 200, + show_on : 'all', + tip_template : function (selector, content) { + return '' + content + ''; + } + }, + + cache : {}, + + init : function (scope, method, options) { + Foundation.inherit(this, 'random_str'); + this.bindings(method, options); + }, + + should_show: function (target, tip) { + var settings = $.extend({}, this.settings, this.data_options(target)); + + if (settings.show_on === 'all') { + return true; + } else if (this.small() && settings.show_on === 'small') { + return true; + } else if (this.medium() && settings.show_on === 'medium') { + return true; + } else if (this.large() && settings.show_on === 'large') { + return true; + } + return false; + }, + + medium : function () { + return matchMedia(Foundation.media_queries['medium']).matches; + }, + + large : function () { + return matchMedia(Foundation.media_queries['large']).matches; + }, + + events : function (instance) { + var self = this, + S = self.S; + + self.create(this.S(instance)); + + $(this.scope) + .off('.tooltip') + .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', + '[' + this.attr_name() + ']', function (e) { + var $this = S(this), + settings = $.extend({}, self.settings, self.data_options($this)), + is_touch = false; + + if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type) && S(e.target).is('a')) { + return false; + } + + if (/mouse/i.test(e.type) && self.ie_touch(e)) return false; + + if ($this.hasClass('open')) { + if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) e.preventDefault(); + self.hide($this); + } else { + if (settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) { + return; + } else if(!settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) { + e.preventDefault(); + S(settings.tooltip_class + '.open').hide(); + is_touch = true; + } + + if (/enter|over/i.test(e.type)) { + this.timer = setTimeout(function () { + var tip = self.showTip($this); + }.bind(this), self.settings.hover_delay); + } else if (e.type === 'mouseout' || e.type === 'mouseleave') { + clearTimeout(this.timer); + self.hide($this); + } else { + self.showTip($this); + } + } + }) + .on('mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', '[' + this.attr_name() + '].open', function (e) { + if (/mouse/i.test(e.type) && self.ie_touch(e)) return false; + + if($(this).data('tooltip-open-event-type') == 'touch' && e.type == 'mouseleave') { + return; + } + else if($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) { + self.convert_to_touch($(this)); + } else { + self.hide($(this)); + } + }) + .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) { + self.hide(S(this)); + }); + }, + + ie_touch : function (e) { + // How do I distinguish between IE11 and Windows Phone 8????? + return false; + }, + + showTip : function ($target) { + var $tip = this.getTip($target); + if (this.should_show($target, $tip)){ + return this.show($target); + } + return; + }, + + getTip : function ($target) { + var selector = this.selector($target), + settings = $.extend({}, this.settings, this.data_options($target)), + tip = null; + + if (selector) { + tip = this.S('span[data-selector="' + selector + '"]' + settings.tooltip_class); + } + + return (typeof tip === 'object') ? tip : false; + }, + + selector : function ($target) { + var id = $target.attr('id'), + dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector'); + + if ((id && id.length < 1 || !id) && typeof dataSelector != 'string') { + dataSelector = this.random_str(6); + $target + .attr('data-selector', dataSelector) + .attr('aria-describedby', dataSelector); + } + + return (id && id.length > 0) ? id : dataSelector; + }, + + create : function ($target) { + var self = this, + settings = $.extend({}, this.settings, this.data_options($target)), + tip_template = this.settings.tip_template; + + if (typeof settings.tip_template === 'string' && window.hasOwnProperty(settings.tip_template)) { + tip_template = window[settings.tip_template]; + } + + var $tip = $(tip_template(this.selector($target), $('
      ').html($target.attr('title')).html())), + classes = this.inheritable_classes($target); + + $tip.addClass(classes).appendTo(settings.append_to); + + if (Modernizr.touch) { + $tip.append(''+settings.touch_close_text+''); + $tip.on('touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', function(e) { + self.hide($target); + }); + } + + $target.removeAttr('title').attr('title',''); + }, + + reposition : function (target, tip, classes) { + var width, nub, nubHeight, nubWidth, column, objPos; + + tip.css('visibility', 'hidden').show(); + + width = target.data('width'); + nub = tip.children('.nub'); + nubHeight = nub.outerHeight(); + nubWidth = nub.outerHeight(); + + if (this.small()) { + tip.css({'width' : '100%' }); + } else { + tip.css({'width' : (width) ? width : 'auto'}); + } + + objPos = function (obj, top, right, bottom, left, width) { + return obj.css({ + 'top' : (top) ? top : 'auto', + 'bottom' : (bottom) ? bottom : 'auto', + 'left' : (left) ? left : 'auto', + 'right' : (right) ? right : 'auto' + }).end(); + }; + + objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', target.offset().left); + + if (this.small()) { + objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', 12.5, $(this.scope).width()); + tip.addClass('tip-override'); + objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left); + } else { + var left = target.offset().left; + if (Foundation.rtl) { + nub.addClass('rtl'); + left = target.offset().left + target.outerWidth() - tip.outerWidth(); + } + objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', left); + tip.removeClass('tip-override'); + if (classes && classes.indexOf('tip-top') > -1) { + if (Foundation.rtl) nub.addClass('rtl'); + objPos(tip, (target.offset().top - tip.outerHeight()), 'auto', 'auto', left) + .removeClass('tip-override'); + } else if (classes && classes.indexOf('tip-left') > -1) { + objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left - tip.outerWidth() - nubHeight)) + .removeClass('tip-override'); + nub.removeClass('rtl'); + } else if (classes && classes.indexOf('tip-right') > -1) { + objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left + target.outerWidth() + nubHeight)) + .removeClass('tip-override'); + nub.removeClass('rtl'); + } + } + + tip.css('visibility', 'visible').hide(); + }, + + small : function () { + return matchMedia(Foundation.media_queries.small).matches && + !matchMedia(Foundation.media_queries.medium).matches; + }, + + inheritable_classes : function ($target) { + var settings = $.extend({}, this.settings, this.data_options($target)), + inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'radius', 'round'].concat(settings.additional_inheritable_classes), + classes = $target.attr('class'), + filtered = classes ? $.map(classes.split(' '), function (el, i) { + if ($.inArray(el, inheritables) !== -1) { + return el; + } + }).join(' ') : ''; + + return $.trim(filtered); + }, + + convert_to_touch : function($target) { + var self = this, + $tip = self.getTip($target), + settings = $.extend({}, self.settings, self.data_options($target)); + + if ($tip.find('.tap-to-close').length === 0) { + $tip.append(''+settings.touch_close_text+''); + $tip.on('click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose', function(e) { + self.hide($target); + }); + } + + $target.data('tooltip-open-event-type', 'touch'); + }, + + show : function ($target) { + var $tip = this.getTip($target); + + if ($target.data('tooltip-open-event-type') == 'touch') { + this.convert_to_touch($target); + } + + this.reposition($target, $tip, $target.attr('class')); + $target.addClass('open'); + $tip.fadeIn(150); + }, + + hide : function ($target) { + var $tip = this.getTip($target); + + $tip.fadeOut(150, function() { + $tip.find('.tap-to-close').remove(); + $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose'); + $target.removeClass('open'); + }); + }, + + off : function () { + var self = this; + this.S(this.scope).off('.fndtn.tooltip'); + this.S(this.settings.tooltip_class).each(function (i) { + $('[' + self.attr_name() + ']').eq(i).attr('title', $(this).text()); + }).remove(); + }, + + reflow : function () {} + }; +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.tooltip.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.tooltip.min.js new file mode 100644 index 000000000..3bc199a93 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.tooltip.min.js @@ -0,0 +1 @@ +!function(t,e){"use strict";Foundation.libs.tooltip={name:"tooltip",version:"5.4.5",settings:{additional_inheritable_classes:[],tooltip_class:".tooltip",append_to:"body",touch_close_text:"Tap To Close",disable_for_touch:!1,hover_delay:200,show_on:"all",tip_template:function(t,e){return''+e+''}},cache:{},init:function(t,e,o){Foundation.inherit(this,"random_str"),this.bindings(e,o)},should_show:function(e){var o=t.extend({},this.settings,this.data_options(e));return"all"===o.show_on?!0:this.small()&&"small"===o.show_on?!0:this.medium()&&"medium"===o.show_on?!0:this.large()&&"large"===o.show_on?!0:!1},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},events:function(e){var o=this,i=o.S;o.create(this.S(e)),t(this.scope).off(".tooltip").on("mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"]",function(e){var s=i(this),n=t.extend({},o.settings,o.data_options(s)),a=!1;if(Modernizr.touch&&/touchstart|MSPointerDown/i.test(e.type)&&i(e.target).is("a"))return!1;if(/mouse/i.test(e.type)&&o.ie_touch(e))return!1;if(s.hasClass("open"))Modernizr.touch&&/touchstart|MSPointerDown/i.test(e.type)&&e.preventDefault(),o.hide(s);else{if(n.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(e.type))return;!n.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(e.type)&&(e.preventDefault(),i(n.tooltip_class+".open").hide(),a=!0),/enter|over/i.test(e.type)?this.timer=setTimeout(function(){o.showTip(s)}.bind(this),o.settings.hover_delay):"mouseout"===e.type||"mouseleave"===e.type?(clearTimeout(this.timer),o.hide(s)):o.showTip(s)}}).on("mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"].open",function(e){return/mouse/i.test(e.type)&&o.ie_touch(e)?!1:void(("touch"!=t(this).data("tooltip-open-event-type")||"mouseleave"!=e.type)&&("mouse"==t(this).data("tooltip-open-event-type")&&/MSPointerDown|touchstart/i.test(e.type)?o.convert_to_touch(t(this)):o.hide(t(this))))}).on("DOMNodeRemoved DOMAttrModified","["+this.attr_name()+"]:not(a)",function(){o.hide(i(this))})},ie_touch:function(){return!1},showTip:function(t){var e=this.getTip(t);return this.should_show(t,e)?this.show(t):void 0},getTip:function(e){var o=this.selector(e),i=t.extend({},this.settings,this.data_options(e)),s=null;return o&&(s=this.S('span[data-selector="'+o+'"]'+i.tooltip_class)),"object"==typeof s?s:!1},selector:function(t){var e=t.attr("id"),o=t.attr(this.attr_name())||t.attr("data-selector");return(e&&e.length<1||!e)&&"string"!=typeof o&&(o=this.random_str(6),t.attr("data-selector",o).attr("aria-describedby",o)),e&&e.length>0?e:o},create:function(o){var i=this,s=t.extend({},this.settings,this.data_options(o)),n=this.settings.tip_template;"string"==typeof s.tip_template&&e.hasOwnProperty(s.tip_template)&&(n=e[s.tip_template]);var a=t(n(this.selector(o),t("
      ").html(o.attr("title")).html())),r=this.inheritable_classes(o);a.addClass(r).appendTo(s.append_to),Modernizr.touch&&(a.append(''+s.touch_close_text+""),a.on("touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip",function(){i.hide(o)})),o.removeAttr("title").attr("title","")},reposition:function(e,o,i){var s,n,a,r,l;if(o.css("visibility","hidden").show(),s=e.data("width"),n=o.children(".nub"),a=n.outerHeight(),r=n.outerHeight(),o.css(this.small()?{width:"100%"}:{width:s?s:"auto"}),l=function(t,e,o,i,s){return t.css({top:e?e:"auto",bottom:i?i:"auto",left:s?s:"auto",right:o?o:"auto"}).end()},l(o,e.offset().top+e.outerHeight()+10,"auto","auto",e.offset().left),this.small())l(o,e.offset().top+e.outerHeight()+10,"auto","auto",12.5,t(this.scope).width()),o.addClass("tip-override"),l(n,-a,"auto","auto",e.offset().left);else{var h=e.offset().left;Foundation.rtl&&(n.addClass("rtl"),h=e.offset().left+e.outerWidth()-o.outerWidth()),l(o,e.offset().top+e.outerHeight()+10,"auto","auto",h),o.removeClass("tip-override"),i&&i.indexOf("tip-top")>-1?(Foundation.rtl&&n.addClass("rtl"),l(o,e.offset().top-o.outerHeight(),"auto","auto",h).removeClass("tip-override")):i&&i.indexOf("tip-left")>-1?(l(o,e.offset().top+e.outerHeight()/2-o.outerHeight()/2,"auto","auto",e.offset().left-o.outerWidth()-a).removeClass("tip-override"),n.removeClass("rtl")):i&&i.indexOf("tip-right")>-1&&(l(o,e.offset().top+e.outerHeight()/2-o.outerHeight()/2,"auto","auto",e.offset().left+e.outerWidth()+a).removeClass("tip-override"),n.removeClass("rtl"))}o.css("visibility","visible").hide()},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},inheritable_classes:function(e){var o=t.extend({},this.settings,this.data_options(e)),i=["tip-top","tip-left","tip-bottom","tip-right","radius","round"].concat(o.additional_inheritable_classes),s=e.attr("class"),n=s?t.map(s.split(" "),function(e){return-1!==t.inArray(e,i)?e:void 0}).join(" "):"";return t.trim(n)},convert_to_touch:function(e){var o=this,i=o.getTip(e),s=t.extend({},o.settings,o.data_options(e));0===i.find(".tap-to-close").length&&(i.append(''+s.touch_close_text+""),i.on("click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose",function(){o.hide(e)})),e.data("tooltip-open-event-type","touch")},show:function(t){var e=this.getTip(t);"touch"==t.data("tooltip-open-event-type")&&this.convert_to_touch(t),this.reposition(t,e,t.attr("class")),t.addClass("open"),e.fadeIn(150)},hide:function(t){var e=this.getTip(t);e.fadeOut(150,function(){e.find(".tap-to-close").remove(),e.off("click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose"),t.removeClass("open")})},off:function(){var e=this;this.S(this.scope).off(".fndtn.tooltip"),this.S(this.settings.tooltip_class).each(function(o){t("["+e.attr_name()+"]").eq(o).attr("title",t(this).text())}).remove()},reflow:function(){}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.topbar.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.topbar.js new file mode 100644 index 000000000..b6a2ac899 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.topbar.js @@ -0,0 +1,445 @@ +;(function ($, window, document, undefined) { + 'use strict'; + + Foundation.libs.topbar = { + name : 'topbar', + + version: '5.4.5', + + settings : { + index : 0, + sticky_class : 'sticky', + custom_back_text: true, + back_text: 'Back', + mobile_show_parent_link: true, + is_hover: true, + scrolltop : true, // jump to top when sticky nav menu toggle is clicked + sticky_on : 'all' + }, + + init : function (section, method, options) { + Foundation.inherit(this, 'add_custom_rule register_media throttle'); + var self = this; + + self.register_media('topbar', 'foundation-mq-topbar'); + + this.bindings(method, options); + + self.S('[' + this.attr_name() + ']', this.scope).each(function () { + var topbar = $(this), + settings = topbar.data(self.attr_name(true) + '-init'), + section = self.S('section, .top-bar-section', this); + topbar.data('index', 0); + var topbarContainer = topbar.parent(); + if (topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) { + self.settings.sticky_class = settings.sticky_class; + self.settings.sticky_topbar = topbar; + topbar.data('height', topbarContainer.outerHeight()); + topbar.data('stickyoffset', topbarContainer.offset().top); + } else { + topbar.data('height', topbar.outerHeight()); + } + + if (!settings.assembled) { + self.assemble(topbar); + } + + if (settings.is_hover) { + self.S('.has-dropdown', topbar).addClass('not-click'); + } else { + self.S('.has-dropdown', topbar).removeClass('not-click'); + } + + // Pad body when sticky (scrolled) or fixed. + self.add_custom_rule('.f-topbar-fixed { padding-top: ' + topbar.data('height') + 'px }'); + + if (topbarContainer.hasClass('fixed')) { + self.S('body').addClass('f-topbar-fixed'); + } + }); + + }, + + is_sticky: function (topbar, topbarContainer, settings) { + var sticky = topbarContainer.hasClass(settings.sticky_class); + + if (sticky && settings.sticky_on === 'all') { + return true; + } else if (sticky && this.small() && settings.sticky_on === 'small') { + return (matchMedia(Foundation.media_queries.small).matches && !matchMedia(Foundation.media_queries.medium).matches && + !matchMedia(Foundation.media_queries.large).matches); + //return true; + } else if (sticky && this.medium() && settings.sticky_on === 'medium') { + return (matchMedia(Foundation.media_queries.small).matches && matchMedia(Foundation.media_queries.medium).matches && + !matchMedia(Foundation.media_queries.large).matches); + //return true; + } else if(sticky && this.large() && settings.sticky_on === 'large') { + return (matchMedia(Foundation.media_queries.small).matches && matchMedia(Foundation.media_queries.medium).matches && + matchMedia(Foundation.media_queries.large).matches); + //return true; + } + + return false; + }, + + toggle: function (toggleEl) { + var self = this, + topbar; + + if (toggleEl) { + topbar = self.S(toggleEl).closest('[' + this.attr_name() + ']'); + } else { + topbar = self.S('[' + this.attr_name() + ']'); + } + + var settings = topbar.data(this.attr_name(true) + '-init'); + + var section = self.S('section, .top-bar-section', topbar); + + if (self.breakpoint()) { + if (!self.rtl) { + section.css({left: '0%'}); + $('>.name', section).css({left: '100%'}); + } else { + section.css({right: '0%'}); + $('>.name', section).css({right: '100%'}); + } + + self.S('li.moved', section).removeClass('moved'); + topbar.data('index', 0); + + topbar + .toggleClass('expanded') + .css('height', ''); + } + + if (settings.scrolltop) { + if (!topbar.hasClass('expanded')) { + if (topbar.hasClass('fixed')) { + topbar.parent().addClass('fixed'); + topbar.removeClass('fixed'); + self.S('body').addClass('f-topbar-fixed'); + } + } else if (topbar.parent().hasClass('fixed')) { + if (settings.scrolltop) { + topbar.parent().removeClass('fixed'); + topbar.addClass('fixed'); + self.S('body').removeClass('f-topbar-fixed'); + + window.scrollTo(0,0); + } else { + topbar.parent().removeClass('expanded'); + } + } + } else { + if (self.is_sticky(topbar, topbar.parent(), settings)) { + topbar.parent().addClass('fixed'); + } + + if (topbar.parent().hasClass('fixed')) { + if (!topbar.hasClass('expanded')) { + topbar.removeClass('fixed'); + topbar.parent().removeClass('expanded'); + self.update_sticky_positioning(); + } else { + topbar.addClass('fixed'); + topbar.parent().addClass('expanded'); + self.S('body').addClass('f-topbar-fixed'); + } + } + } + }, + + timer : null, + + events : function (bar) { + var self = this, + S = this.S; + + S(this.scope) + .off('.topbar') + .on('click.fndtn.topbar', '[' + this.attr_name() + '] .toggle-topbar', function (e) { + e.preventDefault(); + self.toggle(this); + }) + .on('click.fndtn.topbar','.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]',function (e) { + var li = $(this).closest('li'); + if(self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) + { + self.toggle(); + } + }) + .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) { + var li = S(this), + target = S(e.target), + topbar = li.closest('[' + self.attr_name() + ']'), + settings = topbar.data(self.attr_name(true) + '-init'); + + if(target.data('revealId')) { + self.toggle(); + return; + } + + if (self.breakpoint()) return; + if (settings.is_hover && !Modernizr.touch) return; + + e.stopImmediatePropagation(); + + if (li.hasClass('hover')) { + li + .removeClass('hover') + .find('li') + .removeClass('hover'); + + li.parents('li.hover') + .removeClass('hover'); + } else { + li.addClass('hover'); + + $(li).siblings().removeClass('hover'); + + if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) { + e.preventDefault(); + } + } + }) + .on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown>a', function (e) { + if (self.breakpoint()) { + + e.preventDefault(); + + var $this = S(this), + topbar = $this.closest('[' + self.attr_name() + ']'), + section = topbar.find('section, .top-bar-section'), + dropdownHeight = $this.next('.dropdown').outerHeight(), + $selectedLi = $this.closest('li'); + + topbar.data('index', topbar.data('index') + 1); + $selectedLi.addClass('moved'); + + if (!self.rtl) { + section.css({left: -(100 * topbar.data('index')) + '%'}); + section.find('>.name').css({left: 100 * topbar.data('index') + '%'}); + } else { + section.css({right: -(100 * topbar.data('index')) + '%'}); + section.find('>.name').css({right: 100 * topbar.data('index') + '%'}); + } + + topbar.css('height', $this.siblings('ul').outerHeight(true) + topbar.data('height')); + } + }); + + S(window).off(".topbar").on("resize.fndtn.topbar", self.throttle(function() { + self.resize.call(self); + }, 50)).trigger("resize").trigger("resize.fndtn.topbar").load(function(){ + // Ensure that the offset is calculated after all of the pages resources have loaded + S(this).trigger("resize.fndtn.topbar"); + }); + + S('body').off('.topbar').on('click.fndtn.topbar', function (e) { + var parent = S(e.target).closest('li').closest('li.hover'); + + if (parent.length > 0) { + return; + } + + S('[' + self.attr_name() + '] li.hover').removeClass('hover'); + }); + + // Go up a level on Click + S(this.scope).on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown .back', function (e) { + e.preventDefault(); + + var $this = S(this), + topbar = $this.closest('[' + self.attr_name() + ']'), + section = topbar.find('section, .top-bar-section'), + settings = topbar.data(self.attr_name(true) + '-init'), + $movedLi = $this.closest('li.moved'), + $previousLevelUl = $movedLi.parent(); + + topbar.data('index', topbar.data('index') - 1); + + if (!self.rtl) { + section.css({left: -(100 * topbar.data('index')) + '%'}); + section.find('>.name').css({left: 100 * topbar.data('index') + '%'}); + } else { + section.css({right: -(100 * topbar.data('index')) + '%'}); + section.find('>.name').css({right: 100 * topbar.data('index') + '%'}); + } + + if (topbar.data('index') === 0) { + topbar.css('height', ''); + } else { + topbar.css('height', $previousLevelUl.outerHeight(true) + topbar.data('height')); + } + + setTimeout(function () { + $movedLi.removeClass('moved'); + }, 300); + }); + + // Show dropdown menus when their items are focused + S(this.scope).find('.dropdown a') + .focus(function() { + $(this).parents('.has-dropdown').addClass('hover'); + }) + .blur(function() { + $(this).parents('.has-dropdown').removeClass('hover'); + }); + }, + + resize : function () { + var self = this; + self.S('[' + this.attr_name() + ']').each(function () { + var topbar = self.S(this), + settings = topbar.data(self.attr_name(true) + '-init'); + + var stickyContainer = topbar.parent('.' + self.settings.sticky_class); + var stickyOffset; + + if (!self.breakpoint()) { + var doToggle = topbar.hasClass('expanded'); + topbar + .css('height', '') + .removeClass('expanded') + .find('li') + .removeClass('hover'); + + if(doToggle) { + self.toggle(topbar); + } + } + + if(self.is_sticky(topbar, stickyContainer, settings)) { + if(stickyContainer.hasClass('fixed')) { + // Remove the fixed to allow for correct calculation of the offset. + stickyContainer.removeClass('fixed'); + + stickyOffset = stickyContainer.offset().top; + if(self.S(document.body).hasClass('f-topbar-fixed')) { + stickyOffset -= topbar.data('height'); + } + + topbar.data('stickyoffset', stickyOffset); + stickyContainer.addClass('fixed'); + } else { + stickyOffset = stickyContainer.offset().top; + topbar.data('stickyoffset', stickyOffset); + } + } + + }); + }, + + breakpoint : function () { + return !matchMedia(Foundation.media_queries['topbar']).matches; + }, + + small : function () { + return matchMedia(Foundation.media_queries['small']).matches; + }, + + medium : function () { + return matchMedia(Foundation.media_queries['medium']).matches; + }, + + large : function () { + return matchMedia(Foundation.media_queries['large']).matches; + }, + + assemble : function (topbar) { + var self = this, + settings = topbar.data(this.attr_name(true) + '-init'), + section = self.S('section, .top-bar-section', topbar); + + // Pull element out of the DOM for manipulation + section.detach(); + + self.S('.has-dropdown>a', section).each(function () { + var $link = self.S(this), + $dropdown = $link.siblings('.dropdown'), + url = $link.attr('href'), + $titleLi; + + + if (!$dropdown.find('.title.back').length) { + + if (settings.mobile_show_parent_link == true && url) { + $titleLi = $('
    2. '); + } else { + $titleLi = $('
    3. '); + } + + // Copy link to subnav + if (settings.custom_back_text == true) { + $('h5>a', $titleLi).html(settings.back_text); + } else { + $('h5>a', $titleLi).html('« ' + $link.html()); + } + $dropdown.prepend($titleLi); + } + }); + + // Put element back in the DOM + section.appendTo(topbar); + + // check for sticky + this.sticky(); + + this.assembled(topbar); + }, + + assembled : function (topbar) { + topbar.data(this.attr_name(true), $.extend({}, topbar.data(this.attr_name(true)), {assembled: true})); + }, + + height : function (ul) { + var total = 0, + self = this; + + $('> li', ul).each(function () { + total += self.S(this).outerHeight(true); + }); + + return total; + }, + + sticky : function () { + var self = this; + + this.S(window).on('scroll', function() { + self.update_sticky_positioning(); + }); + }, + + update_sticky_positioning: function() { + var klass = '.' + this.settings.sticky_class, + $window = this.S(window), + self = this; + + if (self.settings.sticky_topbar && self.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(), this.settings)) { + var distance = this.settings.sticky_topbar.data('stickyoffset'); + if (!self.S(klass).hasClass('expanded')) { + if ($window.scrollTop() > (distance)) { + if (!self.S(klass).hasClass('fixed')) { + self.S(klass).addClass('fixed'); + self.S('body').addClass('f-topbar-fixed'); + } + } else if ($window.scrollTop() <= distance) { + if (self.S(klass).hasClass('fixed')) { + self.S(klass).removeClass('fixed'); + self.S('body').removeClass('f-topbar-fixed'); + } + } + } + } + }, + + off : function () { + this.S(this.scope).off('.fndtn.topbar'); + this.S(window).off('.fndtn.topbar'); + }, + + reflow : function () {} + }; +}(jQuery, window, window.document)); diff --git a/ajax/libs/foundation/5.4.5/js/foundation/foundation.topbar.min.js b/ajax/libs/foundation/5.4.5/js/foundation/foundation.topbar.min.js new file mode 100644 index 000000000..fe2599f02 --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/foundation/foundation.topbar.min.js @@ -0,0 +1 @@ +!function(t,a,e){"use strict";Foundation.libs.topbar={name:"topbar",version:"5.4.5",settings:{index:0,sticky_class:"sticky",custom_back_text:!0,back_text:"Back",mobile_show_parent_link:!0,is_hover:!0,scrolltop:!0,sticky_on:"all"},init:function(a,e,s){Foundation.inherit(this,"add_custom_rule register_media throttle");var i=this;i.register_media("topbar","foundation-mq-topbar"),this.bindings(e,s),i.S("["+this.attr_name()+"]",this.scope).each(function(){{var a=t(this),e=a.data(i.attr_name(!0)+"-init");i.S("section, .top-bar-section",this)}a.data("index",0);var s=a.parent();s.hasClass("fixed")||i.is_sticky(a,s,e)?(i.settings.sticky_class=e.sticky_class,i.settings.sticky_topbar=a,a.data("height",s.outerHeight()),a.data("stickyoffset",s.offset().top)):a.data("height",a.outerHeight()),e.assembled||i.assemble(a),e.is_hover?i.S(".has-dropdown",a).addClass("not-click"):i.S(".has-dropdown",a).removeClass("not-click"),i.add_custom_rule(".f-topbar-fixed { padding-top: "+a.data("height")+"px }"),s.hasClass("fixed")&&i.S("body").addClass("f-topbar-fixed")})},is_sticky:function(t,a,e){var s=a.hasClass(e.sticky_class);return s&&"all"===e.sticky_on?!0:s&&this.small()&&"small"===e.sticky_on?matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches&&!matchMedia(Foundation.media_queries.large).matches:s&&this.medium()&&"medium"===e.sticky_on?matchMedia(Foundation.media_queries.small).matches&&matchMedia(Foundation.media_queries.medium).matches&&!matchMedia(Foundation.media_queries.large).matches:s&&this.large()&&"large"===e.sticky_on?matchMedia(Foundation.media_queries.small).matches&&matchMedia(Foundation.media_queries.medium).matches&&matchMedia(Foundation.media_queries.large).matches:!1},toggle:function(e){var s,i=this;s=e?i.S(e).closest("["+this.attr_name()+"]"):i.S("["+this.attr_name()+"]");var n=s.data(this.attr_name(!0)+"-init"),o=i.S("section, .top-bar-section",s);i.breakpoint()&&(i.rtl?(o.css({right:"0%"}),t(">.name",o).css({right:"100%"})):(o.css({left:"0%"}),t(">.name",o).css({left:"100%"})),i.S("li.moved",o).removeClass("moved"),s.data("index",0),s.toggleClass("expanded").css("height","")),n.scrolltop?s.hasClass("expanded")?s.parent().hasClass("fixed")&&(n.scrolltop?(s.parent().removeClass("fixed"),s.addClass("fixed"),i.S("body").removeClass("f-topbar-fixed"),a.scrollTo(0,0)):s.parent().removeClass("expanded")):s.hasClass("fixed")&&(s.parent().addClass("fixed"),s.removeClass("fixed"),i.S("body").addClass("f-topbar-fixed")):(i.is_sticky(s,s.parent(),n)&&s.parent().addClass("fixed"),s.parent().hasClass("fixed")&&(s.hasClass("expanded")?(s.addClass("fixed"),s.parent().addClass("expanded"),i.S("body").addClass("f-topbar-fixed")):(s.removeClass("fixed"),s.parent().removeClass("expanded"),i.update_sticky_positioning())))},timer:null,events:function(){var e=this,s=this.S;s(this.scope).off(".topbar").on("click.fndtn.topbar","["+this.attr_name()+"] .toggle-topbar",function(t){t.preventDefault(),e.toggle(this)}).on("click.fndtn.topbar",'.top-bar .top-bar-section li a[href^="#"],['+this.attr_name()+'] .top-bar-section li a[href^="#"]',function(){var a=t(this).closest("li");!e.breakpoint()||a.hasClass("back")||a.hasClass("has-dropdown")||e.toggle()}).on("click.fndtn.topbar","["+this.attr_name()+"] li.has-dropdown",function(a){var i=s(this),n=s(a.target),o=i.closest("["+e.attr_name()+"]"),d=o.data(e.attr_name(!0)+"-init");return n.data("revealId")?void e.toggle():void(e.breakpoint()||(!d.is_hover||Modernizr.touch)&&(a.stopImmediatePropagation(),i.hasClass("hover")?(i.removeClass("hover").find("li").removeClass("hover"),i.parents("li.hover").removeClass("hover")):(i.addClass("hover"),t(i).siblings().removeClass("hover"),"A"===n[0].nodeName&&n.parent().hasClass("has-dropdown")&&a.preventDefault())))}).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown>a",function(t){if(e.breakpoint()){t.preventDefault();var a=s(this),i=a.closest("["+e.attr_name()+"]"),n=i.find("section, .top-bar-section"),o=(a.next(".dropdown").outerHeight(),a.closest("li"));i.data("index",i.data("index")+1),o.addClass("moved"),e.rtl?(n.css({right:-(100*i.data("index"))+"%"}),n.find(">.name").css({right:100*i.data("index")+"%"})):(n.css({left:-(100*i.data("index"))+"%"}),n.find(">.name").css({left:100*i.data("index")+"%"})),i.css("height",a.siblings("ul").outerHeight(!0)+i.data("height"))}}),s(a).off(".topbar").on("resize.fndtn.topbar",e.throttle(function(){e.resize.call(e)},50)).trigger("resize").trigger("resize.fndtn.topbar").load(function(){s(this).trigger("resize.fndtn.topbar")}),s("body").off(".topbar").on("click.fndtn.topbar",function(t){var a=s(t.target).closest("li").closest("li.hover");a.length>0||s("["+e.attr_name()+"] li.hover").removeClass("hover")}),s(this.scope).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown .back",function(t){t.preventDefault();var a=s(this),i=a.closest("["+e.attr_name()+"]"),n=i.find("section, .top-bar-section"),o=(i.data(e.attr_name(!0)+"-init"),a.closest("li.moved")),d=o.parent();i.data("index",i.data("index")-1),e.rtl?(n.css({right:-(100*i.data("index"))+"%"}),n.find(">.name").css({right:100*i.data("index")+"%"})):(n.css({left:-(100*i.data("index"))+"%"}),n.find(">.name").css({left:100*i.data("index")+"%"})),0===i.data("index")?i.css("height",""):i.css("height",d.outerHeight(!0)+i.data("height")),setTimeout(function(){o.removeClass("moved")},300)}),s(this.scope).find(".dropdown a").focus(function(){t(this).parents(".has-dropdown").addClass("hover")}).blur(function(){t(this).parents(".has-dropdown").removeClass("hover")})},resize:function(){var t=this;t.S("["+this.attr_name()+"]").each(function(){var a,s=t.S(this),i=s.data(t.attr_name(!0)+"-init"),n=s.parent("."+t.settings.sticky_class);if(!t.breakpoint()){var o=s.hasClass("expanded");s.css("height","").removeClass("expanded").find("li").removeClass("hover"),o&&t.toggle(s)}t.is_sticky(s,n,i)&&(n.hasClass("fixed")?(n.removeClass("fixed"),a=n.offset().top,t.S(e.body).hasClass("f-topbar-fixed")&&(a-=s.data("height")),s.data("stickyoffset",a),n.addClass("fixed")):(a=n.offset().top,s.data("stickyoffset",a)))})},breakpoint:function(){return!matchMedia(Foundation.media_queries.topbar).matches},small:function(){return matchMedia(Foundation.media_queries.small).matches},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},assemble:function(a){var e=this,s=a.data(this.attr_name(!0)+"-init"),i=e.S("section, .top-bar-section",a);i.detach(),e.S(".has-dropdown>a",i).each(function(){var a,i=e.S(this),n=i.siblings(".dropdown"),o=i.attr("href");n.find(".title.back").length||(a=t(1==s.mobile_show_parent_link&&o?'
    4. ":'
    5. '),t("h5>a",a).html(1==s.custom_back_text?s.back_text:"« "+i.html()),n.prepend(a))}),i.appendTo(a),this.sticky(),this.assembled(a)},assembled:function(a){a.data(this.attr_name(!0),t.extend({},a.data(this.attr_name(!0)),{assembled:!0}))},height:function(a){var e=0,s=this;return t("> li",a).each(function(){e+=s.S(this).outerHeight(!0)}),e},sticky:function(){var t=this;this.S(a).on("scroll",function(){t.update_sticky_positioning()})},update_sticky_positioning:function(){var t="."+this.settings.sticky_class,e=this.S(a),s=this;if(s.settings.sticky_topbar&&s.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(),this.settings)){var i=this.settings.sticky_topbar.data("stickyoffset");s.S(t).hasClass("expanded")||(e.scrollTop()>i?s.S(t).hasClass("fixed")||(s.S(t).addClass("fixed"),s.S("body").addClass("f-topbar-fixed")):e.scrollTop()<=i&&s.S(t).hasClass("fixed")&&(s.S(t).removeClass("fixed"),s.S("body").removeClass("f-topbar-fixed")))}},off:function(){this.S(this.scope).off(".fndtn.topbar"),this.S(a).off(".fndtn.topbar")},reflow:function(){}}}(jQuery,window,window.document); \ No newline at end of file diff --git a/ajax/libs/foundation/5.4.5/js/vendor/fastclick.js b/ajax/libs/foundation/5.4.5/js/vendor/fastclick.js new file mode 100644 index 000000000..e8e03925c --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/vendor/fastclick.js @@ -0,0 +1,9 @@ +/** + * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs. + * + * @version 1.0.3 + * @codingstandard ftlabs-jsv2 + * @copyright The Financial Times Limited [All Rights Reserved] + * @license MIT License (see LICENSE.txt) + */ +function FastClick(a,b){"use strict";function c(a,b){return function(){return a.apply(b,arguments)}}var d;if(b=b||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=b.touchBoundary||10,this.layer=a,this.tapDelay=b.tapDelay||200,!FastClick.notNeeded(a)){for(var e=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],f=this,g=0,h=e.length;h>g;g++)f[e[g]]=c(f[e[g]],f);deviceIsAndroid&&(a.addEventListener("mouseover",this.onMouse,!0),a.addEventListener("mousedown",this.onMouse,!0),a.addEventListener("mouseup",this.onMouse,!0)),a.addEventListener("click",this.onClick,!0),a.addEventListener("touchstart",this.onTouchStart,!1),a.addEventListener("touchmove",this.onTouchMove,!1),a.addEventListener("touchend",this.onTouchEnd,!1),a.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(a.removeEventListener=function(b,c,d){var e=Node.prototype.removeEventListener;"click"===b?e.call(a,b,c.hijacked||c,d):e.call(a,b,c,d)},a.addEventListener=function(b,c,d){var e=Node.prototype.addEventListener;"click"===b?e.call(a,b,c.hijacked||(c.hijacked=function(a){a.propagationStopped||c(a)}),d):e.call(a,b,c,d)}),"function"==typeof a.onclick&&(d=a.onclick,a.addEventListener("click",function(a){d(a)},!1),a.onclick=null)}}var deviceIsAndroid=navigator.userAgent.indexOf("Android")>0,deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent),deviceIsIOS4=deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent),deviceIsIOSWithBadTarget=deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent),deviceIsBlackBerry10=navigator.userAgent.indexOf("BB10")>0;FastClick.prototype.needsClick=function(a){"use strict";switch(a.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(a.disabled)return!0;break;case"input":if(deviceIsIOS&&"file"===a.type||a.disabled)return!0;break;case"label":case"video":return!0}return/\bneedsclick\b/.test(a.className)},FastClick.prototype.needsFocus=function(a){"use strict";switch(a.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!deviceIsAndroid;case"input":switch(a.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!a.disabled&&!a.readOnly;default:return/\bneedsfocus\b/.test(a.className)}},FastClick.prototype.sendClick=function(a,b){"use strict";var c,d;document.activeElement&&document.activeElement!==a&&document.activeElement.blur(),d=b.changedTouches[0],c=document.createEvent("MouseEvents"),c.initMouseEvent(this.determineEventType(a),!0,!0,window,1,d.screenX,d.screenY,d.clientX,d.clientY,!1,!1,!1,!1,0,null),c.forwardedTouchEvent=!0,a.dispatchEvent(c)},FastClick.prototype.determineEventType=function(a){"use strict";return deviceIsAndroid&&"select"===a.tagName.toLowerCase()?"mousedown":"click"},FastClick.prototype.focus=function(a){"use strict";var b;deviceIsIOS&&a.setSelectionRange&&0!==a.type.indexOf("date")&&"time"!==a.type?(b=a.value.length,a.setSelectionRange(b,b)):a.focus()},FastClick.prototype.updateScrollParent=function(a){"use strict";var b,c;if(b=a.fastClickScrollParent,!b||!b.contains(a)){c=a;do{if(c.scrollHeight>c.offsetHeight){b=c,a.fastClickScrollParent=c;break}c=c.parentElement}while(c)}b&&(b.fastClickLastScrollTop=b.scrollTop)},FastClick.prototype.getTargetElementFromEventTarget=function(a){"use strict";return a.nodeType===Node.TEXT_NODE?a.parentNode:a},FastClick.prototype.onTouchStart=function(a){"use strict";var b,c,d;if(a.targetTouches.length>1)return!0;if(b=this.getTargetElementFromEventTarget(a.target),c=a.targetTouches[0],deviceIsIOS){if(d=window.getSelection(),d.rangeCount&&!d.isCollapsed)return!0;if(!deviceIsIOS4){if(c.identifier&&c.identifier===this.lastTouchIdentifier)return a.preventDefault(),!1;this.lastTouchIdentifier=c.identifier,this.updateScrollParent(b)}}return this.trackingClick=!0,this.trackingClickStart=a.timeStamp,this.targetElement=b,this.touchStartX=c.pageX,this.touchStartY=c.pageY,a.timeStamp-this.lastClickTimec||Math.abs(b.pageY-this.touchStartY)>c?!0:!1},FastClick.prototype.onTouchMove=function(a){"use strict";return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(a.target)||this.touchHasMoved(a))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},FastClick.prototype.findControl=function(a){"use strict";return void 0!==a.control?a.control:a.htmlFor?document.getElementById(a.htmlFor):a.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},FastClick.prototype.onTouchEnd=function(a){"use strict";var b,c,d,e,f,g=this.targetElement;if(!this.trackingClick)return!0;if(a.timeStamp-this.lastClickTime100||deviceIsIOS&&window.top!==window&&"input"===d?(this.targetElement=null,!1):(this.focus(g),this.sendClick(g,a),deviceIsIOS&&"select"===d||(this.targetElement=null,a.preventDefault()),!1);return deviceIsIOS&&!deviceIsIOS4&&(e=g.fastClickScrollParent,e&&e.fastClickLastScrollTop!==e.scrollTop)?!0:(this.needsClick(g)||(a.preventDefault(),this.sendClick(g,a)),!1)},FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=!1,this.targetElement=null},FastClick.prototype.onMouse=function(a){"use strict";return this.targetElement?a.forwardedTouchEvent?!0:a.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(a.stopImmediatePropagation?a.stopImmediatePropagation():a.propagationStopped=!0,a.stopPropagation(),a.preventDefault(),!1):!0:!0},FastClick.prototype.onClick=function(a){"use strict";var b;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===a.target.type&&0===a.detail?!0:(b=this.onMouse(a),b||(this.targetElement=null),b)},FastClick.prototype.destroy=function(){"use strict";var a=this.layer;deviceIsAndroid&&(a.removeEventListener("mouseover",this.onMouse,!0),a.removeEventListener("mousedown",this.onMouse,!0),a.removeEventListener("mouseup",this.onMouse,!0)),a.removeEventListener("click",this.onClick,!0),a.removeEventListener("touchstart",this.onTouchStart,!1),a.removeEventListener("touchmove",this.onTouchMove,!1),a.removeEventListener("touchend",this.onTouchEnd,!1),a.removeEventListener("touchcancel",this.onTouchCancel,!1)},FastClick.notNeeded=function(a){"use strict";var b,c,d;if("undefined"==typeof window.ontouchstart)return!0;if(c=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!deviceIsAndroid)return!0;if(b=document.querySelector("meta[name=viewport]")){if(-1!==b.content.indexOf("user-scalable=no"))return!0;if(c>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(deviceIsBlackBerry10&&(d=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),d[1]>=10&&d[2]>=3&&(b=document.querySelector("meta[name=viewport]")))){if(-1!==b.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===a.style.msTouchAction?!0:!1},FastClick.attach=function(a,b){"use strict";return new FastClick(a,b)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){"use strict";return FastClick}):"undefined"!=typeof module&&module.exports?(module.exports=FastClick.attach,module.exports.FastClick=FastClick):window.FastClick=FastClick; diff --git a/ajax/libs/foundation/5.4.5/js/vendor/jquery.cookie.js b/ajax/libs/foundation/5.4.5/js/vendor/jquery.cookie.js new file mode 100644 index 000000000..9abcdeced --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/vendor/jquery.cookie.js @@ -0,0 +1,8 @@ +/*! + * jQuery Cookie Plugin v1.4.1 + * https://github.com/carhartl/jquery-cookie + * + * Copyright 2013 Klaus Hartl + * Released under the MIT license + */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}); diff --git a/ajax/libs/foundation/5.4.5/js/vendor/jquery.js b/ajax/libs/foundation/5.4.5/js/vendor/jquery.js new file mode 100644 index 000000000..05fb1ec2b --- /dev/null +++ b/ajax/libs/foundation/5.4.5/js/vendor/jquery.js @@ -0,0 +1,26 @@ +/*! + * jQuery JavaScript Library v2.1.1 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-05-01T17:11Z + */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b=a.length,c=_.type(a);return"function"===c||_.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(hb.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=ob[a]={};return _.each(a.match(nb)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+Math.random()}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ub,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:tb.test(c)?_.parseJSON(c):c}catch(e){}sb.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,"table")&&_.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Kb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)rb.set(a[c],"globalEval",!b||rb.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(rb.hasData(a)&&(f=rb.access(a),g=rb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sb.hasData(a)&&(h=sb.access(a),i=_.extend({},h),sb.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&yb.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],"display");return e.detach(),f}function u(a){var b=Z,c=Ob[a];return c||(c=t(a,b),"none"!==c&&c||(Nb=(Nb||_("