Browse Source

updated gulp and bower files

Bachir Soussi Chiadmi 7 years ago
parent
commit
bf5f1a63ff
100 changed files with 13284 additions and 2915 deletions
  1. 8 10
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/.bower.json
  2. 3 2
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/LICENSE
  3. 46 0
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/README.md
  4. 2 4
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/bower.json
  5. 207 209
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/foundation.css
  6. 0 0
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/foundation.css.map
  7. 0 0
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/foundation.min.css
  8. 9 12
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/normalize.css
  9. 0 0
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/normalize.css.map
  10. 0 0
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/normalize.min.css
  11. 84 51
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation.js
  12. 0 0
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation.min.js
  13. 10 6
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.abide.js
  14. 65 7
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.accordion.js
  15. 3 3
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.alert.js
  16. 54 24
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.clearing.js
  17. 39 19
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.dropdown.js
  18. 43 16
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.equalizer.js
  19. 21 15
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.interchange.js
  20. 53 50
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.joyride.js
  21. 74 45
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.js
  22. 39 28
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.magellan.js
  23. 77 4
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.offcanvas.js
  24. 1 1
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.orbit.js
  25. 106 55
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.reveal.js
  26. 40 7
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.slider.js
  27. 39 29
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.tab.js
  28. 69 28
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.tooltip.js
  29. 34 28
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.topbar.js
  30. 2 2
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/vendor/jquery.js
  31. 0 0
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/vendor/modernizr.js
  32. 57 0
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/package.json
  33. 37 40
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation.scss
  34. 52 42
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/_functions.scss
  35. 59 37
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/_settings.scss
  36. 12 8
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_accordion.scss
  37. 11 11
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_alert-boxes.scss
  38. 13 13
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_block-grid.scss
  39. 19 19
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_breadcrumbs.scss
  40. 30 22
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_button-groups.scss
  41. 29 28
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_buttons.scss
  42. 51 47
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_clearing.scss
  43. 10 11
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_dropdown-buttons.scss
  44. 45 38
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_dropdown.scss
  45. 7 7
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_flex-video.scss
  46. 87 57
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_forms.scss
  47. 151 65
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_global.scss
  48. 39 36
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_grid.scss
  49. 335 234
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_icon-bar.scss
  50. 9 8
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_inline-lists.scss
  51. 40 42
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_joyride.scss
  52. 2 3
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_keystrokes.scss
  53. 6 6
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_labels.scss
  54. 2 2
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_magellan.scss
  55. 259 168
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_offcanvas.scss
  56. 82 62
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_orbit.scss
  57. 16 15
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_pagination.scss
  58. 21 15
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_panels.scss
  59. 16 16
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_pricing-tables.scss
  60. 10 4
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_progress-bars.scss
  61. 25 18
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_range-slider.scss
  62. 30 27
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_reveal.scss
  63. 15 11
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_side-nav.scss
  64. 16 16
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_split-buttons.scss
  65. 14 11
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_sub-nav.scss
  66. 22 19
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_switches.scss
  67. 8 8
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_tables.scss
  68. 50 33
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_tabs.scss
  69. 8 8
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_thumbs.scss
  70. 0 72
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_toolbar.scss
  71. 25 25
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_tooltips.scss
  72. 170 121
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_top-bar.scss
  73. 92 31
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_type.scss
  74. 22 71
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_visibility.scss
  75. 8 11
      sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/normalize.scss
  76. 6 7
      sites/all/themes/gui/materiobasetheme/bower_components/jquery.lazyload/.bower.json
  77. 4 4
      sites/all/themes/gui/materiobasetheme/bower_components/jquery.lazyload/README.md
  78. 2 2
      sites/all/themes/gui/materiobasetheme/bower_components/jquery.lazyload/jquery.lazyload.js
  79. 8 20
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/.bower.json
  80. 301 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/AUTHORS.txt
  81. 36 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/LICENSE.txt
  82. 67 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/README.md
  83. 2 15
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/bower.json
  84. 476 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/core.js
  85. 405 293
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.js
  86. 0 1
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.min.js
  87. 0 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.min.map
  88. 8160 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.slim.js
  89. 1 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.slim.min.js
  90. 0 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.slim.min.map
  91. 36 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/external/sizzle/LICENSE.txt
  92. 401 219
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/external/sizzle/dist/sizzle.js
  93. 1 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/external/sizzle/dist/sizzle.min.js
  94. 0 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/external/sizzle/dist/sizzle.min.map
  95. 5 0
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/.eslintrc.json
  96. 174 105
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/ajax.js
  97. 27 14
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/ajax/jsonp.js
  98. 24 23
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/ajax/load.js
  99. 0 13
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/ajax/parseJSON.js
  100. 8 6
      sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/ajax/parseXML.js

+ 8 - 10
sites/all/themes/gui/materiobasetheme/bower_components/foundation/.bower.json

@@ -1,15 +1,13 @@
 {
 {
   "name": "foundation",
   "name": "foundation",
-  "version": "5.5.1",
   "main": [
   "main": [
-    "css/foundation.css",
-    "css/foundation.css.map",
+    "scss/foundation.scss",
     "js/foundation.js"
     "js/foundation.js"
   ],
   ],
   "ignore": [],
   "ignore": [],
   "dependencies": {
   "dependencies": {
     "jquery": ">= 2.1.0",
     "jquery": ">= 2.1.0",
-    "modernizr": ">= 2.7.2",
+    "modernizr": "2.8.3",
     "fastclick": ">=0.6.11",
     "fastclick": ">=0.6.11",
     "jquery.cookie": "~1.4.0",
     "jquery.cookie": "~1.4.0",
     "jquery-placeholder": "~2.0.7"
     "jquery-placeholder": "~2.0.7"
@@ -20,14 +18,14 @@
   },
   },
   "private": true,
   "private": true,
   "homepage": "https://github.com/zurb/bower-foundation",
   "homepage": "https://github.com/zurb/bower-foundation",
-  "_release": "5.5.1",
+  "version": "5.5.3",
+  "_release": "5.5.3",
   "_resolution": {
   "_resolution": {
     "type": "version",
     "type": "version",
-    "tag": "5.5.1",
-    "commit": "bf07a7551bc3e599404d9cb2eb2251a95c1ea782"
+    "tag": "5.5.3",
+    "commit": "b879716aa268e1f88fe43de98db2db4487af00ca"
   },
   },
-  "_source": "git://github.com/zurb/bower-foundation.git",
+  "_source": "https://github.com/zurb/bower-foundation.git",
   "_target": "~5.5.1",
   "_target": "~5.5.1",
-  "_originalSource": "foundation",
-  "_direct": true
+  "_originalSource": "foundation"
 }
 }

+ 3 - 2
sites/all/themes/gui/materiobasetheme/bower_components/jquery/MIT-LICENSE.txt → sites/all/themes/gui/materiobasetheme/bower_components/foundation/LICENSE

@@ -1,5 +1,6 @@
-Copyright 2014 jQuery Foundation and other contributors
-http://jquery.com/
+Copyright (c) 2013-2015 ZURB, inc.
+
+MIT License
 
 
 Permission is hereby granted, free of charge, to any person obtaining
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
 a copy of this software and associated documentation files (the

+ 46 - 0
sites/all/themes/gui/materiobasetheme/bower_components/foundation/README.md

@@ -0,0 +1,46 @@
+# [Foundation](http://foundation.zurb.com)
+
+[![Build Status](https://travis-ci.org/zurb/foundation.svg)](https://travis-ci.org/zurb/foundation)
+
+
+Foundation is the most advanced responsive front-end framework in the world. You can quickly prototype and build sites or apps that work on any kind of device with Foundation, which includes layout constructs (like a fully responsive grid), elements and best practices.
+
+To get started, check out <http://foundation.zurb.com/docs>
+
+
+## Quickstart
+
+To get going with Foundation you can:
+
+  * [Download the latest release](http://foundation.zurb.com/develop/download.html)
+  * [Install with Bower](http://bower.io): `bower install foundation`
+  * [Install with npm](http://npmjs.com): `npm install foundation-sites`
+
+## Documentation
+
+Foundation uses [Assemble.io](http://assemble.io) and [Grunt](http://gruntjs.com/) to generate its [documentation pages](http://foundation.zurb.com/docs). Documentation can also be run from your local computer:
+
+### View documentation locally
+
+You'll want to clone the Foundation repo first and install all the dependencies. You can do this using the following commands:
+
+```
+git clone git@github.com:zurb/foundation.git
+cd foundation
+npm install -g grunt-cli bower
+npm install
+bower install
+bundle install
+```
+
+Then just run `grunt build` and the documentation will be compiled:
+
+```
+foundation/
+├── dist/
+│   └── ...
+├────── docs/
+│       └── ...
+```
+
+Copyright (c) 2015 ZURB, inc.

+ 2 - 4
sites/all/themes/gui/materiobasetheme/bower_components/foundation/bower.json

@@ -1,16 +1,14 @@
 {
 {
   "name": "foundation",
   "name": "foundation",
-  "version": "5.5.1",
   "main": [
   "main": [
-    "css/foundation.css",
-    "css/foundation.css.map",
+    "scss/foundation.scss",
     "js/foundation.js"
     "js/foundation.js"
   ],
   ],
   "ignore": [
   "ignore": [
   ],
   ],
   "dependencies": {
   "dependencies": {
     "jquery": ">= 2.1.0",
     "jquery": ">= 2.1.0",
-    "modernizr": ">= 2.7.2",
+    "modernizr": "2.8.3",
     "fastclick": ">=0.6.11",
     "fastclick": ">=0.6.11",
     "jquery.cookie": "~1.4.0",
     "jquery.cookie": "~1.4.0",
     "jquery-placeholder": "~2.0.7"
     "jquery-placeholder": "~2.0.7"

File diff suppressed because it is too large
+ 207 - 209
sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/foundation.css


File diff suppressed because it is too large
+ 0 - 0
sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/foundation.css.map


File diff suppressed because it is too large
+ 0 - 0
sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/foundation.min.css


+ 9 - 12
sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/normalize.css

@@ -1,8 +1,8 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
 /**
 /**
  * 1. Set default font family to sans-serif.
  * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- *    user zoom.
+ * 2. Prevent iOS and IE text size adjust after device orientation change,
+ *    without disabling user zoom.
  */
  */
 html {
 html {
   font-family: sans-serif;
   font-family: sans-serif;
@@ -64,7 +64,7 @@ audio:not([controls]) {
 
 
 /**
 /**
  * Address `[hidden]` styling not present in IE 8/9/10.
  * Address `[hidden]` styling not present in IE 8/9/10.
- * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
+ * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
  */
  */
 [hidden],
 [hidden],
 template {
 template {
@@ -79,7 +79,8 @@ a {
   background-color: transparent; }
   background-color: transparent; }
 
 
 /**
 /**
- * Improve readability when focused and also mouse hovered in all browsers.
+ * Improve readability of focused elements when they are also in an
+ * active/hover state.
  */
  */
 a:active,
 a:active,
 a:hover {
 a:hover {
@@ -169,7 +170,6 @@ figure {
  * Address differences between Firefox and other browsers.
  * Address differences between Firefox and other browsers.
  */
  */
 hr {
 hr {
-  -moz-box-sizing: content-box;
   box-sizing: content-box;
   box-sizing: content-box;
   height: 0; }
   height: 0; }
 
 
@@ -292,16 +292,13 @@ input[type="number"]::-webkit-outer-spin-button {
 
 
 /**
 /**
  * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
  * 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).
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
  */
  */
 input[type="search"] {
 input[type="search"] {
   -webkit-appearance: textfield;
   -webkit-appearance: textfield;
   /* 1 */
   /* 1 */
-  -moz-box-sizing: content-box;
-  -webkit-box-sizing: content-box;
-  /* 2 */
-  box-sizing: content-box; }
+  box-sizing: content-box;
+  /* 2 */ }
 
 
 /**
 /**
  * Remove inner padding and search cancel button in Safari and Chrome on OS X.
  * Remove inner padding and search cancel button in Safari and Chrome on OS X.

File diff suppressed because it is too large
+ 0 - 0
sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/normalize.css.map


File diff suppressed because it is too large
+ 0 - 0
sites/all/themes/gui/materiobasetheme/bower_components/foundation/css/normalize.min.css


File diff suppressed because it is too large
+ 84 - 51
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation.js


File diff suppressed because it is too large
+ 0 - 0
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation.min.js


File diff suppressed because it is too large
+ 10 - 6
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.abide.js


+ 65 - 7
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.accordion.js

@@ -4,7 +4,7 @@
   Foundation.libs.accordion = {
   Foundation.libs.accordion = {
     name : 'accordion',
     name : 'accordion',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       content_class : 'content',
       content_class : 'content',
@@ -18,30 +18,35 @@
       this.bindings(method, options);
       this.bindings(method, options);
     },
     },
 
 
-    events : function () {
+    events : function (instance) {
       var self = this;
       var self = this;
       var S = this.S;
       var S = this.S;
+      self.create(this.S(instance));
+
       S(this.scope)
       S(this.scope)
       .off('.fndtn.accordion')
       .off('.fndtn.accordion')
-      .on('click.fndtn.accordion', '[' + this.attr_name() + '] > .accordion-navigation > a', function (e) {
+      .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a, [' + this.attr_name() + '] > li > a', function (e) {
         var accordion = S(this).closest('[' + self.attr_name() + ']'),
         var accordion = S(this).closest('[' + self.attr_name() + ']'),
             groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
             groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
             settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
             settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
             target = S('#' + this.href.split('#')[1]),
             target = S('#' + this.href.split('#')[1]),
-            aunts = $('> .accordion-navigation', accordion),
+            aunts = $('> dd, > li', accordion),
             siblings = aunts.children('.' + settings.content_class),
             siblings = aunts.children('.' + settings.content_class),
             active_content = siblings.filter('.' + settings.active_class);
             active_content = siblings.filter('.' + settings.active_class);
 
 
         e.preventDefault();
         e.preventDefault();
 
 
         if (accordion.attr(self.attr_name())) {
         if (accordion.attr(self.attr_name())) {
-          siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class);
-          aunts = aunts.add('[' + groupSelector + '] .accordion-navigation');
+          siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class);
+          aunts = aunts.add('[' + groupSelector + '] dd, [' + groupSelector + '] li');
         }
         }
 
 
         if (settings.toggleable && target.is(active_content)) {
         if (settings.toggleable && target.is(active_content)) {
-          target.parent('.accordion-navigation').toggleClass(settings.active_class, false);
+          target.parent('dd, li').toggleClass(settings.active_class, false);
           target.toggleClass(settings.active_class, false);
           target.toggleClass(settings.active_class, false);
+          S(this).attr('aria-expanded', function(i, attr){
+              return attr === 'true' ? 'false' : 'true';
+          });
           settings.callback(target);
           settings.callback(target);
           target.triggerHandler('toggled', [accordion]);
           target.triggerHandler('toggled', [accordion]);
           accordion.triggerHandler('toggled', [target]);
           accordion.triggerHandler('toggled', [target]);
@@ -51,15 +56,68 @@
         if (!settings.multi_expand) {
         if (!settings.multi_expand) {
           siblings.removeClass(settings.active_class);
           siblings.removeClass(settings.active_class);
           aunts.removeClass(settings.active_class);
           aunts.removeClass(settings.active_class);
+          aunts.children('a').attr('aria-expanded','false');
         }
         }
 
 
         target.addClass(settings.active_class).parent().addClass(settings.active_class);
         target.addClass(settings.active_class).parent().addClass(settings.active_class);
         settings.callback(target);
         settings.callback(target);
         target.triggerHandler('toggled', [accordion]);
         target.triggerHandler('toggled', [accordion]);
         accordion.triggerHandler('toggled', [target]);
         accordion.triggerHandler('toggled', [target]);
+        S(this).attr('aria-expanded','true');
       });
       });
     },
     },
 
 
+    create: function($instance) {
+      var self = this,
+          accordion = $instance,
+          aunts = $('> .accordion-navigation', accordion),
+          settings = accordion.data(self.attr_name(true) + '-init') || self.settings;
+
+      aunts.children('a').attr('aria-expanded','false');
+      aunts.has('.' + settings.content_class + '.' + settings.active_class).addClass(settings.active_class).children('a').attr('aria-expanded','true');
+
+      if (settings.multi_expand) {
+        $instance.attr('aria-multiselectable','true');
+      }
+    },
+	
+  	toggle : function(options) {
+  		var options = typeof options !== 'undefined' ? options : {};
+  		var selector = typeof options.selector !== 'undefined' ? options.selector : '';
+  		var toggle_state = typeof options.toggle_state !== 'undefined' ? options.toggle_state : '';
+  		var $accordion = typeof options.$accordion !== 'undefined' ? options.$accordion : this.S(this.scope).closest('[' + this.attr_name() + ']');
+  
+  		var $items = $accordion.find('> dd' + selector + ', > li' + selector);
+  		if ( $items.length < 1 ) {
+  			if ( window.console ) {
+  				console.error('Selection not found.', selector);
+  			}
+  			return false;
+  		}
+  
+  		var S = this.S;
+  		var active_class = this.settings.active_class;
+  		$items.each(function() {
+  			var $item = S(this);
+  			var is_active = $item.hasClass(active_class);
+  			if ( ( is_active && toggle_state === 'close' ) || ( !is_active && toggle_state === 'open' ) || toggle_state === '' ) {
+  				$item.find('> a').trigger('click.fndtn.accordion');
+  			}
+  		});
+  	},
+  
+  	open : function(options) {
+  		var options = typeof options !== 'undefined' ? options : {};
+  		options.toggle_state = 'open';
+  		this.toggle(options);
+  	},
+  
+  	close : function(options) {
+  		var options = typeof options !== 'undefined' ? options : {};
+  		options.toggle_state = 'close';
+  		this.toggle(options);
+  	},	
+
     off : function () {},
     off : function () {},
 
 
     reflow : function () {}
     reflow : function () {}

+ 3 - 3
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.alert.js

@@ -4,7 +4,7 @@
   Foundation.libs.alert = {
   Foundation.libs.alert = {
     name : 'alert',
     name : 'alert',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       callback : function () {}
       callback : function () {}
@@ -26,12 +26,12 @@
         if (Modernizr.csstransitions) {
         if (Modernizr.csstransitions) {
           alertBox.addClass('alert-close');
           alertBox.addClass('alert-close');
           alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {
           alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {
-            S(this).trigger('close').trigger('close.fndtn.alert').remove();
+            S(this).trigger('close.fndtn.alert').remove();
             settings.callback();
             settings.callback();
           });
           });
         } else {
         } else {
           alertBox.fadeOut(300, function () {
           alertBox.fadeOut(300, function () {
-            S(this).trigger('close').trigger('close.fndtn.alert').remove();
+            S(this).trigger('close.fndtn.alert').remove();
             settings.callback();
             settings.callback();
           });
           });
         }
         }

+ 54 - 24
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.clearing.js

@@ -4,14 +4,16 @@
   Foundation.libs.clearing = {
   Foundation.libs.clearing = {
     name : 'clearing',
     name : 'clearing',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       templates : {
       templates : {
         viewing : '<a href="#" class="clearing-close">&times;</a>' +
         viewing : '<a href="#" class="clearing-close">&times;</a>' +
           '<div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
           '<div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
           '<p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a>' +
           '<p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a>' +
-          '<a href="#" class="clearing-main-next"><span></span></a></div>'
+          '<a href="#" class="clearing-main-next"><span></span></a></div>' +
+          '<img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
+          '<img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'
       },
       },
 
 
       // comma delimited list of selectors that, on click, will close clearing,
       // comma delimited list of selectors that, on click, will close clearing,
@@ -26,7 +28,7 @@
 
 
       touch_label : '',
       touch_label : '',
 
 
-      // event initializers and locks
+      // event initializer and locks
       init : false,
       init : false,
       locked : false
       locked : false
     },
     },
@@ -201,7 +203,8 @@
           visible_image = self.S('.visible-img', container),
           visible_image = self.S('.visible-img', container),
           image = self.S('img', visible_image).not($image),
           image = self.S('img', visible_image).not($image),
           label = self.S('.clearing-touch-label', container),
           label = self.S('.clearing-touch-label', container),
-          error = false;
+          error = false,
+          loaded = {};
 
 
       // Event to disable scrolling on touch devices when Clearing is activated
       // Event to disable scrolling on touch devices when Clearing is activated
       $('body').on('touchmove', function (e) {
       $('body').on('touchmove', function (e) {
@@ -227,6 +230,7 @@
       function cb (image) {
       function cb (image) {
         var $image = $(image);
         var $image = $(image);
         $image.css('visibility', 'visible');
         $image.css('visibility', 'visible');
+        $image.trigger('imageVisible');
         // toggle the gallery
         // toggle the gallery
         body.css('overflow', 'hidden');
         body.css('overflow', 'hidden');
         root.addClass('clearing-blackout');
         root.addClass('clearing-blackout');
@@ -245,9 +249,17 @@
       if (!this.locked()) {
       if (!this.locked()) {
         visible_image.trigger('open.fndtn.clearing');
         visible_image.trigger('open.fndtn.clearing');
         // set the image to the selected thumbnail
         // set the image to the selected thumbnail
-        image
-          .attr('src', this.load($image))
-          .css('visibility', 'hidden');
+        loaded = this.load($image);
+        if (loaded.interchange) {
+          image
+            .attr('data-interchange', loaded.interchange)
+            .foundation('interchange', 'reflow');
+        } else {
+          image
+            .attr('src', loaded.src)
+            .attr('data-interchange', '');
+        }
+        image.css('visibility', 'hidden');
 
 
         startLoad.call(this);
         startLoad.call(this);
       }
       }
@@ -302,7 +314,7 @@
         this.go(clearing, 'prev');
         this.go(clearing, 'prev');
       }
       }
       if (e.which === ESC_KEY) {
       if (e.which === ESC_KEY) {
-        this.S('a.clearing-close').trigger('click').trigger('click.fndtn.clearing');
+        this.S('a.clearing-close').trigger('click.fndtn.clearing');
       }
       }
     },
     },
 
 
@@ -381,37 +393,55 @@
     // image loading and preloading
     // image loading and preloading
 
 
     load : function ($image) {
     load : function ($image) {
-      var href;
+      var href,
+          interchange,
+          closest_a;
 
 
       if ($image[0].nodeName === 'A') {
       if ($image[0].nodeName === 'A') {
         href = $image.attr('href');
         href = $image.attr('href');
+        interchange = $image.data('clearing-interchange');
       } else {
       } else {
-        href = $image.closest('a').attr('href');
+        closest_a = $image.closest('a');
+        href = closest_a.attr('href');
+        interchange = closest_a.data('clearing-interchange');
       }
       }
 
 
       this.preload($image);
       this.preload($image);
 
 
-      if (href) {
-        return href;
+      return {
+        'src': href ? href : $image.attr('src'),
+        'interchange': href ? interchange : $image.data('clearing-interchange')
       }
       }
-      return $image.attr('src');
     },
     },
 
 
     preload : function ($image) {
     preload : function ($image) {
       this
       this
-        .img($image.closest('li').next())
-        .img($image.closest('li').prev());
+        .img($image.closest('li').next(), 'next')
+        .img($image.closest('li').prev(), 'prev');
     },
     },
 
 
-    img : function (img) {
+    img : function (img, sibling_type) {
       if (img.length) {
       if (img.length) {
-        var new_img = new Image(),
-            new_a = this.S('a', img);
+        var preload_img = $('.clearing-preload-' + sibling_type),
+            new_a = this.S('a', img),
+            src,
+            interchange,
+            image;
 
 
         if (new_a.length) {
         if (new_a.length) {
-          new_img.src = new_a.attr('href');
+          src = new_a.attr('href');
+          interchange = new_a.data('clearing-interchange');
+        } else {
+          image = this.S('img', img);
+          src = image.attr('src');
+          interchange = image.data('clearing-interchange');
+        }
+
+        if (interchange) {
+          preload_img.attr('data-interchange', interchange);
         } else {
         } else {
-          new_img.src = this.S('img', img).attr('src');
+          preload_img.attr('src', src);
+          preload_img.attr('data-interchange', '');
         }
         }
       }
       }
       return this;
       return this;
@@ -423,9 +453,9 @@
       var caption = $image.attr('data-caption');
       var caption = $image.attr('data-caption');
 
 
       if (caption) {
       if (caption) {
-        container
-          .html(caption)
-          .show();
+      	var containerPlain = container.get(0);
+      	containerPlain.innerHTML = caption;
+        container.show();
       } else {
       } else {
         container
         container
           .text('')
           .text('')
@@ -447,7 +477,7 @@
 
 
       if (target.length) {
       if (target.length) {
         this.S('img', target)
         this.S('img', target)
-          .trigger('click', [current, target]).trigger('click.fndtn.clearing', [current, target])
+          .trigger('click.fndtn.clearing', [current, target])
           .trigger('change.fndtn.clearing');
           .trigger('change.fndtn.clearing');
       }
       }
     },
     },

+ 39 - 19
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.dropdown.js

@@ -4,7 +4,7 @@
   Foundation.libs.dropdown = {
   Foundation.libs.dropdown = {
     name : 'dropdown',
     name : 'dropdown',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       active_class : 'open',
       active_class : 'open',
@@ -34,7 +34,7 @@
           var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;
           var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;
           if (!settings.is_hover || Modernizr.touch) {
           if (!settings.is_hover || Modernizr.touch) {
             e.preventDefault();
             e.preventDefault();
-            if (S(this).parent('[data-reveal-id]')) {
+            if (S(this).parent('[data-reveal-id]').length) {
               e.stopPropagation();
               e.stopPropagation();
             }
             }
             self.toggle($(this));
             self.toggle($(this));
@@ -131,8 +131,8 @@
 
 
     close : function (dropdown) {
     close : function (dropdown) {
       var self = this;
       var self = this;
-      dropdown.each(function () {
-        var original_target = $('[' + self.attr_name() + '=' + dropdown[0].id + ']') || $('aria-controls=' + dropdown[0].id + ']');
+      dropdown.each(function (idx) {
+        var original_target = $('[' + self.attr_name() + '=' + dropdown[idx].id + ']') || $('aria-controls=' + dropdown[idx].id + ']');
         original_target.attr('aria-expanded', 'false');
         original_target.attr('aria-expanded', 'false');
         if (self.S(this).hasClass(self.settings.active_class)) {
         if (self.S(this).hasClass(self.settings.active_class)) {
           self.S(this)
           self.S(this)
@@ -143,7 +143,7 @@
             .removeClass(self.settings.active_class)
             .removeClass(self.settings.active_class)
             .removeData('target');
             .removeData('target');
 
 
-          self.S(this).trigger('closed').trigger('closed.fndtn.dropdown', [dropdown]);
+          self.S(this).trigger('closed.fndtn.dropdown', [dropdown]);
         }
         }
       });
       });
       dropdown.removeClass('f-open-' + this.attr_name(true));
       dropdown.removeClass('f-open-' + this.attr_name(true));
@@ -161,7 +161,7 @@
         .css(dropdown
         .css(dropdown
         .addClass(this.settings.active_class), target);
         .addClass(this.settings.active_class), target);
       dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);
       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.data('target', target.get(0)).trigger('opened.fndtn.dropdown', [dropdown, target]);
       dropdown.attr('aria-hidden', 'false');
       dropdown.attr('aria-hidden', 'false');
       target.attr('aria-expanded', 'true');
       target.attr('aria-expanded', 'true');
       dropdown.focus();
       dropdown.focus();
@@ -209,10 +209,13 @@
 
 
     css : function (dropdown, target) {
     css : function (dropdown, target) {
       var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8),
       var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8),
-          settings = target.data(this.attr_name(true) + '-init') || this.settings;
+          settings = target.data(this.attr_name(true) + '-init') || this.settings,
+          parentOverflow = dropdown.parent().css('overflow-y') || dropdown.parent().css('overflow');
 
 
       this.clear_idx();
       this.clear_idx();
 
 
+
+
       if (this.small()) {
       if (this.small()) {
         var p = this.dirs.bottom.call(dropdown, target, settings);
         var p = this.dirs.bottom.call(dropdown, target, settings);
 
 
@@ -224,7 +227,19 @@
         });
         });
 
 
         dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
         dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
-      } else {
+      }
+      // detect if dropdown is in an overflow container
+      else if (parentOverflow !== 'visible') {
+        var offset = target[0].offsetTop + target[0].offsetHeight;
+
+        dropdown.attr('style', '').css({
+          position : 'absolute',
+          top : offset
+        });
+
+        dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+      }
+      else {
 
 
         this.style(dropdown, target, settings);
         this.style(dropdown, target, settings);
       }
       }
@@ -243,7 +258,7 @@
     // `this` is the dropdown
     // `this` is the dropdown
     dirs : {
     dirs : {
       // Calculate target offset
       // Calculate target offset
-      _base : function (t) {
+      _base : function (t, s) {
         var o_p = this.offsetParent(),
         var o_p = this.offsetParent(),
             o = o_p.offset(),
             o = o_p.offset(),
             p = t.offset();
             p = t.offset();
@@ -260,31 +275,36 @@
         //lets see if the panel will be off the screen
         //lets see if the panel will be off the screen
         //get the actual width of the page and store it
         //get the actual width of the page and store it
         var actualBodyWidth;
         var actualBodyWidth;
+        var windowWidth = window.innerWidth;
+        
         if (document.getElementsByClassName('row')[0]) {
         if (document.getElementsByClassName('row')[0]) {
           actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;
           actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;
         } else {
         } else {
-          actualBodyWidth = window.outerWidth;
+          actualBodyWidth = windowWidth;
         }
         }
 
 
-        var actualMarginWidth = (window.outerWidth - actualBodyWidth) / 2;
+        var actualMarginWidth = (windowWidth - actualBodyWidth) / 2;
         var actualBoundary = actualBodyWidth;
         var actualBoundary = actualBodyWidth;
 
 
-        if (!this.hasClass('mega')) {
+        if (!this.hasClass('mega') && !s.ignore_repositioning) {
+          var outerWidth = this.outerWidth();
+          var o_left = t.offset().left;
+		  
           //miss top
           //miss top
           if (t.offset().top <= this.outerHeight()) {
           if (t.offset().top <= this.outerHeight()) {
             p.missTop = true;
             p.missTop = true;
-            actualBoundary = window.outerWidth - actualMarginWidth;
+            actualBoundary = windowWidth - actualMarginWidth;
             p.leftRightFlag = true;
             p.leftRightFlag = true;
           }
           }
 
 
           //miss right
           //miss right
-          if (t.offset().left + this.outerWidth() > t.offset().left + actualMarginWidth && t.offset().left - actualMarginWidth > this.outerWidth()) {
+          if (o_left + outerWidth > o_left + actualMarginWidth && o_left - actualMarginWidth > outerWidth) {
             p.missRight = true;
             p.missRight = true;
             p.missLeft = false;
             p.missLeft = false;
           }
           }
 
 
           //miss left
           //miss left
-          if (t.offset().left - this.outerWidth() <= 0) {
+          if (o_left - outerWidth <= 0) {
             p.missLeft = true;
             p.missLeft = true;
             p.missRight = false;
             p.missRight = false;
           }
           }
@@ -295,7 +315,7 @@
 
 
       top : function (t, s) {
       top : function (t, s) {
         var self = Foundation.libs.dropdown,
         var self = Foundation.libs.dropdown,
-            p = self.dirs._base.call(this, t);
+            p = self.dirs._base.call(this, t, s);
 
 
         this.addClass('drop-top');
         this.addClass('drop-top');
 
 
@@ -322,7 +342,7 @@
 
 
       bottom : function (t, s) {
       bottom : function (t, s) {
         var self = Foundation.libs.dropdown,
         var self = Foundation.libs.dropdown,
-            p = self.dirs._base.call(this, t);
+            p = self.dirs._base.call(this, t, s);
 
 
         if (p.missRight == true) {
         if (p.missRight == true) {
           p.left = p.left - this.outerWidth() + t.outerWidth();
           p.left = p.left - this.outerWidth() + t.outerWidth();
@@ -340,7 +360,7 @@
       },
       },
 
 
       left : function (t, s) {
       left : function (t, s) {
-        var p = Foundation.libs.dropdown.dirs._base.call(this, t);
+        var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
 
 
         this.addClass('drop-left');
         this.addClass('drop-left');
 
 
@@ -354,7 +374,7 @@
       },
       },
 
 
       right : function (t, s) {
       right : function (t, s) {
-        var p = Foundation.libs.dropdown.dirs._base.call(this, t);
+        var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
 
 
         this.addClass('drop-right');
         this.addClass('drop-right');
 
 

+ 43 - 16
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.equalizer.js

@@ -4,13 +4,14 @@
   Foundation.libs.equalizer = {
   Foundation.libs.equalizer = {
     name : 'equalizer',
     name : 'equalizer',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       use_tallest : true,
       use_tallest : true,
       before_height_change : $.noop,
       before_height_change : $.noop,
       after_height_change : $.noop,
       after_height_change : $.noop,
-      equalize_on_stack : false
+      equalize_on_stack : false,
+      act_on_hidden_el: false
     },
     },
 
 
     init : function (scope, method, options) {
     init : function (scope, method, options) {
@@ -27,28 +28,38 @@
 
 
     equalize : function (equalizer) {
     equalize : function (equalizer) {
       var isStacked = false,
       var isStacked = false,
-          vals = equalizer.find('[' + this.attr_name() + '-watch]:visible'),
-          settings = equalizer.data(this.attr_name(true) + '-init');
+          group = equalizer.data('equalizer'),
+          settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,
+          vals,
+          firstTopOffset;
 
 
+      if (settings.act_on_hidden_el) {
+        vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]');
+      }
+      else {
+        vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');
+      }
+      
       if (vals.length === 0) {
       if (vals.length === 0) {
         return;
         return;
       }
       }
-      var firstTopOffset = vals.first().offset().top;
+
       settings.before_height_change();
       settings.before_height_change();
-      equalizer.trigger('before-height-change').trigger('before-height-change.fndth.equalizer');
+      equalizer.trigger('before-height-change.fndth.equalizer');
       vals.height('inherit');
       vals.height('inherit');
-      vals.each(function () {
-        var el = $(this);
-        if (el.offset().top !== firstTopOffset) {
-          isStacked = true;
-        }
-      });
 
 
       if (settings.equalize_on_stack === false) {
       if (settings.equalize_on_stack === false) {
+        firstTopOffset = vals.first().offset().top;
+        vals.each(function () {
+          if ($(this).offset().top !== firstTopOffset) {
+            isStacked = true;
+            return false;
+          }
+        });
         if (isStacked) {
         if (isStacked) {
           return;
           return;
         }
         }
-      };
+      }
 
 
       var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
       var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
 
 
@@ -59,17 +70,33 @@
         var min = Math.min.apply(null, heights);
         var min = Math.min.apply(null, heights);
         vals.css('height', min);
         vals.css('height', min);
       }
       }
+
       settings.after_height_change();
       settings.after_height_change();
-      equalizer.trigger('after-height-change').trigger('after-height-change.fndtn.equalizer');
+      equalizer.trigger('after-height-change.fndtn.equalizer');
     },
     },
 
 
     reflow : function () {
     reflow : function () {
       var self = this;
       var self = this;
 
 
       this.S('[' + this.attr_name() + ']', this.scope).each(function () {
       this.S('[' + this.attr_name() + ']', this.scope).each(function () {
-        var $eq_target = $(this);
+        var $eq_target = $(this),
+            media_query = $eq_target.data('equalizer-mq'),
+            ignore_media_query = true;
+
+        if (media_query) {
+          media_query = 'is_' + media_query.replace(/-/g, '_');
+          if (Foundation.utils.hasOwnProperty(media_query)) {
+            ignore_media_query = false;
+          }
+        }
+
         self.image_loaded(self.S('img', this), function () {
         self.image_loaded(self.S('img', this), function () {
-          self.equalize($eq_target)
+          if (ignore_media_query || Foundation.utils[media_query]()) {
+            self.equalize($eq_target)
+          } else {
+            var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');
+            vals.css('height', 'auto');
+          }
         });
         });
       });
       });
     }
     }

+ 21 - 15
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.interchange.js

@@ -4,7 +4,7 @@
   Foundation.libs.interchange = {
   Foundation.libs.interchange = {
     name : 'interchange',
     name : 'interchange',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     cache : {},
     cache : {},
 
 
@@ -48,14 +48,15 @@
           //   console.log($(this).html(), a, b, c);
           //   console.log($(this).html(), a, b, c);
           // });
           // });
 
 
-          if (/IMG/.test(el[0].nodeName)) {
-            var orig_path = el[0].src;
+          if (el !== null && /IMG/.test(el[0].nodeName)) {
+            var orig_path = $.each(el, function(){this.src = path;});
+            // var orig_path = el[0].src;
 
 
             if (new RegExp(path, 'i').test(orig_path)) {
             if (new RegExp(path, 'i').test(orig_path)) {
               return;
               return;
             }
             }
 
 
-            el[0].src = path;
+            el.attr("src", path);
 
 
             return trigger(el[0].src);
             return trigger(el[0].src);
           }
           }
@@ -88,8 +89,7 @@
       this.data_attr = this.set_data_attr();
       this.data_attr = this.set_data_attr();
       $.extend(true, this.settings, method, options);
       $.extend(true, this.settings, method, options);
       this.bindings(method, options);
       this.bindings(method, options);
-      this.load('images');
-      this.load('nodes');
+      this.reflow();
     },
     },
 
 
     get_media_hash : function () {
     get_media_hash : function () {
@@ -127,11 +127,10 @@
       for (var uuid in cache) {
       for (var uuid in cache) {
         if (cache.hasOwnProperty(uuid)) {
         if (cache.hasOwnProperty(uuid)) {
           var passed = this.results(uuid, cache[uuid]);
           var passed = this.results(uuid, cache[uuid]);
-
           if (passed) {
           if (passed) {
             this.settings.directives[passed
             this.settings.directives[passed
               .scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) {
               .scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) {
-                if (arguments[0] instanceof Array) { 
+                if (arguments[0] instanceof Array) {
                   var args = arguments[0];
                   var args = arguments[0];
                 } else {
                 } else {
                   var args = Array.prototype.slice.call(arguments, 0);
                   var args = Array.prototype.slice.call(arguments, 0);
@@ -241,7 +240,7 @@
         this.object($(this['cached_' + type][i]));
         this.object($(this['cached_' + type][i]));
       }
       }
 
 
-      return $(window).trigger('resize').trigger('resize.fndtn.interchange');
+      return $(window).trigger('resize.fndtn.interchange');
     },
     },
 
 
     convert_directive : function (directive) {
     convert_directive : function (directive) {
@@ -258,19 +257,25 @@
     parse_scenario : function (scenario) {
     parse_scenario : function (scenario) {
       // This logic had to be made more complex since some users were using commas in the url path
       // 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
       // So we cannot simply just split on a comma
+
       var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/),
       var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/),
-      media_query         = scenario[1];
+      // getting the mq has gotten a bit complicated since we started accounting for several use cases
+      // of URLs. For now we'll continue to match these scenarios, but we may consider having these scenarios
+      // as nested objects or arrays in F6.
+      // regex: match everything before close parenthesis for mq
+      media_query         = scenario[1].match(/(.*)\)/);
 
 
       if (directive_match) {
       if (directive_match) {
         var path  = directive_match[1],
         var path  = directive_match[1],
         directive = directive_match[2];
         directive = directive_match[2];
+
       } else {
       } else {
         var cached_split = scenario[0].split(/,\s*$/),
         var cached_split = scenario[0].split(/,\s*$/),
         path             = cached_split[0],
         path             = cached_split[0],
         directive        = '';
         directive        = '';
       }
       }
 
 
-      return [this.trim(path), this.convert_directive(directive), this.trim(media_query)];
+      return [this.trim(path), this.convert_directive(directive), this.trim(media_query[1])];
     },
     },
 
 
     object : function (el) {
     object : function (el) {
@@ -280,10 +285,12 @@
 
 
       if (i > 0) {
       if (i > 0) {
         while (i--) {
         while (i--) {
-          var split = raw_arr[i].split(/\(([^\)]*?)(\))$/);
+          // split array between comma delimited content and mq
+          // regex: comma, optional space, open parenthesis
+          var scenario = raw_arr[i].split(/,\s?\(/);
 
 
-          if (split.length > 1) {
-            var params = this.parse_scenario(split);
+          if (scenario.length > 1) {
+            var params = this.parse_scenario(scenario);
             scenarios.push(params);
             scenarios.push(params);
           }
           }
         }
         }
@@ -301,7 +308,6 @@
       }
       }
 
 
       el.attr(this.add_namespace('data-uuid'), uuid);
       el.attr(this.add_namespace('data-uuid'), uuid);
-
       return this.cache[uuid] = scenarios;
       return this.cache[uuid] = scenarios;
     },
     },
 
 

+ 53 - 50
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.joyride.js

@@ -6,13 +6,13 @@
   Foundation.libs.joyride = {
   Foundation.libs.joyride = {
     name : 'joyride',
     name : 'joyride',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     defaults : {
     defaults : {
       expose                   : false,     // turn on or off the expose feature
       expose                   : false,     // turn on or off the expose feature
       modal                    : true,      // Whether to cover page with modal during the tour
       modal                    : true,      // Whether to cover page with modal during the tour
       keyboard                 : true,      // enable left, right and esc keystrokes
       keyboard                 : true,      // enable left, right and esc keystrokes
-      tip_location             : 'bottom',  // 'top' or 'bottom' in relation to parent
+      tip_location             : 'bottom',  // 'top', 'bottom', 'left' or 'right' in relation to parent
       nub_position             : 'auto',    // override on a per tooltip bases
       nub_position             : 'auto',    // override on a per tooltip bases
       scroll_speed             : 1500,      // Page scrolling speed in milliseconds, 0 = no scroll animation
       scroll_speed             : 1500,      // Page scrolling speed in milliseconds, 0 = no scroll animation
       scroll_animation         : 'linear',  // supports 'swing' and 'linear', extend with jQuery UI.
       scroll_animation         : 'linear',  // supports 'swing' and 'linear', extend with jQuery UI.
@@ -323,8 +323,8 @@
 
 
           this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location];
           this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location];
 
 
-          // scroll and hide bg if not modal
-          if (!/body/i.test(this.settings.$target.selector)) {
+          // scroll and hide bg if not modal and not expose
+          if (!/body/i.test(this.settings.$target.selector) && !this.settings.expose) {
             var joyridemodalbg = $('.joyride-modal-bg');
             var joyridemodalbg = $('.joyride-modal-bg');
             if (/pop/i.test(this.settings.tipAnimation)) {
             if (/pop/i.test(this.settings.tipAnimation)) {
                 joyridemodalbg.hide();
                 joyridemodalbg.hide();
@@ -500,67 +500,67 @@
       }
       }
 
 
       if (!/body/i.test(this.settings.$target.selector)) {
       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});
-            }
+        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');
+          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});
-            }
+        } 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');
+          this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom');
 
 
-          } else if (this.right()) {
+        } 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.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');
+          this.nub_position($nub, this.settings.tip_settings.nub_position, 'left');
 
 
-          } else if (this.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.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');
+          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) {
+        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');
+          $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.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts];
 
 
-            this.settings.attempts++;
+          this.settings.attempts++;
 
 
-            this.pos_default();
+          this.pos_default();
 
 
-          }
+        }
 
 
       } else if (this.settings.$li.length) {
       } else if (this.settings.$li.length) {
 
 
@@ -827,6 +827,10 @@
     },
     },
 
 
     corners : function (el) {
     corners : function (el) {
+      if (el.length === 0) {
+         return [false, false, false, false];   
+      }
+      
       var w = $(window),
       var w = $(window),
           window_half = w.height() / 2,
           window_half = w.height() / 2,
           //using this to calculate since scroll may not have finished yet.
           //using this to calculate since scroll may not have finished yet.
@@ -924,7 +928,6 @@
       $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride');
       $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride');
       $('.joyride-tip-guide, .joyride-modal-bg').remove();
       $('.joyride-tip-guide, .joyride-modal-bg').remove();
       clearTimeout(this.settings.automate);
       clearTimeout(this.settings.automate);
-      this.settings = {};
     },
     },
 
 
     reflow : function () {}
     reflow : function () {}

+ 74 - 45
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.js

@@ -1,7 +1,7 @@
 /*
 /*
  * Foundation Responsive Library
  * Foundation Responsive Library
  * http://foundation.zurb.com
  * http://foundation.zurb.com
- * Copyright 2014, ZURB
+ * Copyright 2015, ZURB
  * Free to use under the MIT license.
  * Free to use under the MIT license.
  * http://www.opensource.org/licenses/mit-license.php
  * http://www.opensource.org/licenses/mit-license.php
 */
 */
@@ -10,14 +10,12 @@
   'use strict';
   'use strict';
 
 
   var header_helpers = function (class_array) {
   var header_helpers = function (class_array) {
-    var i = class_array.length;
     var head = $('head');
     var head = $('head');
-
-    while (i--) {
-      if (head.has('.' + class_array[i]).length === 0) {
-        head.append('<meta class="' + class_array[i] + '" />');
+    head.prepend($.map(class_array, function (class_name) {
+      if (head.has('.' + class_name).length === 0) {
+        return '<meta class="' + class_name + '" />';
       }
       }
-    }
+    }));
   };
   };
 
 
   header_helpers([
   header_helpers([
@@ -157,42 +155,52 @@
     }
     }
   };
   };
 
 
-  /*
-    https://github.com/paulirish/matchMedia.js
-  */
+  /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
 
 
-  window.matchMedia = window.matchMedia || (function ( doc ) {
+  window.matchMedia || (window.matchMedia = function() {
+      "use strict";
 
 
-    'use strict';
+      // For browsers that support matchMedium api such as IE 9 and webkit
+      var styleMedia = (window.styleMedia || window.media);
 
 
-    var bool,
-        docElem = doc.documentElement,
-        refNode = docElem.firstElementChild || docElem.firstChild,
-        // fakeBody required for <FF4 when executed in <head>
-        fakeBody = doc.createElement( 'body' ),
-        div = doc.createElement( 'div' );
+      // For those that don't support matchMedium
+      if (!styleMedia) {
+          var style       = document.createElement('style'),
+              script      = document.getElementsByTagName('script')[0],
+              info        = null;
 
 
-    div.id = 'mq-test-1';
-    div.style.cssText = 'position:absolute;top:-100em';
-    fakeBody.style.background = 'none';
-    fakeBody.appendChild(div);
+          style.type  = 'text/css';
+          style.id    = 'matchmediajs-test';
 
 
-    return function (q) {
+          script.parentNode.insertBefore(style, script);
 
 
-      div.innerHTML = '&shy;<style media="' + q + '"> #mq-test-1 { width: 42px; }</style>';
+          // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
+          info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
 
 
-      docElem.insertBefore( fakeBody, refNode );
-      bool = div.offsetWidth === 42;
-      docElem.removeChild( fakeBody );
+          styleMedia = {
+              matchMedium: function(media) {
+                  var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
 
 
-      return {
-        matches : bool,
-        media : q
-      };
+                  // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
+                  if (style.styleSheet) {
+                      style.styleSheet.cssText = text;
+                  } else {
+                      style.textContent = text;
+                  }
 
 
-    };
+                  // Test if media query is true or false
+                  return info.width === '1px';
+              }
+          };
+      }
 
 
-  }( document ));
+      return function(media) {
+          return {
+              matches: styleMedia.matchMedium(media || 'all'),
+              media: media || 'all'
+          };
+      };
+  }());
 
 
   /*
   /*
    * jquery.requestAnimationFrame
    * jquery.requestAnimationFrame
@@ -280,21 +288,30 @@
     return string;
     return string;
   }
   }
 
 
+  function MediaQuery(selector) {
+    this.selector = selector;
+    this.query = '';
+  }
+
+  MediaQuery.prototype.toString = function () {
+    return this.query || (this.query = S(this.selector).css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''));
+  };
+
   window.Foundation = {
   window.Foundation = {
     name : 'Foundation',
     name : 'Foundation',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     media_queries : {
     media_queries : {
-      'small'       : S('.foundation-mq-small').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
-      'small-only'  : S('.foundation-mq-small-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
-      'medium'      : S('.foundation-mq-medium').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
-      'medium-only' : S('.foundation-mq-medium-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
-      'large'       : S('.foundation-mq-large').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
-      'large-only'  : S('.foundation-mq-large-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
-      'xlarge'      : S('.foundation-mq-xlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
-      'xlarge-only' : S('.foundation-mq-xlarge-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
-      'xxlarge'     : S('.foundation-mq-xxlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, '')
+      'small'       : new MediaQuery('.foundation-mq-small'),
+      'small-only'  : new MediaQuery('.foundation-mq-small-only'),
+      'medium'      : new MediaQuery('.foundation-mq-medium'),
+      'medium-only' : new MediaQuery('.foundation-mq-medium-only'),
+      'large'       : new MediaQuery('.foundation-mq-large'),
+      'large-only'  : new MediaQuery('.foundation-mq-large-only'),
+      'xlarge'      : new MediaQuery('.foundation-mq-xlarge'),
+      'xlarge-only' : new MediaQuery('.foundation-mq-xlarge-only'),
+      'xxlarge'     : new MediaQuery('.foundation-mq-xxlarge')
     },
     },
 
 
     stylesheet : $('<style></style>').appendTo('head')[0].sheet,
     stylesheet : $('<style></style>').appendTo('head')[0].sheet,
@@ -583,7 +600,7 @@
 
 
           if (query !== undefined) {
           if (query !== undefined) {
             Foundation.stylesheet.insertRule('@media ' +
             Foundation.stylesheet.insertRule('@media ' +
-              Foundation.media_queries[media] + '{ ' + rule + ' }');
+              Foundation.media_queries[media] + '{ ' + rule + ' }', Foundation.stylesheet.cssRules.length);
           }
           }
         }
         }
       },
       },
@@ -599,7 +616,19 @@
         var self = this,
         var self = this,
             unloaded = images.length;
             unloaded = images.length;
 
 
-        if (unloaded === 0) {
+        function pictures_has_height(images) {
+          var pictures_number = images.length;
+
+          for (var i = pictures_number - 1; i >= 0; i--) {
+            if(images.attr('height') === undefined) {
+              return false;
+            };
+          };
+
+          return true;
+        }
+
+        if (unloaded === 0 || pictures_has_height(images)) {
           callback(images);
           callback(images);
         }
         }
 
 

+ 39 - 28
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.magellan.js

@@ -4,7 +4,7 @@
   Foundation.libs['magellan-expedition'] = {
   Foundation.libs['magellan-expedition'] = {
     name : 'magellan-expedition',
     name : 'magellan-expedition',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       active_class : 'active',
       active_class : 'active',
@@ -32,38 +32,41 @@
 
 
       S(self.scope)
       S(self.scope)
         .off('.magellan')
         .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 + '"]');
+        .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {
+          var sameHost = ((this.hostname === location.hostname) || !this.hostname),
+              samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),
+              testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'),
+              anchor = this;
+
+          if (sameHost && samePath && testHash) {
+            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);
 
 
-          if (target.length === 0) {
-            target = $('#' + hash);
-
-          }
-
-          // Account for expedition height if fixed position
-          var scroll_top = target.offset().top - settings.destination_threshold + 1;
-          if (settings.offset_by_height) {
-            scroll_top = scroll_top - expedition.outerHeight();
-          }
+            }
 
 
-          $('html, body').stop().animate({
-            'scrollTop' : scroll_top
-          }, settings.duration, settings.easing, function () {
-            if (history.pushState) {
-              history.pushState(null, null, '#' + hash);
-            } else {
-              location.hash = '#' + hash;
+            // Account for expedition height if fixed position
+            var scroll_top = target.offset().top - settings.destination_threshold + 1;
+            if (settings.offset_by_height) {
+              scroll_top = scroll_top - expedition.outerHeight();
             }
             }
-          });
+            $('html, body').stop().animate({
+              'scrollTop' : scroll_top
+            }, settings.duration, settings.easing, function () {
+              if (history.pushState) {
+                history.pushState(null, null, anchor.pathname + anchor.search + '#' + hash);
+              } else {
+                location.hash = anchor.pathname + anchor.search + '#' + hash;
+              }
+            });
+          }
         })
         })
         .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));
         .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 () {
     check_for_arrivals : function () {
@@ -194,6 +197,14 @@
       this.S(window).off('.magellan');
       this.S(window).off('.magellan');
     },
     },
 
 
+    filterPathname : function (pathname) {
+      pathname = pathname || '';
+      return pathname
+          .replace(/^\//,'')
+          .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'')
+          .replace(/\/$/,'');
+    },
+
     reflow : function () {
     reflow : function () {
       var self = this;
       var self = this;
       // remove placeholder expeditions used for height calculation purposes
       // remove placeholder expeditions used for height calculation purposes

+ 77 - 4
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.offcanvas.js

@@ -4,7 +4,7 @@
   Foundation.libs.offcanvas = {
   Foundation.libs.offcanvas = {
     name : 'offcanvas',
     name : 'offcanvas',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       open_method : 'move',
       open_method : 'move',
@@ -20,16 +20,22 @@
           S = self.S,
           S = self.S,
           move_class = '',
           move_class = '',
           right_postfix = '',
           right_postfix = '',
-          left_postfix = '';
+          left_postfix = '',
+          top_postfix = '',
+          bottom_postfix = '';
 
 
       if (this.settings.open_method === 'move') {
       if (this.settings.open_method === 'move') {
         move_class = 'move-';
         move_class = 'move-';
         right_postfix = 'right';
         right_postfix = 'right';
         left_postfix = 'left';
         left_postfix = 'left';
+        top_postfix = 'top';
+        bottom_postfix = 'bottom';
       } else if (this.settings.open_method === 'overlap_single') {
       } else if (this.settings.open_method === 'overlap_single') {
         move_class = 'offcanvas-overlap-';
         move_class = 'offcanvas-overlap-';
         right_postfix = 'right';
         right_postfix = 'right';
         left_postfix = 'left';
         left_postfix = 'left';
+        top_postfix = 'top';
+        bottom_postfix = 'bottom';
       } else if (this.settings.open_method === 'overlap') {
       } else if (this.settings.open_method === 'overlap') {
         move_class = 'offcanvas-overlap';
         move_class = 'offcanvas-overlap';
       }
       }
@@ -58,6 +64,7 @@
           }
           }
           $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
           $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
         })
         })
+        //end of left canvas
         .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
         .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
           self.click_toggle_class(e, move_class + left_postfix);
           self.click_toggle_class(e, move_class + left_postfix);
           if (self.settings.open_method !== 'overlap') {
           if (self.settings.open_method !== 'overlap') {
@@ -81,6 +88,55 @@
           }
           }
           $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
           $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
         })
         })
+        //end of right canvas
+        .on('click.fndtn.offcanvas', '.top-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + bottom_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.top-submenu').removeClass(move_class + bottom_postfix);
+          }
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.top-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 + bottom_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + bottom_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.top-submenu').toggleClass(move_class + bottom_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + bottom_postfix);
+          }
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of top canvas
+        .on('click.fndtn.offcanvas', '.bottom-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + top_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.bottom-submenu').removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.bottom-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 + top_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + top_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.bottom-submenu').toggleClass(move_class + top_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of bottom
         .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
         .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
           self.click_remove_class(e, move_class + left_postfix);
           self.click_remove_class(e, move_class + left_postfix);
           S('.right-submenu').removeClass(move_class + left_postfix);
           S('.right-submenu').removeClass(move_class + left_postfix);
@@ -97,6 +153,23 @@
             self.click_remove_class(e, move_class + right_postfix);
             self.click_remove_class(e, move_class + right_postfix);
             $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
             $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
           }
           }
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + top_postfix);
+          S('.bottom-submenu').removeClass(move_class + top_postfix);
+          if (bottom_postfix) {
+            self.click_remove_class(e, move_class + bottom_postfix);
+            S('.top-submenu').removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + top_postfix);
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'false');
+          if (bottom_postfix) {
+            self.click_remove_class(e, move_class + bottom_postfix);
+            $('.bottom-off-canvas-toggle').attr('aria-expanded', 'false');
+          }
         });
         });
     },
     },
 
 
@@ -111,13 +184,13 @@
 
 
     show : function (class_name, $off_canvas) {
     show : function (class_name, $off_canvas) {
       $off_canvas = $off_canvas || this.get_wrapper();
       $off_canvas = $off_canvas || this.get_wrapper();
-      $off_canvas.trigger('open').trigger('open.fndtn.offcanvas');
+      $off_canvas.trigger('open.fndtn.offcanvas');
       $off_canvas.addClass(class_name);
       $off_canvas.addClass(class_name);
     },
     },
 
 
     hide : function (class_name, $off_canvas) {
     hide : function (class_name, $off_canvas) {
       $off_canvas = $off_canvas || this.get_wrapper();
       $off_canvas = $off_canvas || this.get_wrapper();
-      $off_canvas.trigger('close').trigger('close.fndtn.offcanvas');
+      $off_canvas.trigger('close.fndtn.offcanvas');
       $off_canvas.removeClass(class_name);
       $off_canvas.removeClass(class_name);
     },
     },
 
 

+ 1 - 1
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.orbit.js

@@ -407,7 +407,7 @@
   Foundation.libs.orbit = {
   Foundation.libs.orbit = {
     name : 'orbit',
     name : 'orbit',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       animation : 'slide',
       animation : 'slide',

+ 106 - 55
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.reveal.js

@@ -1,10 +1,12 @@
 ;(function ($, window, document, undefined) {
 ;(function ($, window, document, undefined) {
   'use strict';
   'use strict';
 
 
+  var openModals = [];
+
   Foundation.libs.reveal = {
   Foundation.libs.reveal = {
     name : 'reveal',
     name : 'reveal',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     locked : false,
     locked : false,
 
 
@@ -21,6 +23,7 @@
       opened : function(){},
       opened : function(){},
       close : function(){},
       close : function(){},
       closed : function(){},
       closed : function(){},
+      on_ajax_error: $.noop,
       bg : $('.reveal-modal-bg'),
       bg : $('.reveal-modal-bg'),
       css : {
       css : {
         open : {
         open : {
@@ -52,7 +55,8 @@
 
 
           if (!self.locked) {
           if (!self.locked) {
             var element = S(this),
             var element = S(this),
-                ajax = element.data(self.data_attr('reveal-ajax'));
+                ajax = element.data(self.data_attr('reveal-ajax')),
+                replaceContentSel = element.data(self.data_attr('reveal-replace-content'));
 
 
             self.locked = true;
             self.locked = true;
 
 
@@ -60,8 +64,7 @@
               self.open.call(self, element);
               self.open.call(self, element);
             } else {
             } else {
               var url = ajax === true ? element.attr('href') : ajax;
               var url = ajax === true ? element.attr('href') : ajax;
-
-              self.open.call(self, element, {url : url});
+              self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel });
             }
             }
           }
           }
         });
         });
@@ -82,7 +85,7 @@
             }
             }
 
 
             self.locked = true;
             self.locked = true;
-            self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open') : S(this).closest('[' + self.attr_name() + ']'));
+            self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']'));
           }
           }
         });
         });
 
 
@@ -153,7 +156,8 @@
       var settings = modal.data(self.attr_name(true) + '-init');
       var settings = modal.data(self.attr_name(true) + '-init');
       settings = settings || this.settings;
       settings = settings || this.settings;
 
 
-      if (modal.hasClass('open') && target.attr('data-reveal-id') == modal.attr('id')) {
+
+      if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {
         return self.close(modal);
         return self.close(modal);
       }
       }
 
 
@@ -165,8 +169,15 @@
             .data('offset', this.cache_offset(modal));
             .data('offset', this.cache_offset(modal));
         }
         }
 
 
+        modal.attr('tabindex','0').attr('aria-hidden','false');
+
         this.key_up_on(modal);    // PATCH #3: turning on key up capture only when a reveal window is open
         this.key_up_on(modal);    // PATCH #3: turning on key up capture only when a reveal window is open
 
 
+        // Prevent namespace event from triggering twice
+        modal.on('open.fndtn.reveal', function(e) {
+          if (e.namespace !== 'fndtn.reveal') return;
+        });
+
         modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
         modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
 
 
         if (open_modal.length < 1) {
         if (open_modal.length < 1) {
@@ -179,19 +190,27 @@
           };
           };
         }
         }
 
 
-        if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
-          if (open_modal.length > 0) {
-            if (settings.multiple_opened) {
-              this.to_back(open_modal);
+        var openModal = function() {
+          if(open_modal.length > 0) {
+            if(settings.multiple_opened) {
+              self.to_back(open_modal);
             } else {
             } else {
-              this.hide(open_modal, settings.css.close);
+              self.hide(open_modal, settings.css.close);
             }
             }
           }
           }
 
 
-          this.show(modal, settings.css.open);
+          // bl: add the open_modal that isn't already in the background to the openModals array
+          if(settings.multiple_opened) {
+            openModals.push(modal);
+          }
+
+          self.show(modal, settings.css.open);
+        };
+
+        if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
+          openModal();
         } else {
         } else {
           var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
           var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
-
           $.extend(ajax_settings, {
           $.extend(ajax_settings, {
             success : function (data, textStatus, jqXHR) {
             success : function (data, textStatus, jqXHR) {
               if ( $.isFunction(old_success) ) {
               if ( $.isFunction(old_success) ) {
@@ -201,21 +220,26 @@
                 }
                 }
               }
               }
 
 
-              modal.html(data);
+              if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') {
+                modal.find(options.replaceContentSel).html(data);
+              } else {
+                modal.html(data);
+              }
+
               self.S(modal).foundation('section', 'reflow');
               self.S(modal).foundation('section', 'reflow');
               self.S(modal).children().foundation();
               self.S(modal).children().foundation();
 
 
-              if (open_modal.length > 0) {
-                if (settings.multiple_opened) {
-                  this.to_back(open_modal);
-                } else {
-                  this.hide(open_modal, settings.css.close);
-                }
-              }
-              self.show(modal, settings.css.open);
+              openModal();
             }
             }
           });
           });
 
 
+          // check for if user initalized with error callback
+          if (settings.on_ajax_error !== $.noop) {
+            $.extend(ajax_settings, {
+              error : settings.on_ajax_error
+            });
+          }
+
           $.ajax(ajax_settings);
           $.ajax(ajax_settings);
         }
         }
       }
       }
@@ -225,23 +249,47 @@
     close : function (modal) {
     close : function (modal) {
       var modal = modal && modal.length ? modal : this.S(this.scope),
       var modal = modal && modal.length ? modal : this.S(this.scope),
           open_modals = this.S('[' + this.attr_name() + '].open'),
           open_modals = this.S('[' + this.attr_name() + '].open'),
-          settings = modal.data(this.attr_name(true) + '-init') || this.settings;
+          settings = modal.data(this.attr_name(true) + '-init') || this.settings,
+          self = this;
 
 
       if (open_modals.length > 0) {
       if (open_modals.length > 0) {
+
+        modal.removeAttr('tabindex','0').attr('aria-hidden','true');
+
         this.locked = true;
         this.locked = true;
         this.key_up_off(modal);   // PATCH #3: turning on key up capture only when a reveal window is open
         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');
-        
+
+        modal.trigger('close.fndtn.reveal');
+
         if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
         if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
-          this.toggle_bg(modal, false);
-          this.to_front(modal);
+          self.toggle_bg(modal, false);
+          self.to_front(modal);
         }
         }
-        
+
         if (settings.multiple_opened) {
         if (settings.multiple_opened) {
-          this.hide(modal, settings.css.close, settings);
-          this.to_front($($.makeArray(open_modals).reverse()[1]));
+          var isCurrent = modal.is(':not(.toback)');
+          self.hide(modal, settings.css.close, settings);
+          if(isCurrent) {
+            // remove the last modal since it is now closed
+            openModals.pop();
+          } else {
+            // if this isn't the current modal, then find it in the array and remove it
+            openModals = $.grep(openModals, function(elt) {
+              var isThis = elt[0]===modal[0];
+              if(isThis) {
+                // since it's not currently in the front, put it in the front now that it is hidden
+                // so that if it's re-opened, it won't be .toback
+                self.to_front(modal);
+              }
+              return !isThis;
+            });
+          }
+          // finally, show the next modal in the stack, if there is one
+          if(openModals.length>0) {
+            self.to_front(openModals[openModals.length - 1]);
+          }
         } else {
         } else {
-          this.hide(open_modals, settings.css.close, settings);
+          self.hide(open_modals, settings.css.close, settings);
         }
         }
       }
       }
     },
     },
@@ -276,7 +324,8 @@
       // is modal
       // is modal
       if (css) {
       if (css) {
         var settings = el.data(this.attr_name(true) + '-init') || this.settings,
         var settings = el.data(this.attr_name(true) + '-init') || this.settings,
-            root_element = settings.root_element;
+            root_element = settings.root_element,
+            context = this;
 
 
         if (el.parent(root_element).length === 0) {
         if (el.parent(root_element).length === 0) {
           var placeholder = el.wrap('<div style="display: none;" />').parent();
           var placeholder = el.wrap('<div style="display: none;" />').parent();
@@ -304,29 +353,30 @@
             return el
             return el
               .css(css)
               .css(css)
               .animate(end_css, settings.animation_speed, 'linear', function () {
               .animate(end_css, settings.animation_speed, 'linear', function () {
-                this.locked = false;
-                el.trigger('opened').trigger('opened.fndtn.reveal');
-              }.bind(this))
+                context.locked = false;
+                el.trigger('opened.fndtn.reveal');
+              })
               .addClass('open');
               .addClass('open');
-          }.bind(this), settings.animation_speed / 2);
+          }, settings.animation_speed / 2);
         }
         }
 
 
+        css.top = $(window).scrollTop() + el.data('css-top') + 'px';
+
         if (animData.fade) {
         if (animData.fade) {
-          css.top = $(window).scrollTop() + el.data('css-top') + 'px';
           var end_css = {opacity: 1};
           var end_css = {opacity: 1};
 
 
           return setTimeout(function () {
           return setTimeout(function () {
             return el
             return el
               .css(css)
               .css(css)
               .animate(end_css, settings.animation_speed, 'linear', function () {
               .animate(end_css, settings.animation_speed, 'linear', function () {
-                this.locked = false;
-                el.trigger('opened').trigger('opened.fndtn.reveal');
-              }.bind(this))
+                context.locked = false;
+                el.trigger('opened.fndtn.reveal');
+              })
               .addClass('open');
               .addClass('open');
-          }.bind(this), settings.animation_speed / 2);
+          }, settings.animation_speed / 2);
         }
         }
 
 
-        return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened').trigger('opened.fndtn.reveal');
+        return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal');
       }
       }
 
 
       var settings = this.settings;
       var settings = this.settings;
@@ -340,11 +390,11 @@
 
 
       return el.show();
       return el.show();
     },
     },
-    
+
     to_back : function(el) {
     to_back : function(el) {
       el.addClass('toback');
       el.addClass('toback');
     },
     },
-    
+
     to_front : function(el) {
     to_front : function(el) {
       el.removeClass('toback');
       el.removeClass('toback');
     },
     },
@@ -352,7 +402,8 @@
     hide : function (el, css) {
     hide : function (el, css) {
       // is modal
       // is modal
       if (css) {
       if (css) {
-        var settings = el.data(this.attr_name(true) + '-init');
+        var settings = el.data(this.attr_name(true) + '-init'),
+            context = this;
         settings = settings || this.settings;
         settings = settings || this.settings;
 
 
         var animData = getAnimationData(settings.animation);
         var animData = getAnimationData(settings.animation);
@@ -368,11 +419,11 @@
           return setTimeout(function () {
           return setTimeout(function () {
             return el
             return el
               .animate(end_css, settings.animation_speed, 'linear', function () {
               .animate(end_css, settings.animation_speed, 'linear', function () {
-                this.locked = false;
-                el.css(css).trigger('closed').trigger('closed.fndtn.reveal');
-              }.bind(this))
+                context.locked = false;
+                el.css(css).trigger('closed.fndtn.reveal');
+              })
               .removeClass('open');
               .removeClass('open');
-          }.bind(this), settings.animation_speed / 2);
+          }, settings.animation_speed / 2);
         }
         }
 
 
         if (animData.fade) {
         if (animData.fade) {
@@ -381,14 +432,14 @@
           return setTimeout(function () {
           return setTimeout(function () {
             return el
             return el
               .animate(end_css, settings.animation_speed, 'linear', function () {
               .animate(end_css, settings.animation_speed, 'linear', function () {
-                this.locked = false;
-                el.css(css).trigger('closed').trigger('closed.fndtn.reveal');
-              }.bind(this))
+                context.locked = false;
+                el.css(css).trigger('closed.fndtn.reveal');
+              })
               .removeClass('open');
               .removeClass('open');
-          }.bind(this), settings.animation_speed / 2);
+          }, settings.animation_speed / 2);
         }
         }
 
 
-        return el.hide().css(css).removeClass('open').trigger('closed').trigger('closed.fndtn.reveal');
+        return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal');
       }
       }
 
 
       var settings = this.settings;
       var settings = this.settings;
@@ -438,7 +489,7 @@
     },
     },
 
 
     cache_offset : function (modal) {
     cache_offset : function (modal) {
-      var offset = modal.show().height() + parseInt(modal.css('top'), 10);
+      var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY;
 
 
       modal.hide();
       modal.hide();
 
 

+ 40 - 7
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.slider.js

@@ -4,13 +4,13 @@
   Foundation.libs.slider = {
   Foundation.libs.slider = {
     name : 'slider',
     name : 'slider',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       start : 0,
       start : 0,
       end : 100,
       end : 100,
       step : 1,
       step : 1,
-      precision : null,
+      precision : 2,
       initial : null,
       initial : null,
       display_selector : '',
       display_selector : '',
       vertical : false,
       vertical : false,
@@ -28,7 +28,6 @@
 
 
     events : function () {
     events : function () {
       var self = this;
       var self = this;
-
       $(this.scope)
       $(this.scope)
         .off('.slider')
         .off('.slider')
         .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
         .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
@@ -53,6 +52,23 @@
           }
           }
         })
         })
         .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
         .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
+          if(!self.cache.active) {
+            // if the user has just clicked into the slider without starting to drag the handle
+            var slider = $(e.target).attr('role') === 'slider' ? $(e.target) : $(e.target).closest('.range-slider').find("[role='slider']");
+
+            if (slider.length && (!slider.parent().hasClass('disabled') && !slider.parent().attr('disabled'))) {
+              self.set_active_slider(slider);
+              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, self.get_cursor_position(e, 'y') + scroll_offset);
+              } else {
+                self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+              }
+            }
+          }
           self.remove_active_slider();
           self.remove_active_slider();
         })
         })
         .on('change.fndtn.slider', function (e) {
         .on('change.fndtn.slider', function (e) {
@@ -63,6 +79,23 @@
         .on('resize.fndtn.slider', self.throttle(function (e) {
         .on('resize.fndtn.slider', self.throttle(function (e) {
           self.reflow();
           self.reflow();
         }, 300));
         }, 300));
+
+      // update slider value as users change input value
+      this.S('[' + this.attr_name() + ']').each(function () {
+        var slider = $(this),
+            handle = slider.children('.range-slider-handle')[0],
+            settings = self.initialize_settings(handle);
+
+        if (settings.display_selector != '') {
+          $(settings.display_selector).each(function(){
+            if ($(this).attr('value')) {
+              $(this).off('change').on('change', function () {
+                slider.foundation("slider", "set_value", $(this).val());
+              });
+            }
+          });
+        }
+      });
     },
     },
 
 
     get_cursor_position : function (e, xy) {
     get_cursor_position : function (e, xy) {
@@ -139,11 +172,11 @@
         $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
         $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.attr(this.attr_name(), value).trigger('change.fndtn.slider');
 
 
       $hidden_inputs.val(value);
       $hidden_inputs.val(value);
       if (settings.trigger_input_change) {
       if (settings.trigger_input_change) {
-          $hidden_inputs.trigger('change');
+          $hidden_inputs.trigger('change.fndtn.slider');
       }
       }
 
 
       if (!$handle[0].hasAttribute('aria-valuemin')) {
       if (!$handle[0].hasAttribute('aria-valuemin')) {
@@ -156,7 +189,7 @@
 
 
       if (settings.display_selector != '') {
       if (settings.display_selector != '') {
         $(settings.display_selector).each(function () {
         $(settings.display_selector).each(function () {
-          if (this.hasOwnProperty('value')) {
+          if (this.hasAttribute('value')) {
             $(this).val(value);
             $(this).val(value);
           } else {
           } else {
             $(this).text(value);
             $(this).text(value);
@@ -223,7 +256,7 @@
       }
       }
 
 
       $.data(handle, 'bar', $(handle).parent());
       $.data(handle, 'bar', $(handle).parent());
-      $.data(handle, 'settings', settings);
+      return $.data(handle, 'settings', settings);
     },
     },
 
 
     set_initial_position : function ($ele) {
     set_initial_position : function ($ele) {

+ 39 - 29
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.tab.js

@@ -4,7 +4,7 @@
   Foundation.libs.tab = {
   Foundation.libs.tab = {
     name : 'tab',
     name : 'tab',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       active_class : 'active',
       active_class : 'active',
@@ -20,40 +20,51 @@
       var self = this,
       var self = this,
           S = this.S;
           S = this.S;
 
 
-      this.bindings(method, options);
-
-      // store the initial href, which is used to allow correct behaviour of the
-      // browser back button when deep linking is turned on.
-      self.entry_location = window.location.href;
+  	  // 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);
+  	  });
 
 
+      this.bindings(method, options);
       this.handle_location_hash_change();
       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 () {
     events : function () {
       var self = this,
       var self = this,
           S = this.S;
           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) {
+      var usual_tab_behavior =  function (e, target) {
+        var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+        if (!settings.is_hover || Modernizr.touch) {
+          // if user did not pressed tab key, prevent default action
+          var keyCode = e.keyCode || e.which;
+          if (keyCode !== 9) { 
             e.preventDefault();
             e.preventDefault();
             e.stopPropagation();
             e.stopPropagation();
-            self.toggle_active_tab(S(this).parent());
           }
           }
-        };
+          self.toggle_active_tab(S(target).parent());
+          
+        }
+      };
 
 
       S(this.scope)
       S(this.scope)
         .off('.tab')
         .off('.tab')
+        // Key event: focus/tab key
+        .on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+          var keyCode = e.keyCode || e.which;
+          // if user pressed tab key
+          if (keyCode === 13 || keyCode === 32) { // enter or space
+            var el = this;
+            usual_tab_behavior(e, el);
+          } 
+        })
         // Click event: tab title
         // 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 )
+        .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+          var el = this;
+          usual_tab_behavior(e, el);
+        })
         // Hover event: tab title
         // Hover event: tab title
         .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
         .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
           var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
           var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
@@ -169,17 +180,16 @@
           go_to_hash = function(hash) {
           go_to_hash = function(hash) {
             // This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
             // This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
             // the user would get continually redirected to the default hash.
             // the user would get continually redirected to the default hash.
-            var is_entry_location = window.location.href === self.entry_location,
-                default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : is_entry_location ? window.location.hash :'fndtn-' + self.default_tab_hashes[0].replace('#', '')
+            var default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : 'fndtn-' + self.default_tab_hashes[0].replace('#', '');
 
 
-            if (!(is_entry_location && hash === default_hash)) {
+            if (hash !== default_hash || window.location.hash) {
               window.location.hash = hash;
               window.location.hash = hash;
             }
             }
           };
           };
 
 
       // allow usage of data-tab-content attribute instead of href
       // 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];
+      if (anchor.data('tab-content')) {
+        target_hash = '#' + anchor.data('tab-content').split('#')[1];
         target = S(target_hash);
         target = S(target_hash);
       }
       }
 
 
@@ -212,12 +222,12 @@
       tab.addClass(settings.active_class).triggerHandler('opened');
       tab.addClass(settings.active_class).triggerHandler('opened');
       tab_link.attr({'aria-selected' : 'true',  tabindex : 0});
       tab_link.attr({'aria-selected' : 'true',  tabindex : 0});
       siblings.removeClass(settings.active_class)
       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});
+      siblings.find('a').attr({'aria-selected' : 'false'/*,  tabindex : -1*/});
+      target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true'/*,  tabindex : -1*/});
       target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
       target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
       settings.callback(tab);
       settings.callback(tab);
-      target.triggerHandler('toggled', [tab]);
-      tabs.triggerHandler('toggled', [target]);
+      target.triggerHandler('toggled', [target]);
+      tabs.triggerHandler('toggled', [tab]);
 
 
       tab_link.off('keydown').on('keydown', interpret_keyup_action );
       tab_link.off('keydown').on('keydown', interpret_keyup_action );
     },
     },

+ 69 - 28
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.tooltip.js

@@ -4,7 +4,7 @@
   Foundation.libs.tooltip = {
   Foundation.libs.tooltip = {
     name : 'tooltip',
     name : 'tooltip',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       additional_inheritable_classes : [],
       additional_inheritable_classes : [],
@@ -13,6 +13,8 @@
       touch_close_text : 'Tap To Close',
       touch_close_text : 'Tap To Close',
       disable_for_touch : false,
       disable_for_touch : false,
       hover_delay : 200,
       hover_delay : 200,
+      fade_in_duration : 150,
+      fade_out_duration : 150,
       show_on : 'all',
       show_on : 'all',
       tip_template : function (selector, content) {
       tip_template : function (selector, content) {
         return '<span data-selector="' + selector + '" id="' + selector + '" class="'
         return '<span data-selector="' + selector + '" id="' + selector + '" class="'
@@ -57,6 +59,31 @@
 
 
       self.create(this.S(instance));
       self.create(this.S(instance));
 
 
+      function _startShow(elt, $this, immediate) {
+        if (elt.timer) {
+          return;
+        }
+
+        if (immediate) {
+          elt.timer = null;
+          self.showTip($this);
+        } else {
+          elt.timer = setTimeout(function () {
+            elt.timer = null;
+            self.showTip($this);
+          }.bind(elt), self.settings.hover_delay);
+        }
+      }
+
+      function _startHide(elt, $this) {
+        if (elt.timer) {
+          clearTimeout(elt.timer);
+          elt.timer = null;
+        }
+
+        self.hide($this);
+      }
+
       $(this.scope)
       $(this.scope)
         .off('.tooltip')
         .off('.tooltip')
         .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip',
         .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip',
@@ -72,7 +99,7 @@
           if (/mouse/i.test(e.type) && self.ie_touch(e)) {
           if (/mouse/i.test(e.type) && self.ie_touch(e)) {
             return false;
             return false;
           }
           }
-
+          
           if ($this.hasClass('open')) {
           if ($this.hasClass('open')) {
             if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
             if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
               e.preventDefault();
               e.preventDefault();
@@ -85,17 +112,20 @@
               e.preventDefault();
               e.preventDefault();
               S(settings.tooltip_class + '.open').hide();
               S(settings.tooltip_class + '.open').hide();
               is_touch = true;
               is_touch = true;
+              // close other open tooltips on touch
+              if ($('.open[' + self.attr_name() + ']').length > 0) {
+               var prevOpen = S($('.open[' + self.attr_name() + ']')[0]);
+               self.hide(prevOpen);
+              }
             }
             }
 
 
             if (/enter|over/i.test(e.type)) {
             if (/enter|over/i.test(e.type)) {
-              this.timer = setTimeout(function () {
-                var tip = self.showTip($this);
-              }.bind(this), self.settings.hover_delay);
+              _startShow(this, $this);
+
             } else if (e.type === 'mouseout' || e.type === 'mouseleave') {
             } else if (e.type === 'mouseout' || e.type === 'mouseleave') {
-              clearTimeout(this.timer);
-              self.hide($this);
+              _startHide(this, $this);
             } else {
             } else {
-              self.showTip($this);
+              _startShow(this, $this, true);
             }
             }
           }
           }
         })
         })
@@ -109,11 +139,11 @@
           } else if ($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) {
           } else if ($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) {
             self.convert_to_touch($(this));
             self.convert_to_touch($(this));
           } else {
           } else {
-            self.hide($(this));
+            _startHide(this, $(this));
           }
           }
         })
         })
         .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) {
         .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) {
-          self.hide(S(this));
+          _startHide(this, S(this));
         });
         });
     },
     },
 
 
@@ -143,17 +173,16 @@
     },
     },
 
 
     selector : function ($target) {
     selector : function ($target) {
-      var id = $target.attr('id'),
-          dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector');
+      var dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector');
 
 
-      if ((id && id.length < 1 || !id) && typeof dataSelector != 'string') {
+      if (typeof dataSelector != 'string') {
         dataSelector = this.random_str(6);
         dataSelector = this.random_str(6);
         $target
         $target
           .attr('data-selector', dataSelector)
           .attr('data-selector', dataSelector)
           .attr('aria-describedby', dataSelector);
           .attr('aria-describedby', dataSelector);
       }
       }
 
 
-      return (id && id.length > 0) ? id : dataSelector;
+      return dataSelector;
     },
     },
 
 
     create : function ($target) {
     create : function ($target) {
@@ -181,14 +210,14 @@
     },
     },
 
 
     reposition : function (target, tip, classes) {
     reposition : function (target, tip, classes) {
-      var width, nub, nubHeight, nubWidth, column, objPos;
+      var width, nub, nubHeight, nubWidth, objPos;
 
 
       tip.css('visibility', 'hidden').show();
       tip.css('visibility', 'hidden').show();
 
 
       width = target.data('width');
       width = target.data('width');
       nub = tip.children('.nub');
       nub = tip.children('.nub');
       nubHeight = nub.outerHeight();
       nubHeight = nub.outerHeight();
-      nubWidth = nub.outerHeight();
+      nubWidth = nub.outerWidth();
 
 
       if (this.small()) {
       if (this.small()) {
         tip.css({'width' : '100%'});
         tip.css({'width' : '100%'});
@@ -204,33 +233,46 @@
           'right' : (right) ? right : 'auto'
           'right' : (right) ? right : 'auto'
         }).end();
         }).end();
       };
       };
+      
+      var o_top = target.offset().top;
+      var o_left = target.offset().left;
+      var outerHeight = target.outerHeight();
 
 
-      objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', target.offset().left);
+      objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
 
 
       if (this.small()) {
       if (this.small()) {
-        objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', 12.5, $(this.scope).width());
+        objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', 12.5, $(this.scope).width());
         tip.addClass('tip-override');
         tip.addClass('tip-override');
-        objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left);
+        objPos(nub, -nubHeight, 'auto', 'auto', o_left);
       } else {
       } else {
-        var left = target.offset().left;
+        
         if (Foundation.rtl) {
         if (Foundation.rtl) {
           nub.addClass('rtl');
           nub.addClass('rtl');
-          left = target.offset().left + target.outerWidth() - tip.outerWidth();
+          o_left = o_left + target.outerWidth() - tip.outerWidth();
         }
         }
-        objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', left);
+
+        objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+        // reset nub from small styles, if they've been applied
+        if (nub.attr('style')) {
+          nub.removeAttr('style');
+        }
+        
         tip.removeClass('tip-override');
         tip.removeClass('tip-override');
+        
+        var tip_outerHeight = tip.outerHeight();
+        
         if (classes && classes.indexOf('tip-top') > -1) {
         if (classes && classes.indexOf('tip-top') > -1) {
           if (Foundation.rtl) {
           if (Foundation.rtl) {
             nub.addClass('rtl');
             nub.addClass('rtl');
           }
           }
-          objPos(tip, (target.offset().top - tip.outerHeight()), 'auto', 'auto', left)
+          objPos(tip, (o_top - tip_outerHeight), 'auto', 'auto', o_left)
             .removeClass('tip-override');
             .removeClass('tip-override');
         } else if (classes && classes.indexOf('tip-left') > -1) {
         } 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))
+          objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left - tip.outerWidth() - nubHeight))
             .removeClass('tip-override');
             .removeClass('tip-override');
           nub.removeClass('rtl');
           nub.removeClass('rtl');
         } else if (classes && classes.indexOf('tip-right') > -1) {
         } 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))
+          objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left + target.outerWidth() + nubHeight))
             .removeClass('tip-override');
             .removeClass('tip-override');
           nub.removeClass('rtl');
           nub.removeClass('rtl');
         }
         }
@@ -274,20 +316,19 @@
 
 
     show : function ($target) {
     show : function ($target) {
       var $tip = this.getTip($target);
       var $tip = this.getTip($target);
-
       if ($target.data('tooltip-open-event-type') == 'touch') {
       if ($target.data('tooltip-open-event-type') == 'touch') {
         this.convert_to_touch($target);
         this.convert_to_touch($target);
       }
       }
 
 
       this.reposition($target, $tip, $target.attr('class'));
       this.reposition($target, $tip, $target.attr('class'));
       $target.addClass('open');
       $target.addClass('open');
-      $tip.fadeIn(150);
+      $tip.fadeIn(this.settings.fade_in_duration);
     },
     },
 
 
     hide : function ($target) {
     hide : function ($target) {
       var $tip = this.getTip($target);
       var $tip = this.getTip($target);
 
 
-      $tip.fadeOut(150, function () {
+      $tip.fadeOut(this.settings.fade_out_duration, function () {
         $tip.find('.tap-to-close').remove();
         $tip.find('.tap-to-close').remove();
         $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
         $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
         $target.removeClass('open');
         $target.removeClass('open');

+ 34 - 28
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/foundation/foundation.topbar.js

@@ -4,17 +4,19 @@
   Foundation.libs.topbar = {
   Foundation.libs.topbar = {
     name : 'topbar',
     name : 'topbar',
 
 
-    version : '5.5.1',
+    version : '5.5.3',
 
 
     settings : {
     settings : {
       index : 0,
       index : 0,
+      start_offset : 0,
       sticky_class : 'sticky',
       sticky_class : 'sticky',
       custom_back_text : true,
       custom_back_text : true,
       back_text : 'Back',
       back_text : 'Back',
       mobile_show_parent_link : true,
       mobile_show_parent_link : true,
       is_hover : true,
       is_hover : true,
       scrolltop : true, // jump to top when sticky nav menu toggle is clicked
       scrolltop : true, // jump to top when sticky nav menu toggle is clicked
-      sticky_on : 'all'
+      sticky_on : 'all',
+      dropdown_autoclose: true
     },
     },
 
 
     init : function (section, method, options) {
     init : function (section, method, options) {
@@ -65,24 +67,20 @@
       var smallMatch = matchMedia(Foundation.media_queries.small).matches;
       var smallMatch = matchMedia(Foundation.media_queries.small).matches;
       var medMatch   = matchMedia(Foundation.media_queries.medium).matches;
       var medMatch   = matchMedia(Foundation.media_queries.medium).matches;
       var lrgMatch   = matchMedia(Foundation.media_queries.large).matches;
       var lrgMatch   = matchMedia(Foundation.media_queries.large).matches;
-      
-       if (sticky && settings.sticky_on === 'all') {
-          return true;
-       }
-       if (sticky && this.small() && settings.sticky_on.indexOf('small') !== -1) {
-           if (smallMatch && !medMatch && !lrgMatch) { return true; }
-       }
-       if (sticky && this.medium() && settings.sticky_on.indexOf('medium') !== -1) {
-           if (smallMatch && medMatch && !lrgMatch) { return true; }
-       }
-       if (sticky && this.large() && settings.sticky_on.indexOf('large') !== -1) {
-           if (smallMatch && medMatch && lrgMatch) { return true; }
-       }
-
-       // fix for iOS browsers
-       if (sticky && navigator.userAgent.match(/(iPad|iPhone|iPod)/g)) {
+
+      if (sticky && settings.sticky_on === 'all') {
         return true;
         return true;
-       }
+      }
+      if (sticky && this.small() && settings.sticky_on.indexOf('small') !== -1) {
+        if (smallMatch && !medMatch && !lrgMatch) { return true; }
+      }
+      if (sticky && this.medium() && settings.sticky_on.indexOf('medium') !== -1) {
+        if (smallMatch && medMatch && !lrgMatch) { return true; }
+      }
+      if (sticky && this.large() && settings.sticky_on.indexOf('large') !== -1) {
+        if (smallMatch && medMatch && lrgMatch) { return true; }
+      }
+
        return false;
        return false;
     },
     },
 
 
@@ -166,11 +164,19 @@
           e.preventDefault();
           e.preventDefault();
           self.toggle(this);
           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 contextmenu.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'),
+              topbar = li.closest('[' + self.attr_name() + ']'),
+              settings = topbar.data(self.attr_name(true) + '-init');
+
+          if (settings.dropdown_autoclose && settings.is_hover) {
+            var hoverLi = $(this).closest('.hover');
+            hoverLi.removeClass('hover');
+          }
+          if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) {
+            self.toggle();
+          }
+
         })
         })
         .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
         .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
           var li = S(this),
           var li = S(this),
@@ -239,7 +245,7 @@
 
 
       S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () {
       S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () {
           self.resize.call(self);
           self.resize.call(self);
-      }, 50)).trigger('resize').trigger('resize.fndtn.topbar').load(function () {
+      }, 50)).trigger('resize.fndtn.topbar').load(function () {
           // Ensure that the offset is calculated after all of the pages resources have loaded
           // Ensure that the offset is calculated after all of the pages resources have loaded
           S(this).trigger('resize.fndtn.topbar');
           S(this).trigger('resize.fndtn.topbar');
       });
       });
@@ -372,7 +378,7 @@
         if (!$dropdown.find('.title.back').length) {
         if (!$dropdown.find('.title.back').length) {
 
 
           if (settings.mobile_show_parent_link == true && url) {
           if (settings.mobile_show_parent_link == true && url) {
-            $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-large-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>');
+            $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>');
           } else {
           } else {
             $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>');
             $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>');
           }
           }
@@ -424,8 +430,8 @@
           $window = this.S(window),
           $window = this.S(window),
           self = this;
           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.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') + this.settings.start_offset;
         if (!self.S(klass).hasClass('expanded')) {
         if (!self.S(klass).hasClass('expanded')) {
           if ($window.scrollTop() > (distance)) {
           if ($window.scrollTop() > (distance)) {
             if (!self.S(klass).hasClass('fixed')) {
             if (!self.S(klass).hasClass('fixed')) {

File diff suppressed because it is too large
+ 2 - 2
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/vendor/jquery.js


File diff suppressed because it is too large
+ 0 - 0
sites/all/themes/gui/materiobasetheme/bower_components/foundation/js/vendor/modernizr.js


+ 57 - 0
sites/all/themes/gui/materiobasetheme/bower_components/foundation/package.json

@@ -0,0 +1,57 @@
+{
+  "name": "foundation-sites",
+  "version": "5.5.3",
+  "main": "js/foundation/foundation.js",
+  "scripts": {
+    "start": "grunt"
+  },
+  "devDependencies": {
+    "assemble": "~0.4.37",
+    "grunt": "~0.4.4",
+    "grunt-cli": "^0.1.13",
+    "grunt-contrib-clean": "~0.5.0",
+    "grunt-contrib-compress": "~0.7.0",
+    "grunt-contrib-concat": "~0.3.0",
+    "grunt-contrib-connect": "~0.7.1",
+    "grunt-contrib-copy": "~0.5.0",
+    "grunt-contrib-cssmin": "^0.12.2",
+    "grunt-contrib-jasmine": "~0.6.3",
+    "grunt-contrib-jst": "~0.5.1",
+    "grunt-contrib-sass": "~0.8.1",
+    "grunt-contrib-uglify": "~0.4.0",
+    "grunt-contrib-watch": "~0.6.1",
+    "grunt-karma": "~0.6.2",
+    "grunt-newer": "~0.7.0",
+    "grunt-rsync": "~0.2.1",
+    "grunt-string-replace": "~0.2.7",
+    "handlebars-helper-rel": "~0.1.2",
+    "handlebars-helper-slugify": "~0.2.0",
+    "highlight.js": "~7.3.0",
+    "jasmine-jquery": "imtapps/node-jasmine-jquery",
+    "karma": "~0.10.4",
+    "karma-browserstack-launcher": "0.0.4",
+    "karma-chrome-launcher": "~0.1.0",
+    "karma-firefox-launcher": "~0.1.0",
+    "karma-html2js-preprocessor": "~0.1.0",
+    "karma-ie-launcher": "~0.1.1",
+    "karma-jasmine": "~0.1.3",
+    "karma-phantomjs-launcher": "~0.1.0",
+    "karma-safari-launcher": "~0.1.1",
+    "karma-script-launcher": "~0.1.0",
+    "load-grunt-config": "~0.16.0"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/zurb/foundation"
+  },
+  "keywords": [
+    "handlebars-helper-rel",
+    "handlebars-helper-slugify"
+  ],
+  "licenses": [
+    {
+      "type": "MIT",
+      "url": "https://github.com/zurb/foundation/blob/master/LICENSE"
+    }
+  ]
+}

+ 37 - 40
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation.scss

@@ -1,45 +1,42 @@
-@charset "UTF-8";
 // Foundation by ZURB
 // Foundation by ZURB
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-// Make sure the charset is set appropriately
-
 // Behold, here are all the Foundation components.
 // Behold, here are all the Foundation components.
-  @import "foundation/components/grid";
-  @import "foundation/components/accordion";
-  @import "foundation/components/alert-boxes";
-  @import "foundation/components/block-grid";
-  @import "foundation/components/breadcrumbs";
-  @import "foundation/components/button-groups";
-  @import "foundation/components/buttons";
-  @import "foundation/components/clearing";
-  @import "foundation/components/dropdown";
-  @import "foundation/components/dropdown-buttons";
-  @import "foundation/components/flex-video";
-  @import "foundation/components/forms";
-  @import "foundation/components/icon-bar";
-  @import "foundation/components/inline-lists";
-  @import "foundation/components/joyride";
-  @import "foundation/components/keystrokes";
-  @import "foundation/components/labels";
-  @import "foundation/components/magellan";
-  @import "foundation/components/orbit";
-  @import "foundation/components/pagination";
-  @import "foundation/components/panels";
-  @import "foundation/components/pricing-tables";
-  @import "foundation/components/progress-bars";
-  @import "foundation/components/range-slider";
-  @import "foundation/components/reveal";
-  @import "foundation/components/side-nav";
-  @import "foundation/components/split-buttons";
-  @import "foundation/components/sub-nav";
-  @import "foundation/components/switches";
-  @import "foundation/components/tables";
-  @import "foundation/components/tabs";
-  @import "foundation/components/thumbs";
-  @import "foundation/components/tooltips";
-  @import "foundation/components/top-bar";
-  @import "foundation/components/type";
-  @import "foundation/components/offcanvas";
-  @import "foundation/components/visibility";
+@import 'foundation/components/grid';
+@import 'foundation/components/accordion';
+@import 'foundation/components/alert-boxes';
+@import 'foundation/components/block-grid';
+@import 'foundation/components/breadcrumbs';
+@import 'foundation/components/button-groups';
+@import 'foundation/components/buttons';
+@import 'foundation/components/clearing';
+@import 'foundation/components/dropdown';
+@import 'foundation/components/dropdown-buttons';
+@import 'foundation/components/flex-video';
+@import 'foundation/components/forms';
+@import 'foundation/components/icon-bar';
+@import 'foundation/components/inline-lists';
+@import 'foundation/components/joyride';
+@import 'foundation/components/keystrokes';
+@import 'foundation/components/labels';
+@import 'foundation/components/magellan';
+@import 'foundation/components/orbit';
+@import 'foundation/components/pagination';
+@import 'foundation/components/panels';
+@import 'foundation/components/pricing-tables';
+@import 'foundation/components/progress-bars';
+@import 'foundation/components/range-slider';
+@import 'foundation/components/reveal';
+@import 'foundation/components/side-nav';
+@import 'foundation/components/split-buttons';
+@import 'foundation/components/sub-nav';
+@import 'foundation/components/switches';
+@import 'foundation/components/tables';
+@import 'foundation/components/tabs';
+@import 'foundation/components/thumbs';
+@import 'foundation/components/tooltips';
+@import 'foundation/components/top-bar';
+@import 'foundation/components/type';
+@import 'foundation/components/offcanvas';
+@import 'foundation/components/visibility';

+ 52 - 42
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/_functions.scss

@@ -8,6 +8,7 @@ $rem-base: 16px !default;
 // IMPORT ONCE
 // IMPORT ONCE
 // We use this to prevent styles from being loaded multiple times for components that rely on other components.
 // We use this to prevent styles from being loaded multiple times for components that rely on other components.
 $modules: () !default;
 $modules: () !default;
+
 @mixin exports($name) {
 @mixin exports($name) {
   // Import from global scope
   // Import from global scope
   $modules: $modules !global;
   $modules: $modules !global;
@@ -26,11 +27,11 @@ $modules: () !default;
 
 
 // RANGES
 // RANGES
 // We use these functions to define ranges for various things, like media queries.
 // We use these functions to define ranges for various things, like media queries.
-@function lower-bound($range){
+@function lower-bound($range) {
   @if length($range) <= 0 {
   @if length($range) <= 0 {
     @return 0;
     @return 0;
   }
   }
-  @return nth($range,1);
+  @return nth($range, 1);
 }
 }
 
 
 @function upper-bound($range) {
 @function upper-bound($range) {
@@ -50,45 +51,45 @@ $modules: () !default;
 
 
 @function text-inputs( $types: all, $selector: input ) {
 @function text-inputs( $types: all, $selector: input ) {
 
 
-    $return: ();
-
-    $all-text-input-types:
-      text
-      password
-      date
-      datetime
-      datetime-local
-      month
-      week
-      email
-      number
-      search
-      tel
-      time
-      url
-      color
-      textarea;
-
-    @if $types == all { $types: $all-text-input-types; }
-
-    @each $type in $types {
-        @if $type == textarea {
-            @if $selector == input {
-              $return: append($return, unquote('#{$type}'), comma)
-            } @else {
-              $return: append($return, unquote('#{$type}#{$selector}'), comma)
-            }
-        } @else {
-            $return: append($return, unquote('#{$selector}[type="#{$type}"]'), comma)
-        }
+  $return: ();
+
+  $all-text-input-types:
+    text
+    password
+    date
+    datetime
+    datetime-local
+    month
+    week
+    email
+    number
+    search
+    tel
+    time
+    url
+    color
+    textarea;
+
+  @if $types == all { $types: $all-text-input-types; }
+
+  @each $type in $types {
+    @if $type == textarea {
+      @if $selector == input {
+        $return: append($return, unquote('#{$type}'), comma)
+      } @else {
+        $return: append($return, unquote('#{$type}#{$selector}'), comma)
+      }
+    } @else {
+      $return: append($return, unquote('#{$selector}[type="#{$type}"]'), comma)
     }
     }
+  }
 
 
     @return $return;
     @return $return;
 
 
 }
 }
 
 
 // CONVERT TO REM
 // CONVERT TO REM
-@function convert-to-rem($value, $base-value: $rem-base)  {
+@function convert-to-rem($value, $base-value: $rem-base) {
   $value: strip-unit($value) / strip-unit($base-value) * 1rem;
   $value: strip-unit($value) / strip-unit($base-value) * 1rem;
   @if ($value == 0rem) { $value: 0; } // Turn 0rem into 0
   @if ($value == 0rem) { $value: 0; } // Turn 0rem into 0
   @return $value;
   @return $value;
@@ -133,14 +134,23 @@ $modules: () !default;
   @return $remValues;
   @return $remValues;
 }
 }
 
 
-// OLD EM CALC
-// Deprecated: We'll drop support for this in 5.1.0, use rem-calc()
-@function emCalc($values){
-  @return rem-calc($values);
+
+@function em-calc($values, $base-value: $rem-base) {
+  $remValues: rem-calc($values, $base-value: $rem-base);
+
+  $max: length($remValues);
+
+  @if $max == 1 { @return strip-unit(nth($remValues, 1)) * 1em; }
+
+  $emValues: ();
+  @for $i from 1 through $max {
+    $emValues: append($emValues, strip-unit(nth($remValues, $i)) * 1em);
+  }
+  @return $emValues;
 }
 }
 
 
-// OLD EM CALC
-// Deprecated: We'll drop support for this in 5.1.0, use rem-calc()
-@function em-calc($values){
-  @return rem-calc($values);
+
+// Deprecated: OLD EM CALC
+@function emCalc($values) {
+  @return em-calc($values);
 }
 }

+ 59 - 37
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/_settings.scss

@@ -6,7 +6,7 @@
 
 
 // Table of Contents
 // Table of Contents
 // Foundation Settings
 // Foundation Settings
-//
+
 // a. Base
 // a. Base
 // b. Grid
 // b. Grid
 // c. Global
 // c. Global
@@ -55,7 +55,7 @@
 // $rem-base: 16px;
 // $rem-base: 16px;
 
 
 // Allows the use of rem-calc() or lower-bound() in your settings
 // Allows the use of rem-calc() or lower-bound() in your settings
-@import "foundation/functions";
+@import 'foundation/functions';
 
 
 // The default font-size is set to 100% of the browser style sheet (usually 16px)
 // The default font-size is set to 100% of the browser style sheet (usually 16px)
 // for compatibility with browser-based text zoom or user-set defaults.
 // for compatibility with browser-based text zoom or user-set defaults.
@@ -83,8 +83,6 @@ $include-html-global-classes: $include-html-classes;
 // $total-columns: 12;
 // $total-columns: 12;
 // $column-gutter: rem-calc(30);
 // $column-gutter: rem-calc(30);
 
 
-// $last-child-float: $opposite-direction;
-
 // c. Global
 // c. Global
 // - - - - - - - - - - - - - - - - - - - - - - - - -
 // - - - - - - - - - - - - - - - - - - - - - - - - -
 
 
@@ -153,11 +151,16 @@ $include-html-global-classes: $include-html-classes;
 // d. Media Query Ranges
 // d. Media Query Ranges
 // - - - - - - - - - - - - - - - - - - - - - - - - -
 // - - - - - - - - - - - - - - - - - - - - - - - - -
 
 
-// $small-range: (0em, 40em);
-// $medium-range: (40.063em, 64em);
-// $large-range: (64.063em, 90em);
-// $xlarge-range: (90.063em, 120em);
-// $xxlarge-range: (120.063em, 99999999em);
+// $small-breakpoint:  em-calc(640);
+// $medium-breakpoint: em-calc(1024);
+// $large-breakpoint:  em-calc(1440);
+// $xlarge-breakpoint: em-calc(1920);
+
+// $small-range:   (0, $small-breakpoint);
+// $medium-range:  ($small-breakpoint  + em-calc(1), $medium-breakpoint);
+// $large-range:   ($medium-breakpoint + em-calc(1), $large-breakpoint);
+// $xlarge-range:  ($large-breakpoint  + em-calc(1), $xlarge-breakpoint);
+// $xxlarge-range: ($xlarge-breakpoint + em-calc(1), em-calc(99999999));
 
 
 // $screen: "only screen";
 // $screen: "only screen";
 
 
@@ -179,6 +182,15 @@ $include-html-global-classes: $include-html-classes;
 // $xxlarge-up: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)})";
 // $xxlarge-up: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)})";
 // $xxlarge-only: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)}) and (max-width:#{upper-bound($xxlarge-range)})";
 // $xxlarge-only: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)}) and (max-width:#{upper-bound($xxlarge-range)})";
 
 
+// $retina: (
+//  "#{$screen} and (-webkit-min-device-pixel-ratio: 2)",
+//  "#{$screen} and (min--moz-device-pixel-ratio: 2)",
+//  "#{$screen} and (-o-min-device-pixel-ratio: 2/1)",
+//  "#{$screen} and (min-device-pixel-ratio: 2)",
+//  "#{$screen} and (min-resolution: 192dpi)",
+//  "#{$screen} and (min-resolution: 2dppx)"
+// );
+
 // Legacy
 // Legacy
 // $small: $medium-up;
 // $small: $medium-up;
 // $medium: $medium-up;
 // $medium: $medium-up;
@@ -324,6 +336,7 @@ $include-html-global-classes: $include-html-classes;
 // $accordion-navigation-bg-color: $silver;
 // $accordion-navigation-bg-color: $silver;
 // $accordion-navigation-hover-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -5%);
 // $accordion-navigation-hover-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -5%);
 // $accordion-navigation-active-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -3%);
 // $accordion-navigation-active-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -3%);
+// $accordion-navigation-active-font-color: $jet;
 // $accordion-navigation-font-color: $jet;
 // $accordion-navigation-font-color: $jet;
 // $accordion-navigation-font-size: rem-calc(16);
 // $accordion-navigation-font-size: rem-calc(16);
 // $accordion-navigation-font-family: $body-font-family;
 // $accordion-navigation-font-family: $body-font-family;
@@ -362,8 +375,8 @@ $include-html-global-classes: $include-html-classes;
 // $alert-close-top: 50%;
 // $alert-close-top: 50%;
 // $alert-close-position: rem-calc(4);
 // $alert-close-position: rem-calc(4);
 // $alert-close-font-size: rem-calc(22);
 // $alert-close-font-size: rem-calc(22);
-// $alert-close-opacity: 0.3;
-// $alert-close-opacity-hover: 0.5;
+// $alert-close-opacity: .3;
+// $alert-close-opacity-hover: .5;
 // $alert-close-padding: 9px 6px 4px;
 // $alert-close-padding: 9px 6px 4px;
 // $alert-close-background: inherit;
 // $alert-close-background: inherit;
 
 
@@ -419,6 +432,7 @@ $include-html-global-classes: $include-html-classes;
 // We use these to control the slash between breadcrumbs
 // We use these to control the slash between breadcrumbs
 // $crumb-slash-color: $base;
 // $crumb-slash-color: $base;
 // $crumb-slash: "/";
 // $crumb-slash: "/";
+// $crumb-slash-position: 1px;
 
 
 // 05. Buttons
 // 05. Buttons
 // - - - - - - - - - - - - - - - - - - - - - - - - -
 // - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -471,7 +485,7 @@ $include-html-global-classes: $include-html-classes;
 // $button-round: $global-rounded;
 // $button-round: $global-rounded;
 
 
 // We use this to set default opacity and cursor for disabled buttons.
 // We use this to set default opacity and cursor for disabled buttons.
-// $button-disabled-opacity: 0.7;
+// $button-disabled-opacity: .7;
 // $button-disabled-cursor: $cursor-default-value;
 // $button-disabled-cursor: $cursor-default-value;
 
 
 // 06. Button Groups
 // 06. Button Groups
@@ -504,7 +518,7 @@ $include-html-global-classes: $include-html-classes;
 
 
 // We use these to style captions
 // We use these to style captions
 // $clearing-caption-font-color: $iron;
 // $clearing-caption-font-color: $iron;
-// $clearing-caption-font-size: 0.875em;
+// $clearing-caption-font-size: .875em;
 // $clearing-caption-padding: 10px 30px 20px;
 // $clearing-caption-padding: 10px 30px 20px;
 
 
 // We use these to make the image and carousel height and style
 // We use these to make the image and carousel height and style
@@ -635,6 +649,7 @@ $include-html-global-classes: $include-html-classes;
 // $input-font-family: inherit;
 // $input-font-family: inherit;
 // $input-font-color: rgba(0,0,0,0.75);
 // $input-font-color: rgba(0,0,0,0.75);
 // $input-font-size: rem-calc(14);
 // $input-font-size: rem-calc(14);
+// $input-placeholder-font-color: #cccccc;
 // $input-bg-color: $white;
 // $input-bg-color: $white;
 // $input-focus-bg-color: scale-color($white, $lightness: -2%);
 // $input-focus-bg-color: scale-color($white, $lightness: -2%);
 // $input-border-color: scale-color($white, $lightness: -20%);
 // $input-border-color: scale-color($white, $lightness: -20%);
@@ -645,7 +660,7 @@ $include-html-global-classes: $include-html-classes;
 // $input-disabled-bg: $gainsboro;
 // $input-disabled-bg: $gainsboro;
 // $input-disabled-cursor: $cursor-default-value;
 // $input-disabled-cursor: $cursor-default-value;
 // $input-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
 // $input-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
-// $input-include-glowing-effect: true;
+// $input-include-glowing-effect: false;
 
 
 // We use these to style the fieldset border and spacing.
 // We use these to style the fieldset border and spacing.
 // $fieldset-border-style: solid;
 // $fieldset-border-style: solid;
@@ -682,9 +697,13 @@ $include-html-global-classes: $include-html-classes;
 // $input-error-message-font-color-alt: $oil;
 // $input-error-message-font-color-alt: $oil;
 
 
 // We use this to style the glowing effect of inputs when focused
 // We use this to style the glowing effect of inputs when focused
-// $glowing-effect-fade-time: 0.45s;
+// $glowing-effect-fade-time: .45s;
 // $glowing-effect-color: $input-focus-border-color;
 // $glowing-effect-color: $input-focus-border-color;
 
 
+// We use this to style the transition when inputs are focused and when the glowing effect is disabled.
+// $input-transition-fade-time: 0.15s;
+// $input-transition-fade-timing-function: linear;
+
 // Select variables
 // Select variables
 // $select-bg-color: $ghost;
 // $select-bg-color: $ghost;
 // $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%);
 // $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%);
@@ -708,7 +727,7 @@ $include-html-global-classes: $include-html-classes;
 // $icon-bar-item-padding: 1.25rem;
 // $icon-bar-item-padding: 1.25rem;
 
 
 // We use this to set default opacity and cursor for disabled icons.
 // We use this to set default opacity and cursor for disabled icons.
-// $icon-bar-disabled-opacity: 0.7;
+// $icon-bar-disabled-opacity: .7;
 
 
 // 13. Inline Lists
 // 13. Inline Lists
 // - - - - - - - - - - - - - - - - - - - - - - - - -
 // - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -840,9 +859,11 @@ $include-html-global-classes: $include-html-classes;
 // Off Canvas Menu Variables
 // Off Canvas Menu Variables
 // $off-canvas-width: rem-calc(250);
 // $off-canvas-width: rem-calc(250);
 // $off-canvas-bg: $oil;
 // $off-canvas-bg: $oil;
+// $off-canvas-bg-hover: scale-color($tabbar-bg, $lightness: -30%);
+// $off-canvas-bg-active: scale-color($tabbar-bg, $lightness: -30%);
 
 
 // Off Canvas Menu List Variables
 // Off Canvas Menu List Variables
-// $off-canvas-label-padding: 0.3rem rem-calc(15);
+// $off-canvas-label-padding: .3rem rem-calc(15);
 // $off-canvas-label-color: $aluminum;
 // $off-canvas-label-color: $aluminum;
 // $off-canvas-label-text-transform: uppercase;
 // $off-canvas-label-text-transform: uppercase;
 // $off-canvas-label-font-size: rem-calc(12);
 // $off-canvas-label-font-size: rem-calc(12);
@@ -852,7 +873,7 @@ $include-html-global-classes: $include-html-classes;
 // $off-canvas-label-border-bottom: none;
 // $off-canvas-label-border-bottom: none;
 // $off-canvas-label-margin:0;
 // $off-canvas-label-margin:0;
 // $off-canvas-link-padding: rem-calc(10, 15);
 // $off-canvas-link-padding: rem-calc(10, 15);
-// $off-canvas-link-color: rgba($white, 0.7);
+// $off-canvas-link-color: rgba($white, .7);
 // $off-canvas-link-border-bottom: 1px solid scale-color($off-canvas-bg, $lightness: -25%);
 // $off-canvas-link-border-bottom: 1px solid scale-color($off-canvas-bg, $lightness: -25%);
 // $off-canvas-back-bg: #444;
 // $off-canvas-back-bg: #444;
 // $off-canvas-back-border-top: $off-canvas-label-border-top;
 // $off-canvas-back-border-top: $off-canvas-label-border-top;
@@ -879,9 +900,9 @@ $include-html-global-classes: $include-html-classes;
 // Off Canvas Back-Link Overlay
 // Off Canvas Back-Link Overlay
 // $off-canvas-overlay-transition: background 300ms ease;
 // $off-canvas-overlay-transition: background 300ms ease;
 // $off-canvas-overlay-cursor: pointer;
 // $off-canvas-overlay-cursor: pointer;
-// $off-canvas-overlay-box-shadow: -4px 0 4px rgba($black, 0.5), 4px 0 4px rgba($black, 0.5);
-// $off-canvas-overlay-background: rgba($white, 0.2);
-// $off-canvas-overlay-background-hover: rgba($white, 0.05);
+// $off-canvas-overlay-box-shadow: -4px 0 4px rgba($black, .5), 4px 0 4px rgba($black, .5);
+// $off-canvas-overlay-background: rgba($white, .2);
+// $off-canvas-overlay-background-hover: rgba($white, .05);
 
 
 // Transition Variables
 // Transition Variables
 // $menu-slide: "transform 500ms ease";
 // $menu-slide: "transform 500ms ease";
@@ -893,7 +914,7 @@ $include-html-global-classes: $include-html-classes;
 
 
 // We use these to control the caption styles
 // We use these to control the caption styles
 // $orbit-container-bg: none;
 // $orbit-container-bg: none;
-// $orbit-caption-bg: rgba(51,51,51, 0.8);
+// $orbit-caption-bg: rgba(51,51,51, .8);
 // $orbit-caption-font-color: $white;
 // $orbit-caption-font-color: $white;
 // $orbit-caption-font-size: rem-calc(14);
 // $orbit-caption-font-size: rem-calc(14);
 // $orbit-caption-position: "bottom"; // Supported values: "bottom", "under"
 // $orbit-caption-position: "bottom"; // Supported values: "bottom", "under"
@@ -927,7 +948,7 @@ $include-html-global-classes: $include-html-classes;
 // Hide controls on small
 // Hide controls on small
 // $orbit-nav-hide-for-small: true;
 // $orbit-nav-hide-for-small: true;
 // $orbit-bullet-hide-for-small: true;
 // $orbit-bullet-hide-for-small: true;
-// $orbit-timer-hide-for-small: true; 
+// $orbit-timer-hide-for-small: true;
 
 
 // 20. Pagination
 // 20. Pagination
 // - - - - - - - - - - - - - - - - - - - - - - - - -
 // - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -971,10 +992,10 @@ $include-html-global-classes: $include-html-classes;
 // $panel-bg: scale-color($white, $lightness: -5%);
 // $panel-bg: scale-color($white, $lightness: -5%);
 // $panel-border-style: solid;
 // $panel-border-style: solid;
 // $panel-border-size: 1px;
 // $panel-border-size: 1px;
+// $callout-panel-bg: scale-color($primary-color, $lightness: 94%);
 
 
 // We use this % to control how much we darken things on hover
 // We use this % to control how much we darken things on hover
-// $panel-function-factor: -11%;
-// $panel-border-color: scale-color($panel-bg, $lightness: $panel-function-factor);
+// $panel-border-color: scale-color($panel-bg, $lightness: -11%);
 
 
 // We use these to set default inner padding and bottom margin
 // We use these to set default inner padding and bottom margin
 // $panel-margin-bottom: rem-calc(20);
 // $panel-margin-bottom: rem-calc(20);
@@ -1070,7 +1091,7 @@ $include-html-global-classes: $include-html-classes;
 
 
 // $include-html-range-slider-classes: $include-html-classes;
 // $include-html-range-slider-classes: $include-html-classes;
 
 
-// These variabels define the slider bar styles
+// These variables define the slider bar styles
 // $range-slider-bar-width: 100%;
 // $range-slider-bar-width: 100%;
 // $range-slider-bar-height: rem-calc(16);
 // $range-slider-bar-height: rem-calc(16);
 
 
@@ -1086,7 +1107,7 @@ $include-html-global-classes: $include-html-classes;
 // $range-slider-vertical-bar-width: rem-calc(16);
 // $range-slider-vertical-bar-width: rem-calc(16);
 // $range-slider-vertical-bar-height: rem-calc(200);
 // $range-slider-vertical-bar-height: rem-calc(200);
 
 
-// These variabels define the slider handle styles
+// These variables define the slider handle styles
 // $range-slider-handle-width: rem-calc(32);
 // $range-slider-handle-width: rem-calc(32);
 // $range-slider-handle-height: rem-calc(22);
 // $range-slider-handle-height: rem-calc(22);
 // $range-slider-handle-position-top: rem-calc(-5);
 // $range-slider-handle-position-top: rem-calc(-5);
@@ -1099,7 +1120,7 @@ $include-html-global-classes: $include-html-classes;
 // $range-slider-handle-bg-hover-color: scale-color($primary-color, $lightness: -12%);
 // $range-slider-handle-bg-hover-color: scale-color($primary-color, $lightness: -12%);
 // $range-slider-handle-cursor: pointer;
 // $range-slider-handle-cursor: pointer;
 
 
-// $range-slider-disabled-opacity: 0.7;
+// $range-slider-disabled-opacity: .7;
 // $range-slider-disabled-cursor: $cursor-disabled-value;
 // $range-slider-disabled-cursor: $cursor-disabled-value;
 
 
 // 25. Reveal
 // 25. Reveal
@@ -1155,7 +1176,7 @@ $include-html-global-classes: $include-html-classes;
 // $side-nav-link-color: $primary-color;
 // $side-nav-link-color: $primary-color;
 // $side-nav-link-color-active: scale-color($side-nav-link-color, $lightness: 30%);
 // $side-nav-link-color-active: scale-color($side-nav-link-color, $lightness: 30%);
 // $side-nav-link-color-hover: scale-color($side-nav-link-color, $lightness: 30%);
 // $side-nav-link-color-hover: scale-color($side-nav-link-color, $lightness: 30%);
-// $side-nav-link-bg-hover: hsla(0, 0, 0, 0.025);
+// $side-nav-link-bg-hover: hsla(0, 0, 0, .025);
 // $side-nav-link-margin: 0;
 // $side-nav-link-margin: 0;
 // $side-nav-link-padding: rem-calc(7 14);
 // $side-nav-link-padding: rem-calc(7 14);
 // $side-nav-font-size: rem-calc(14);
 // $side-nav-font-size: rem-calc(14);
@@ -1183,6 +1204,7 @@ $include-html-global-classes: $include-html-classes;
 // We use these to control different shared styles for Split Buttons
 // We use these to control different shared styles for Split Buttons
 // $split-button-function-factor: 10%;
 // $split-button-function-factor: 10%;
 // $split-button-pip-color: $white;
 // $split-button-pip-color: $white;
+// $split-button-span-border-color: rgba(255,255,255,0.5);
 // $split-button-pip-color-alt: $oil;
 // $split-button-pip-color-alt: $oil;
 // $split-button-active-bg-tint: rgba(0,0,0,0.1);
 // $split-button-active-bg-tint: rgba(0,0,0,0.1);
 
 
@@ -1265,7 +1287,7 @@ $include-html-global-classes: $include-html-classes;
 // $switch-paddle-bg: $white;
 // $switch-paddle-bg: $white;
 // $switch-paddle-transition-speed: .15s;
 // $switch-paddle-transition-speed: .15s;
 // $switch-paddle-transition-ease: ease-out;
 // $switch-paddle-transition-ease: ease-out;
-// $switch-active-color: $primary-color; 
+// $switch-active-color: $primary-color;
 
 
 // 30. Tables
 // 30. Tables
 // - - - - - - - - - - - - - - - - - - - - - - - - -
 // - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -1296,7 +1318,7 @@ $include-html-global-classes: $include-html-classes;
 // $table-foot-padding: $table-head-padding;
 // $table-foot-padding: $table-head-padding;
 
 
 // These control the caption
 // These control the caption
-// table-caption-bg: transparent;
+// $table-caption-bg: transparent;
 // $table-caption-font-color: $table-head-font-color;
 // $table-caption-font-color: $table-head-font-color;
 // $table-caption-font-size: rem-calc(16);
 // $table-caption-font-size: rem-calc(16);
 // $table-caption-font-weight: bold;
 // $table-caption-font-weight: bold;
@@ -1401,7 +1423,7 @@ $include-html-global-classes: $include-html-classes;
 // $topbar-link-font-size: rem-calc(13);
 // $topbar-link-font-size: rem-calc(13);
 // $topbar-link-hover-lightness: -10%; // Darken by 10%
 // $topbar-link-hover-lightness: -10%; // Darken by 10%
 // $topbar-link-bg: $topbar-bg;
 // $topbar-link-bg: $topbar-bg;
-// $topbar-link-bg-hover: $oil;
+// $topbar-link-bg-hover: $jet;
 // $topbar-link-bg-color-hover: $charcoal;
 // $topbar-link-bg-color-hover: $charcoal;
 // $topbar-link-bg-active: $primary-color;
 // $topbar-link-bg-active: $primary-color;
 // $topbar-link-bg-active-hover: scale-color($primary-color, $lightness: -14%);
 // $topbar-link-bg-active-hover: scale-color($primary-color, $lightness: -14%);
@@ -1410,7 +1432,7 @@ $include-html-global-classes: $include-html-classes;
 // $topbar-link-padding: ($topbar-height / 3);
 // $topbar-link-padding: ($topbar-height / 3);
 // $topbar-back-link-size: rem-calc(18);
 // $topbar-back-link-size: rem-calc(18);
 // $topbar-link-dropdown-padding: rem-calc(20);
 // $topbar-link-dropdown-padding: rem-calc(20);
-// $topbar-button-font-size: 0.75rem;
+// $topbar-button-font-size: .75rem;
 // $topbar-button-top: 7px;
 // $topbar-button-top: 7px;
 
 
 // Style the top bar dropdown elements
 // Style the top bar dropdown elements
@@ -1418,11 +1440,11 @@ $include-html-global-classes: $include-html-classes;
 // $topbar-dropdown-link-color: $white;
 // $topbar-dropdown-link-color: $white;
 // $topbar-dropdown-link-color-hover: $topbar-link-color-hover;
 // $topbar-dropdown-link-color-hover: $topbar-link-color-hover;
 // $topbar-dropdown-link-bg: $oil;
 // $topbar-dropdown-link-bg: $oil;
-// $topbar-dropdown-link-bg-hover: $oil;
+// $topbar-dropdown-link-bg-hover: $jet;
 // $topbar-dropdown-link-weight: $font-weight-normal;
 // $topbar-dropdown-link-weight: $font-weight-normal;
 // $topbar-dropdown-toggle-size: 5px;
 // $topbar-dropdown-toggle-size: 5px;
 // $topbar-dropdown-toggle-color: $white;
 // $topbar-dropdown-toggle-color: $white;
-// $topbar-dropdown-toggle-alpha: 0.4;
+// $topbar-dropdown-toggle-alpha: .4;
 
 
 // $topbar-dropdown-label-color: $monsoon;
 // $topbar-dropdown-label-color: $monsoon;
 // $topbar-dropdown-label-text-transform: uppercase;
 // $topbar-dropdown-label-text-transform: uppercase;
@@ -1444,7 +1466,7 @@ $include-html-global-classes: $include-html-classes;
 // $topbar-transition-speed: 300ms;
 // $topbar-transition-speed: 300ms;
 // Using rem-calc for the below breakpoint causes issues with top bar
 // Using rem-calc for the below breakpoint causes issues with top bar
 // $topbar-breakpoint: #{lower-bound($medium-range)}; // Change to 9999px for always mobile layout
 // $topbar-breakpoint: #{lower-bound($medium-range)}; // Change to 9999px for always mobile layout
-// $topbar-media-query: $medium-up;
+// $topbar-media-query: "#{$screen} and (min-width:#{lower-bound($topbar-breakpoint)})";
 
 
 // Top-bar input styles
 // Top-bar input styles
 // $topbar-input-height: rem-calc(28);
 // $topbar-input-height: rem-calc(28);
@@ -1456,7 +1478,7 @@ $include-html-global-classes: $include-html-classes;
 // Sticky Class
 // Sticky Class
 // $topbar-sticky-class: ".sticky";
 // $topbar-sticky-class: ".sticky";
 // $topbar-arrows: true; //Set false to remove the triangle icon from the menu item
 // $topbar-arrows: true; //Set false to remove the triangle icon from the menu item
-// $topbar-dropdown-arrows: true; //Set false to remove the \00bb >> text from dropdown subnavigation li// 
+// $topbar-dropdown-arrows: true; //Set false to remove the \00bb >> text from dropdown subnavigation li//
 
 
 // 36. Visibility Classes
 // 36. Visibility Classes
 // - - - - - - - - - - - - - - - - - - - - - - - - -
 // - - - - - - - - - - - - - - - - - - - - - - - - -

+ 12 - 8
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_accordion.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -14,6 +14,7 @@ $accordion-navigation-padding: rem-calc(16) !default;
 $accordion-navigation-bg-color: $silver !default;
 $accordion-navigation-bg-color: $silver !default;
 $accordion-navigation-hover-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -5%) !default;
 $accordion-navigation-hover-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -5%) !default;
 $accordion-navigation-active-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -3%) !default;
 $accordion-navigation-active-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -3%) !default;
+$accordion-navigation-active-font-color: $jet !default;
 $accordion-navigation-font-color: $jet !default;
 $accordion-navigation-font-color: $jet !default;
 $accordion-navigation-font-size: rem-calc(16) !default;
 $accordion-navigation-font-size: rem-calc(16) !default;
 $accordion-navigation-font-family: $body-font-family !default;
 $accordion-navigation-font-family: $body-font-family !default;
@@ -32,7 +33,7 @@ $accordion-content-active-bg-color: $white !default;
   margin-bottom: 0;
   margin-bottom: 0;
 }
 }
 
 
-//  Mixin: accordion-navigation( $bg, $hover-bg, $active-bg, $padding, $active_class,  $font-color, $font-size, $font-family){
+//  Mixin: accordion-navigation( $bg, $hover-bg, $active-bg, $padding, $active_class,  $font-color, $font-size, $font-family) {
 //    @params $bg-color: [ color or string ]: Specify the background color for the navigation element
 //    @params $bg-color: [ color or string ]: Specify the background color for the navigation element
 //    @params $hover-bg-color [ color or string ]: Specify the background color for the navigation element when hovered
 //    @params $hover-bg-color [ color or string ]: Specify the background color for the navigation element when hovered
 //    @params $active-bg [ color or string ]: Specify the background color for the navigation element when clicked and not released.
 //    @params $active-bg [ color or string ]: Specify the background color for the navigation element when clicked and not released.
@@ -40,8 +41,9 @@ $accordion-content-active-bg-color: $white !default;
 //    @params $font-color [ color or string ]: Color of the font for accordion
 //    @params $font-color [ color or string ]: Color of the font for accordion
 //    @params $font-size [ number ]: Specifiy the font-size of the text inside the navigation element
 //    @params $font-size [ number ]: Specifiy the font-size of the text inside the navigation element
 //    @params $font-family [ string ]: Specify the font family for the text of the navigation of the accorion
 //    @params $font-family [ string ]: Specify the font family for the text of the navigation of the accorion
+//    @params $active-font [ color or string ]: Specify the font color for the navigation element when active.
 
 
-@mixin accordion-navigation( $bg: $accordion-navigation-bg-color, $hover-bg: $accordion-navigation-hover-bg-color, $active-bg: $accordion-navigation-active-bg-color, $padding: $accordion-navigation-padding, $active_class: 'active',  $font-color: $accordion-navigation-font-color, $font-size: $accordion-navigation-font-size, $font-family: $accordion-navigation-font-family ){
+@mixin accordion-navigation( $bg: $accordion-navigation-bg-color, $hover-bg: $accordion-navigation-hover-bg-color, $active-bg: $accordion-navigation-active-bg-color, $padding: $accordion-navigation-padding, $active_class: 'active',  $font-color: $accordion-navigation-font-color, $font-size: $accordion-navigation-font-size, $font-family: $accordion-navigation-font-family, $active-font: $accordion-navigation-active-font-color ) {
   display: block;
   display: block;
   margin-bottom: 0 !important;
   margin-bottom: 0 !important;
   @if type-of($active_class) != "string" {
   @if type-of($active_class) != "string" {
@@ -50,6 +52,7 @@ $accordion-content-active-bg-color: $white !default;
   @else {
   @else {
     &.#{ $active_class } > a {
     &.#{ $active_class } > a {
       background: $active-bg;
       background: $active-bg;
+      color: $active-font;
     }
     }
   }
   }
   > a {
   > a {
@@ -98,7 +101,7 @@ $accordion-content-active-bg-color: $white !default;
 //    @params $bg [ color  ]: Background color for the content when it's visible
 //    @params $bg [ color  ]: Background color for the content when it's visible
 //    @params $active_class [ string ]: Class name used to keep track of which accordion tab should be visible.
 //    @params $active_class [ string ]: Class name used to keep track of which accordion tab should be visible.
 
 
-@mixin accordion-content($bg: $accordion-content-active-bg-color, $padding: $accordion-content-padding, $active_class: 'active'){
+@mixin accordion-content($bg: $accordion-content-active-bg-color, $padding: $accordion-content-padding, $active_class: 'active') {
   display: none;
   display: none;
   @if type-of($padding) != "number" {
   @if type-of($padding) != "number" {
     @warn "#{$padding} was read as a #{type-of($padding)}";
     @warn "#{$padding} was read as a #{type-of($padding)}";
@@ -118,8 +121,8 @@ $accordion-content-active-bg-color: $white !default;
   }
   }
   @else {
   @else {
     &.#{$active_class} {
     &.#{$active_class} {
-      display: block;
       background: $bg;
       background: $bg;
+      display: block;
     }
     }
   }
   }
 }
 }
@@ -129,17 +132,18 @@ $accordion-content-active-bg-color: $white !default;
     .accordion {
     .accordion {
       @include clearfix;
       @include clearfix;
       margin-bottom: 0;
       margin-bottom: 0;
+      margin-left: 0;
       .accordion-navigation, dd {
       .accordion-navigation, dd {
         display: block;
         display: block;
         margin-bottom: 0 !important;
         margin-bottom: 0 !important;
-        &.active > a { background: $accordion-navigation-active-bg-color; }
+        &.active > a { background: $accordion-navigation-active-bg-color; color: $accordion-navigation-active-font-color; }
         > a {
         > a {
           background: $accordion-navigation-bg-color;
           background: $accordion-navigation-bg-color;
           color: $accordion-navigation-font-color;
           color: $accordion-navigation-font-color;
-          padding: $accordion-navigation-padding;
           display: block;
           display: block;
           font-family: $accordion-navigation-font-family;
           font-family: $accordion-navigation-font-family;
           font-size: $accordion-navigation-font-size;
           font-size: $accordion-navigation-font-size;
+          padding: $accordion-navigation-padding;
           &:hover { background: $accordion-navigation-hover-bg-color; }
           &:hover { background: $accordion-navigation-hover-bg-color; }
         }
         }
 
 
@@ -147,8 +151,8 @@ $accordion-content-active-bg-color: $white !default;
           display: none;
           display: none;
           padding: $accordion-content-padding;
           padding: $accordion-content-padding;
           &.active {
           &.active {
-            display: block;
             background: $accordion-content-active-bg-color;
             background: $accordion-content-active-bg-color;
+            display: block;
           }
           }
         }
         }
       }
       }

+ 11 - 11
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_alert-boxes.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // Alert Box Variables
 // Alert Box Variables
@@ -35,8 +35,8 @@ $alert-close-color: $oil !default;
 $alert-close-top: 50% !default;
 $alert-close-top: 50% !default;
 $alert-close-position: rem-calc(4) !default;
 $alert-close-position: rem-calc(4) !default;
 $alert-close-font-size: rem-calc(22) !default;
 $alert-close-font-size: rem-calc(22) !default;
-$alert-close-opacity: 0.3 !default;
-$alert-close-opacity-hover: 0.5 !default;
+$alert-close-opacity: .3 !default;
+$alert-close-opacity-hover: .5 !default;
 $alert-close-padding: 0 6px 4px !default;
 $alert-close-padding: 0 6px 4px !default;
 $alert-close-background: inherit !default;
 $alert-close-background: inherit !default;
 
 
@@ -55,11 +55,11 @@ $alert-transition-ease: ease-out !default;
   border-style: $alert-border-style;
   border-style: $alert-border-style;
   border-width: $alert-border-width;
   border-width: $alert-border-width;
   display: block;
   display: block;
+  font-size: $alert-font-size;
   font-weight: $alert-font-weight;
   font-weight: $alert-font-weight;
   margin-bottom: $alert-bottom-margin;
   margin-bottom: $alert-bottom-margin;
-  position: relative;
   padding: $alert-padding-top $alert-padding-opposite-direction $alert-padding-bottom $alert-padding-default-float;
   padding: $alert-padding-top $alert-padding-opposite-direction $alert-padding-bottom $alert-padding-default-float;
-  font-size: $alert-font-size;
+  position: relative;
   @include single-transition(opacity, $alert-transition-speed, $alert-transition-ease)
   @include single-transition(opacity, $alert-transition-speed, $alert-transition-ease)
 }
 }
 
 
@@ -83,16 +83,16 @@ $alert-transition-ease: ease-out !default;
 
 
 // We use this to create the close button.
 // We use this to create the close button.
 @mixin alert-close {
 @mixin alert-close {
+  #{$opposite-direction}: $alert-close-position;
+  background: $alert-close-background;
+  color: $alert-close-color;
   font-size: $alert-close-font-size;
   font-size: $alert-close-font-size;
-  padding: $alert-close-padding;
   line-height: .9;
   line-height: .9;
-  position: absolute;
-  top: $alert-close-top;
   margin-top: -($alert-close-font-size / 2);
   margin-top: -($alert-close-font-size / 2);
-  #{$opposite-direction}: $alert-close-position;
-  color: $alert-close-color;
   opacity: $alert-close-opacity;
   opacity: $alert-close-opacity;
-  background: $alert-close-background;
+  padding: $alert-close-padding;
+  position: absolute;
+  top: $alert-close-top;
   &:hover,
   &:hover,
   &:focus { opacity: $alert-close-opacity-hover; }
   &:focus { opacity: $alert-close-opacity-hover; }
 }
 }

+ 13 - 13
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_block-grid.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // Block Grid Variables
 // Block Grid Variables
@@ -48,10 +48,10 @@ $block-grid-media-queries: true !default;
     }
     }
     @include clearfix;
     @include clearfix;
 
 
-    &>li {
+    > li {
       display: block;
       display: block;
-      height: auto;
       float: $default-float;
       float: $default-float;
+      height: auto;
       @if $include-spacing {
       @if $include-spacing {
         padding: 0 ($spacing/2) $spacing;
         padding: 0 ($spacing/2) $spacing;
       }
       }
@@ -59,12 +59,12 @@ $block-grid-media-queries: true !default;
   }
   }
 
 
   @if $per-row {
   @if $per-row {
-    &>li {
-      width: 100%/$per-row;
+    > li {
+      list-style: none;
       @if $include-spacing {
       @if $include-spacing {
         padding: 0 ($spacing/2) $spacing;
         padding: 0 ($spacing/2) $spacing;
       }
       }
-      list-style: none;
+      width: 100%/$per-row;
 
 
       &:nth-of-type(1n) { clear: none; }
       &:nth-of-type(1n) { clear: none; }
       &:nth-of-type(#{$per-row}n+1) { clear: both; }
       &:nth-of-type(#{$per-row}n+1) { clear: both; }
@@ -93,10 +93,10 @@ $block-grid-media-queries: true !default;
 // Generate presentational markup for block grid.
 // Generate presentational markup for block grid.
 //
 //
 // $size - Name of class to use, i.e. "large" will generate .large-block-grid-1, .large-block-grid-2, etc.
 // $size - Name of class to use, i.e. "large" will generate .large-block-grid-1, .large-block-grid-2, etc.
-@mixin block-grid-html-classes($size,$include-spacing) {
+@mixin block-grid-html-classes($size, $include-spacing) {
   @for $i from 1 through $block-grid-elements {
   @for $i from 1 through $block-grid-elements {
     .#{$size}-block-grid-#{($i)} {
     .#{$size}-block-grid-#{($i)} {
-      @include block-grid($i,$block-grid-default-spacing,$include-spacing,false);
+      @include block-grid($i, $block-grid-default-spacing, $include-spacing, false);
     }
     }
   }
   }
 }
 }
@@ -108,24 +108,24 @@ $block-grid-media-queries: true !default;
 
 
     @if $block-grid-media-queries {
     @if $block-grid-media-queries {
       @media #{$small-up} {
       @media #{$small-up} {
-        @include block-grid-html-classes($size:small,$include-spacing:false);
+        @include block-grid-html-classes($size:small, $include-spacing:false);
       }
       }
 
 
       @media #{$medium-up} {
       @media #{$medium-up} {
-        @include block-grid-html-classes($size:medium,$include-spacing:false);
+        @include block-grid-html-classes($size:medium, $include-spacing:false);
       }
       }
 
 
       @media #{$large-up} {
       @media #{$large-up} {
-        @include block-grid-html-classes($size:large,$include-spacing:false);
+        @include block-grid-html-classes($size:large, $include-spacing:false);
       }
       }
 
 
       @if $include-xl-html-block-grid-classes {
       @if $include-xl-html-block-grid-classes {
         @media #{$xlarge-up} {
         @media #{$xlarge-up} {
-          @include block-grid-html-classes($size:xlarge,$include-spacing:false);
+          @include block-grid-html-classes($size:xlarge, $include-spacing:false);
         }
         }
 
 
         @media #{$xxlarge-up} {
         @media #{$xxlarge-up} {
-          @include block-grid-html-classes($size:xxlarge,$include-spacing:false);
+          @include block-grid-html-classes($size:xxlarge, $include-spacing:false);
         }
         }
       }
       }
     }
     }

+ 19 - 19
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_breadcrumbs.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // Breadcrumb Variables
 // Breadcrumb Variables
@@ -34,6 +34,7 @@ $crumb-link-decor: underline !default;
 // We use these to control the slash between breadcrumbs
 // We use these to control the slash between breadcrumbs
 $crumb-slash-color: $base !default;
 $crumb-slash-color: $base !default;
 $crumb-slash: "/" !default;
 $crumb-slash: "/" !default;
+$crumb-slash-position: 1px !default;
 
 
 //
 //
 // Breadcrumb Mixins
 // Breadcrumb Mixins
@@ -41,13 +42,13 @@ $crumb-slash: "/" !default;
 
 
 // We use this mixin to create a container around our breadcrumbs
 // We use this mixin to create a container around our breadcrumbs
 @mixin crumb-container {
 @mixin crumb-container {
-  display: block;
-  padding: $crumb-padding;
-  overflow: hidden;
-  margin-#{$default-float}: 0;
-  list-style: none;
   border-style: $crumb-border-style;
   border-style: $crumb-border-style;
   border-width: $crumb-border-size;
   border-width: $crumb-border-size;
+  display: block;
+  list-style: none;
+  margin-#{$default-float}: 0;
+  overflow: hidden;
+  padding: $crumb-padding;
 
 
   // We control which background color and border come through.
   // We control which background color and border come through.
   background-color: $crumb-bg;
   background-color: $crumb-bg;
@@ -58,12 +59,12 @@ $crumb-slash: "/" !default;
 @mixin crumbs {
 @mixin crumbs {
 
 
   // A normal state will make the links look and act like clickable breadcrumbs.
   // A normal state will make the links look and act like clickable breadcrumbs.
-  margin: 0;
+  color: $crumb-font-color;
   float: $default-float;
   float: $default-float;
   font-size: $crumb-font-size;
   font-size: $crumb-font-size;
   line-height: $crumb-font-size;
   line-height: $crumb-font-size;
+  margin: 0;
   text-transform: $crumb-font-transform;
   text-transform: $crumb-font-transform;
-  color: $crumb-font-color;
 
 
   &:hover a, &:focus a { text-decoration: $crumb-link-decor; }
   &:hover a, &:focus a { text-decoration: $crumb-link-decor; }
 
 
@@ -73,11 +74,11 @@ $crumb-slash: "/" !default;
 
 
   // Current is for the link of the current page
   // Current is for the link of the current page
   &.current {
   &.current {
-    cursor: $cursor-default-value;
     color: $crumb-font-color-current;
     color: $crumb-font-color-current;
+    cursor: $cursor-default-value;
     a {
     a {
-      cursor: $cursor-default-value;
       color: $crumb-font-color-current;
       color: $crumb-font-color-current;
+      cursor: $cursor-default-value;
     }
     }
 
 
     &:hover, &:hover a,
     &:hover, &:hover a,
@@ -93,18 +94,18 @@ $crumb-slash: "/" !default;
     &:hover a,
     &:hover a,
     &:focus,
     &:focus,
     a:focus {
     a:focus {
-      text-decoration: none;
       color: $crumb-font-color-unavailable;
       color: $crumb-font-color-unavailable;
       cursor: $cursor-disabled-value;
       cursor: $cursor-disabled-value;
+      text-decoration: none;
     }
     }
   }
   }
 
 
   &:before {
   &:before {
-    content: "#{$crumb-slash}";
     color: $crumb-slash-color;
     color: $crumb-slash-color;
+    content: "#{$crumb-slash}";
     margin: 0 $crumb-side-padding;
     margin: 0 $crumb-side-padding;
     position: relative;
     position: relative;
-    top: 1px;
+    top: $crumb-slash-position;
   }
   }
 
 
   &:first-child:before {
   &:first-child:before {
@@ -119,14 +120,13 @@ $crumb-slash: "/" !default;
       @include crumb-container;
       @include crumb-container;
       @include radius($crumb-radius);
       @include radius($crumb-radius);
 
 
-      &>* {
+      > * {
         @include crumbs;
         @include crumbs;
       }
       }
     }
     }
+    /* Accessibility - hides the forward slash */
+    [aria-label="breadcrumbs"] [aria-hidden="true"]:after {
+      content: "/";
+    }
   }
   }
 }
 }
-
-/* Accessibility - hides the forward slash */
-[aria-label="breadcrumbs"] [aria-hidden="true"]:after {
-  content: "/";
-  }

+ 30 - 22
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_button-groups.scss

@@ -2,8 +2,8 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
-@import "buttons";
+@import 'global';
+@import 'buttons';
 
 
 //
 //
 // Button Group Variables
 // Button Group Variables
@@ -38,7 +38,7 @@ $button-group-border-width: 1px !default;
 
 
   > button, .button {
   > button, .button {
     border-#{$default-float}: $button-group-border-width solid;
     border-#{$default-float}: $button-group-border-width solid;
-    border-color: rgba(255, 255, 255, 0.5);
+    border-color: rgba(255, 255, 255, .5);
   }
   }
 
 
   &:first-child {
   &:first-child {
@@ -47,28 +47,31 @@ $button-group-border-width: 1px !default;
     }
     }
   }
   }
 
 
+  $button-group-display: list-item;
+  $button-group-margin: 0;
+
   // We use this to control the flow, or remove those styles completely.
   // We use this to control the flow, or remove those styles completely.
   @if $float {
   @if $float {
-    margin: 0;
+    $button-group-display: list-item;
+    $button-group-margin: 0;
     float: $float;
     float: $float;
-    display: list-item;
     // Make sure the first child doesn't get the negative margin.
     // Make sure the first child doesn't get the negative margin.
     &:first-child { margin-#{$default-float}: 0; }
     &:first-child { margin-#{$default-float}: 0; }
   }
   }
   @else {
   @else {
-    margin: 0 -2px;
-    display: inline-block;
+    $button-group-display: inline-block;
+    $button-group-margin: 0 -2px;
   }
   }
 
 
   @if $orientation == vertical {
   @if $orientation == vertical {
-    display:block;
-    margin:0;
+    $button-group-display: block;
+    $button-group-margin: 0;
     > button, .button {
     > button, .button {
-      border-top: $button-group-border-width solid;
-      border-color: rgba(255, 255, 255, 0.5);
+      border-color: rgba(255, 255, 255, .5);
       border-left-width: 0;
       border-left-width: 0;
-      margin:0;
+      border-top: $button-group-border-width solid;
       display: block;
       display: block;
+      margin:0;
     }
     }
     > button {
     > button {
         width: 100%;
         width: 100%;
@@ -81,12 +84,16 @@ $button-group-border-width: 1px !default;
     }
     }
   }
   }
 
 
+  display: $button-group-display;
+  margin: $button-group-margin;
+
+
   // We use these to control left and right radius on first/last buttons in the group.
   // We use these to control left and right radius on first/last buttons in the group.
   @if $radius == true {
   @if $radius == true {
     &,
     &,
-    & > a,
-    & > button,
-    & > .button { @include radius(0); }
+    > a,
+    > button,
+    > .button { @include radius(0); }
     &:first-child,
     &:first-child,
     &:first-child > a,
     &:first-child > a,
     &:first-child > button,
     &:first-child > button,
@@ -112,9 +119,9 @@ $button-group-border-width: 1px !default;
   }
   }
   @else if $radius {
   @else if $radius {
     &,
     &,
-    & > a,
-    & > button,
-    & > .button { @include radius(0); }
+    > a,
+    > button,
+    > .button { @include radius(0); }
     &:first-child,
     &:first-child,
     &:first-child > a,
     &:first-child > a,
     &:first-child > button,
     &:first-child > button,
@@ -153,18 +160,19 @@ $button-group-border-width: 1px !default;
       @for $i from 2 through 8 {
       @for $i from 2 through 8 {
         &.even-#{$i} li { @include button-group-style($even:$i, $float:null); }
         &.even-#{$i} li { @include button-group-style($even:$i, $float:null); }
       }
       }
-      
-      & > li { @include button-group-style(); }
+
+      > li { @include button-group-style(); }
 
 
       &.stack {
       &.stack {
-        & > li { @include button-group-style($orientation:vertical); float: none; }
+        > li { @include button-group-style($orientation:vertical); float: none; }
       }
       }
 
 
       &.stack-for-small {
       &.stack-for-small {
-        & > li {
+        > li {
           @include button-group-style($orientation:horizontal);
           @include button-group-style($orientation:horizontal);
           @media #{$small-only} {
           @media #{$small-only} {
             @include button-group-style($orientation:vertical);
             @include button-group-style($orientation:vertical);
+            width: 100%;
           }
           }
         }
         }
       }
       }

+ 29 - 28
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_buttons.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -39,14 +39,19 @@ $button-border-style: solid !default;
 $button-bg-color: $primary-color !default;
 $button-bg-color: $primary-color !default;
 $button-bg-hover: scale-color($button-bg-color, $lightness: $button-function-factor) !default;
 $button-bg-hover: scale-color($button-bg-color, $lightness: $button-function-factor) !default;
 $button-border-color: $button-bg-hover !default;
 $button-border-color: $button-bg-hover !default;
+$secondary-button-bg-color: $secondary-color !default;
 $secondary-button-bg-hover: scale-color($secondary-color, $lightness: $button-function-factor) !default;
 $secondary-button-bg-hover: scale-color($secondary-color, $lightness: $button-function-factor) !default;
 $secondary-button-border-color: $secondary-button-bg-hover !default;
 $secondary-button-border-color: $secondary-button-bg-hover !default;
+$success-button-bg-color: $success-color !default;
 $success-button-bg-hover: scale-color($success-color, $lightness: $button-function-factor) !default;
 $success-button-bg-hover: scale-color($success-color, $lightness: $button-function-factor) !default;
 $success-button-border-color: $success-button-bg-hover !default;
 $success-button-border-color: $success-button-bg-hover !default;
+$alert-button-bg-color: $alert-color !default;
 $alert-button-bg-hover: scale-color($alert-color, $lightness: $button-function-factor) !default;
 $alert-button-bg-hover: scale-color($alert-color, $lightness: $button-function-factor) !default;
 $alert-button-border-color: $alert-button-bg-hover !default;
 $alert-button-border-color: $alert-button-bg-hover !default;
+$warning-button-bg-color: $warning-color !default;
 $warning-button-bg-hover: scale-color($warning-color, $lightness: $button-function-factor) !default;
 $warning-button-bg-hover: scale-color($warning-color, $lightness: $button-function-factor) !default;
 $warning-button-border-color: $warning-button-bg-hover !default;
 $warning-button-border-color: $warning-button-bg-hover !default;
+$info-button-bg-color: $info-color !default;
 $info-button-bg-hover: scale-color($info-color, $lightness: $button-function-factor) !default;
 $info-button-bg-hover: scale-color($info-color, $lightness: $button-function-factor) !default;
 $info-button-border-color: $info-button-bg-hover !default;
 $info-button-border-color: $info-button-bg-hover !default;
 
 
@@ -55,7 +60,7 @@ $button-radius: $global-radius !default;
 $button-round: $global-rounded !default;
 $button-round: $global-rounded !default;
 
 
 // We use this to set default opacity and cursor for disabled buttons.
 // We use this to set default opacity and cursor for disabled buttons.
-$button-disabled-opacity: 0.7 !default;
+$button-disabled-opacity: .7 !default;
 $button-disabled-cursor: $cursor-default-value !default;
 $button-disabled-cursor: $cursor-default-value !default;
 
 
 
 
@@ -69,6 +74,9 @@ $button-disabled-cursor: $cursor-default-value !default;
 
 
 @mixin button-base($style:true, $display:$button-display) {
 @mixin button-base($style:true, $display:$button-display) {
   @if $style {
   @if $style {
+    -webkit-appearance: none;
+    -moz-appearance: none;
+    border-radius:0;
     border-style: $button-border-style;
     border-style: $button-border-style;
     border-width: $button-border-width;
     border-width: $button-border-width;
     cursor: $cursor-pointer-value;
     cursor: $cursor-pointer-value;
@@ -77,11 +85,8 @@ $button-disabled-cursor: $cursor-default-value !default;
     line-height: normal;
     line-height: normal;
     margin: 0 0 $button-margin-bottom;
     margin: 0 0 $button-margin-bottom;
     position: relative;
     position: relative;
-    text-decoration: none;
     text-align: $button-font-align;
     text-align: $button-font-align;
-    -webkit-appearance: none;
-    -moz-appearance: none;
-    border-radius:0;
+    text-decoration: none;
   }
   }
   @if $display { display: $display; }
   @if $display { display: $display; }
 }
 }
@@ -98,11 +103,7 @@ $button-disabled-cursor: $cursor-default-value !default;
   // We control which padding styles come through,
   // We control which padding styles come through,
   // these can be turned off by setting $padding:false
   // these can be turned off by setting $padding:false
   @if $padding {
   @if $padding {
-    padding-top: $padding;
-    padding-#{$opposite-direction}: $padding * 2;
-    padding-bottom: $padding + rem-calc(1);
-    padding-#{$default-float}: $padding * 2;
-
+    padding: $padding ($padding * 2) ($padding + rem-calc(1)) ($padding * 2);
     // We control the font-size based on mixin input.
     // We control the font-size based on mixin input.
     @if      $padding == $button-med { font-size: $button-font-med; }
     @if      $padding == $button-med { font-size: $button-font-med; }
     @else if $padding == $button-tny { font-size: $button-font-tny; }
     @else if $padding == $button-tny { font-size: $button-font-tny; }
@@ -114,14 +115,14 @@ $button-disabled-cursor: $cursor-default-value !default;
   @if $full-width {
   @if $full-width {
     // We still need to check if $padding is set.
     // We still need to check if $padding is set.
     @if $padding {
     @if $padding {
-    padding-top: $padding;
-    padding-bottom: $padding + rem-calc(1);
+      padding-bottom: $padding + rem-calc(1);
+      padding-top: $padding;
     } @else if $padding == false {
     } @else if $padding == false {
-      padding-top:0;
       padding-bottom:0;
       padding-bottom:0;
+      padding-top:0;
     }
     }
-    padding-right: 0;
-    padding-left: 0;
+    padding-left: $button-med;
+    padding-right: $button-med;
     width: 100%;
     width: 100%;
   }
   }
 }
 }
@@ -173,9 +174,9 @@ $button-disabled-cursor: $cursor-default-value !default;
 
 
   // We can set $disabled:true to create a disabled transparent button.
   // We can set $disabled:true to create a disabled transparent button.
   @if $disabled {
   @if $disabled {
+    box-shadow: none;
     cursor: $button-disabled-cursor;
     cursor: $button-disabled-cursor;
     opacity: $button-disabled-opacity;
     opacity: $button-disabled-opacity;
-    box-shadow: none;
     &:hover,
     &:hover,
     &:focus { background-color: $bg; }
     &:focus { background-color: $bg; }
   }
   }
@@ -221,16 +222,16 @@ $button-disabled-cursor: $cursor-default-value !default;
 
 
       @include single-transition(background-color);
       @include single-transition(background-color);
 
 
-      &.secondary { @include button-style($bg:$secondary-color, $bg-hover:$secondary-button-bg-hover, $border-color:$secondary-button-border-color); }
-      &.success   { @include button-style($bg:$success-color, $bg-hover:$success-button-bg-hover, $border-color:$success-button-border-color); }
-      &.alert     { @include button-style($bg:$alert-color, $bg-hover:$alert-button-bg-hover, $border-color:$alert-button-border-color); }
-      &.warning   { @include button-style($bg:$warning-color, $bg-hover:$warning-button-bg-hover, $border-color:$warning-button-border-color); }
-      &.info      { @include button-style($bg:$info-color, $bg-hover:$info-button-bg-hover, $border-color:$info-button-border-color); }
+      &.secondary { @include button-style($bg:$secondary-button-bg-color, $bg-hover:$secondary-button-bg-hover, $border-color:$secondary-button-border-color); }
+      &.success   { @include button-style($bg:$success-button-bg-color, $bg-hover:$success-button-bg-hover, $border-color:$success-button-border-color); }
+      &.alert     { @include button-style($bg:$alert-button-bg-color, $bg-hover:$alert-button-bg-hover, $border-color:$alert-button-border-color); }
+      &.warning   { @include button-style($bg:$warning-button-bg-color, $bg-hover:$warning-button-bg-hover, $border-color:$warning-button-border-color); }
+      &.info      { @include button-style($bg:$info-button-bg-color, $bg-hover:$info-button-bg-hover, $border-color:$info-button-border-color); }
 
 
       &.large  { @include button-size($padding:$button-lrg); }
       &.large  { @include button-size($padding:$button-lrg); }
       &.small  { @include button-size($padding:$button-sml); }
       &.small  { @include button-size($padding:$button-sml); }
       &.tiny   { @include button-size($padding:$button-tny); }
       &.tiny   { @include button-size($padding:$button-tny); }
-      &.expand { @include button-size($padding:null,$full-width:true); }
+      &.expand { @include button-size($full-width:true); }
 
 
       &.left-align  { text-align: left; text-indent: rem-calc(12); }
       &.left-align  { text-align: left; text-indent: rem-calc(12); }
       &.right-align { text-align: right; padding-right: rem-calc(12); }
       &.right-align { text-align: right; padding-right: rem-calc(12); }
@@ -239,11 +240,11 @@ $button-disabled-cursor: $cursor-default-value !default;
       &.round  { @include button-style($bg:false, $radius:$button-round); }
       &.round  { @include button-style($bg:false, $radius:$button-round); }
 
 
       &.disabled, &[disabled] { @include button-style($bg:$button-bg-color, $disabled:true, $bg-hover:$button-bg-hover, $border-color:$button-border-color);
       &.disabled, &[disabled] { @include button-style($bg:$button-bg-color, $disabled:true, $bg-hover:$button-bg-hover, $border-color:$button-border-color);
-        &.secondary { @include button-style($bg:$secondary-color, $disabled:true, $bg-hover:$secondary-button-bg-hover, $border-color:$secondary-button-border-color); }
-        &.success { @include button-style($bg:$success-color, $disabled:true, $bg-hover:$success-button-bg-hover, $border-color:$success-button-border-color); }
-        &.alert { @include button-style($bg:$alert-color, $disabled:true, $bg-hover:$alert-button-bg-hover, $border-color:$alert-button-border-color); }
-        &.warning { @include button-style($bg:$warning-color, $disabled:true, $bg-hover:$warning-button-bg-hover, $border-color:$warning-button-border-color); }
-        &.info { @include button-style($bg:$info-color, $disabled:true, $bg-hover:$info-button-bg-hover, $border-color:$info-button-border-color); }
+        &.secondary { @include button-style($bg:$secondary-button-bg-color, $disabled:true, $bg-hover:$secondary-button-bg-hover, $border-color:$secondary-button-border-color); }
+        &.success { @include button-style($bg:$success-button-bg-color, $disabled:true, $bg-hover:$success-button-bg-hover, $border-color:$success-button-border-color); }
+        &.alert { @include button-style($bg:$alert-button-bg-color, $disabled:true, $bg-hover:$alert-button-bg-hover, $border-color:$alert-button-border-color); }
+        &.warning { @include button-style($bg:$warning-button-bg-color, $disabled:true, $bg-hover:$warning-button-bg-hover, $border-color:$warning-button-border-color); }
+        &.info { @include button-style($bg:$info-button-bg-color, $disabled:true, $bg-hover:$info-button-bg-hover, $border-color:$info-button-border-color); }
       }
       }
     }
     }
 
 

+ 51 - 47
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_clearing.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -25,7 +25,7 @@ $clearing-arrow-color: $clearing-close-color !default;
 
 
 // We use these to style captions
 // We use these to style captions
 $clearing-caption-font-color: $iron !default;
 $clearing-caption-font-color: $iron !default;
-$clearing-caption-font-size: 0.875em !default;
+$clearing-caption-font-size: .875em !default;
 $clearing-caption-padding: 10px 30px 20px !default;
 $clearing-caption-padding: 10px 30px 20px !default;
 
 
 // We use these to make the image and carousel height and style
 // We use these to make the image and carousel height and style
@@ -43,9 +43,9 @@ $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255) !default;
     /* Clearing Styles */
     /* Clearing Styles */
     .clearing-thumbs, #{data('clearing')} {
     .clearing-thumbs, #{data('clearing')} {
       @include clearfix;
       @include clearfix;
-      margin-bottom: 0;
-      margin-#{$default-float}: 0;
       list-style: none;
       list-style: none;
+      margin-#{$default-float}: 0;
+      margin-bottom: 0;
 
 
       li {
       li {
         float: $default-float;
         float: $default-float;
@@ -59,30 +59,30 @@ $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255) !default;
 
 
     .clearing-blackout {
     .clearing-blackout {
       background: $clearing-bg;
       background: $clearing-bg;
-      position: fixed;
-      width: 100%;
       height: 100%;
       height: 100%;
+      position: fixed;
       top: 0;
       top: 0;
-      #{$default-float}: 0;
+      width: 100%;
       z-index: 998;
       z-index: 998;
+      #{$default-float}: 0;
 
 
       .clearing-close { display: block; }
       .clearing-close { display: block; }
     }
     }
 
 
     .clearing-container {
     .clearing-container {
-      position: relative;
-      z-index: 998;
       height: 100%;
       height: 100%;
-      overflow: hidden;
       margin: 0;
       margin: 0;
+      overflow: hidden;
+      position: relative;
+      z-index: 998;
     }
     }
 
 
     .clearing-touch-label {
     .clearing-touch-label {
+      color: $base;
+      font-size: .6em;
+      left: 50%;
       position: absolute;
       position: absolute;
       top: 50%;
       top: 50%;
-      left: 50%;
-      color: $base;
-      font-size: 0.6em;
     }
     }
 
 
     .visible-img {
     .visible-img {
@@ -94,14 +94,18 @@ $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255) !default;
         #{$default-float}: 50%;
         #{$default-float}: 50%;
         top: 50%;
         top: 50%;
         @if $default-float == left {
         @if $default-float == left {
-          transform: translateY(-50%) translateX(-50%);
           -webkit-transform: translateY(-50%) translateX(-50%);
           -webkit-transform: translateY(-50%) translateX(-50%);
+          -moz-transform: translateY(-50%) translateX(-50%);
           -ms-transform: translateY(-50%) translateX(-50%);
           -ms-transform: translateY(-50%) translateX(-50%);
+          -o-transform: translateY(-50%) translateX(-50%);
+          transform: translateY(-50%) translateX(-50%);
         }
         }
         @else {
         @else {
-          transform: translateY(-50%) translateX(50%);
           -webkit-transform: translateY(-50%) translateX(50%);
           -webkit-transform: translateY(-50%) translateX(50%);
+          -moz-transform: translateY(-50%) translateX(50%);
           -ms-transform: translateY(-50%) translateX(50%);
           -ms-transform: translateY(-50%) translateX(50%);
+          -o-transform: translateY(-50%) translateX(50%);
+          transform: translateY(-50%) translateX(50%);
         };
         };
         max-height: 100%;
         max-height: 100%;
         max-width: 100%;
         max-width: 100%;
@@ -109,27 +113,27 @@ $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255) !default;
     }
     }
 
 
     .clearing-caption {
     .clearing-caption {
+      background: $clearing-caption-bg;
+      bottom: 0;
       color: $clearing-caption-font-color;
       color: $clearing-caption-font-color;
       font-size: $clearing-caption-font-size;
       font-size: $clearing-caption-font-size;
       line-height: 1.3;
       line-height: 1.3;
       margin-bottom: 0;
       margin-bottom: 0;
-      text-align: center;
-      bottom: 0;
-      background: $clearing-caption-bg;
-      width: 100%;
       padding: $clearing-caption-padding;
       padding: $clearing-caption-padding;
       position: absolute;
       position: absolute;
+      text-align: center;
+      width: 100%;
       #{$default-float}: 0;
       #{$default-float}: 0;
     }
     }
 
 
     .clearing-close {
     .clearing-close {
-      z-index: 999;
-      padding-#{$default-float}: 20px;
-      padding-top: 10px;
-      font-size: $clearing-close-size;
-      line-height: 1;
       color: $clearing-close-color;
       color: $clearing-close-color;
       display: none;
       display: none;
+      font-size: $clearing-close-size;
+      line-height: 1;
+      padding-#{$default-float}: 20px;
+      padding-top: 10px;
+      z-index: 999;
 
 
       &:hover,
       &:hover,
       &:focus { color: $iron; }
       &:focus { color: $iron; }
@@ -151,23 +155,23 @@ $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255) !default;
     @media #{$medium-up} {
     @media #{$medium-up} {
       .clearing-main-prev,
       .clearing-main-prev,
       .clearing-main-next {
       .clearing-main-next {
-        position: absolute;
         height: 100%;
         height: 100%;
-        width: 40px;
+        position: absolute;
         top: 0;
         top: 0;
-        & > span {
+        width: 40px;
+        > span {
+          border: solid $clearing-arrow-size;
+          display: block;
+          height: 0;
           position: absolute;
           position: absolute;
           top: 50%;
           top: 50%;
-          display: block;
           width: 0;
           width: 0;
-          height: 0;
-          border: solid $clearing-arrow-size;
-          &:hover { opacity: 0.8; }
+          &:hover { opacity: .8; }
         }
         }
       }
       }
       .clearing-main-prev {
       .clearing-main-prev {
         #{$default-float}: 0;
         #{$default-float}: 0;
-        & > span {
+        > span {
           #{$default-float}: 5px;
           #{$default-float}: 5px;
           border-color: transparent;
           border-color: transparent;
           border-#{$opposite-direction}-color: $clearing-arrow-color;
           border-#{$opposite-direction}-color: $clearing-arrow-color;
@@ -175,14 +179,14 @@ $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255) !default;
       }
       }
       .clearing-main-next {
       .clearing-main-next {
         #{$opposite-direction}: 0;
         #{$opposite-direction}: 0;
-        & > span {
+        > span {
           border-color: transparent;
           border-color: transparent;
           border-#{$default-float}-color: $clearing-arrow-color;
           border-#{$default-float}-color: $clearing-arrow-color;
         }
         }
       }
       }
 
 
       .clearing-main-prev.disabled,
       .clearing-main-prev.disabled,
-      .clearing-main-next.disabled { opacity: 0.3; }
+      .clearing-main-next.disabled { opacity: .3; }
 
 
       .clearing-assembled .clearing-container {
       .clearing-assembled .clearing-container {
 
 
@@ -192,7 +196,7 @@ $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255) !default;
           margin-top: 10px;
           margin-top: 10px;
           text-align: center;
           text-align: center;
 
 
-          & > ul {
+          > ul {
             display: inline-block;
             display: inline-block;
             z-index: 999;
             z-index: 999;
             height: 100%;
             height: 100%;
@@ -200,17 +204,17 @@ $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255) !default;
             float: none;
             float: none;
 
 
             li {
             li {
+              clear: none;
+              cursor: $cursor-pointer-value;
               display: block;
               display: block;
-              width: $clearing-carousel-thumb-width;
-              min-height: inherit;
               float: $default-float;
               float: $default-float;
-              overflow: hidden;
               margin-#{$opposite-direction}: 0;
               margin-#{$opposite-direction}: 0;
+              min-height: inherit;
+              opacity: .4;
+              overflow: hidden;
               padding: 0;
               padding: 0;
               position: relative;
               position: relative;
-              cursor: $cursor-pointer-value;
-              opacity: 0.4;
-              clear: none;
+              width: $clearing-carousel-thumb-width;
 
 
               &.fix-height {
               &.fix-height {
                 img {
                 img {
@@ -226,29 +230,29 @@ $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255) !default;
               }
               }
 
 
               img {
               img {
-              cursor: $cursor-pointer-value !important;
-              width: 100% !important;
+                cursor: $cursor-pointer-value !important;
+                width: 100% !important;
               }
               }
 
 
               &.visible { opacity: 1; }
               &.visible { opacity: 1; }
-              &:hover { opacity: 0.8; }
+              &:hover { opacity: .8; }
             }
             }
           }
           }
         }
         }
 
 
         .visible-img {
         .visible-img {
           background: $clearing-img-bg;
           background: $clearing-img-bg;
-          overflow: hidden;
           height: $clearing-active-img-height;
           height: $clearing-active-img-height;
+          overflow: hidden;
         }
         }
       }
       }
 
 
       .clearing-close {
       .clearing-close {
+        padding-#{$default-float}: 0;
+        padding-top: 0;
         position: absolute;
         position: absolute;
         top: 10px;
         top: 10px;
         #{$opposite-direction}: 20px;
         #{$opposite-direction}: 20px;
-        padding-#{$default-float}: 0;
-        padding-top: 0;
       }
       }
     }
     }
 
 

+ 10 - 11
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_dropdown-buttons.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -53,23 +53,22 @@ $dropdown-button-pip-top-lrg: (-$button-pip-lrg / 2) + rem-calc(3) !default;
 // $pip-color - Color of the little triangle that points to the dropdown. Default: $white.
 // $pip-color - Color of the little triangle that points to the dropdown. Default: $white.
 // $base-style - Add in base-styles. This can be set to false. Default:true
 // $base-style - Add in base-styles. This can be set to false. Default:true
 
 
-@mixin dropdown-button($padding:medium, $pip-color:$white, $base-style:true) {
+@mixin dropdown-button($padding:medium, $pip-color:$dropdown-button-pip-color, $base-style:true) {
 
 
   // We add in base styles, but they can be negated by setting to 'false'.
   // We add in base styles, but they can be negated by setting to 'false'.
   @if $base-style {
   @if $base-style {
     position: relative;
     position: relative;
-    outline: none;
 
 
     // This creates the base styles for the triangle pip
     // This creates the base styles for the triangle pip
     &::after {
     &::after {
-      position: absolute;
+      border-color: $dropdown-button-pip-color transparent transparent transparent;
+      border-style: solid;
       content: "";
       content: "";
-      width: 0;
-      height: 0;
       display: block;
       display: block;
-      border-style: solid;
-      border-color: $dropdown-button-pip-color transparent transparent transparent;
+      height: 0;
+      position: absolute;
       top: 50%;
       top: 50%;
+      width: 0;
     }
     }
   }
   }
 
 
@@ -122,9 +121,9 @@ $dropdown-button-pip-top-lrg: (-$button-pip-lrg / 2) + rem-calc(3) !default;
 @include exports("dropdown-button") {
 @include exports("dropdown-button") {
   @if $include-html-button-classes {
   @if $include-html-button-classes {
     .dropdown.button, button.dropdown { @include dropdown-button;
     .dropdown.button, button.dropdown { @include dropdown-button;
-      &.tiny { @include dropdown-button(tiny,$base-style:false); }
-      &.small { @include dropdown-button(small,$base-style:false); }
-      &.large { @include dropdown-button(large,$base-style:false); }
+      &.tiny { @include dropdown-button(tiny, $base-style:false); }
+      &.small { @include dropdown-button(small, $base-style:false); }
+      &.large { @include dropdown-button(large, $base-style:false); }
       &.secondary:after { border-color: $dropdown-button-pip-color-alt transparent transparent transparent; }
       &.secondary:after { border-color: $dropdown-button-pip-color-alt transparent transparent transparent; }
     }
     }
   }
   }

+ 45 - 38
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_dropdown.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -64,60 +64,67 @@ $f-dropdown-radius: $global-radius !default;
 // $triangle - Sets if dropdown has triangle. Default:true.
 // $triangle - Sets if dropdown has triangle. Default:true.
 // $max-width - Default: $f-dropdown-max-width || 200px.
 // $max-width - Default: $f-dropdown-max-width || 200px.
 @mixin dropdown-container($content:list, $triangle:true, $max-width:$f-dropdown-max-width) {
 @mixin dropdown-container($content:list, $triangle:true, $max-width:$f-dropdown-max-width) {
-  position: absolute;
+  display: none;
   left: -9999px;
   left: -9999px;
   list-style: $f-dropdown-list-style;
   list-style: $f-dropdown-list-style;
   margin-#{$default-float}: 0;
   margin-#{$default-float}: 0;
-  outline: none;
+  position: absolute;
+
+  &.open {
+    display: block;
+  }
 
 
   > *:first-child { margin-top: 0; }
   > *:first-child { margin-top: 0; }
   > *:last-child { margin-bottom: 0; }
   > *:last-child { margin-bottom: 0; }
 
 
   @if $content == list {
   @if $content == list {
-    width: 100%;
-    max-height: $f-dropdown-max-height;
-    height: $f-dropdown-height;
     background: $f-dropdown-bg;
     background: $f-dropdown-bg;
     border: $f-dropdown-border-style $f-dropdown-border-width $f-dropdown-border-color;
     border: $f-dropdown-border-style $f-dropdown-border-width $f-dropdown-border-color;
     font-size: $f-dropdown-font-size;
     font-size: $f-dropdown-font-size;
+    height: $f-dropdown-height;
+    max-height: $f-dropdown-max-height;
+    width: 100%;
     z-index: 89;
     z-index: 89;
   }
   }
   @else if $content == content {
   @else if $content == content {
-    padding: $f-dropdown-content-padding;
-    width: 100%;
-    height: $f-dropdown-height;
-    max-height: $f-dropdown-max-height;
     background: $f-dropdown-bg;
     background: $f-dropdown-bg;
     border: $f-dropdown-border-style $f-dropdown-border-width $f-dropdown-border-color;
     border: $f-dropdown-border-style $f-dropdown-border-width $f-dropdown-border-color;
     font-size: $f-dropdown-font-size;
     font-size: $f-dropdown-font-size;
+    height: $f-dropdown-height;
+    max-height: $f-dropdown-max-height;
+    padding: $f-dropdown-content-padding;
+    width: 100%;
     z-index: 89;
     z-index: 89;
   }
   }
 
 
   @if $triangle == bottom {
   @if $triangle == bottom {
     margin-top: $f-dropdown-margin-top;
     margin-top: $f-dropdown-margin-top;
 
 
-    &:before {
-      @include css-triangle($f-dropdown-triangle-size, $f-dropdown-triangle-color, bottom);
-      position: absolute;
-      top: -($f-dropdown-triangle-size * 2);
-      #{$default-float}: $f-dropdown-triangle-side-offset;
-      z-index: 89;
-    }
-    &:after {
-      @include css-triangle($f-dropdown-triangle-size + 1, $f-dropdown-border-color, bottom);
-      position: absolute;
-      top: -(($f-dropdown-triangle-size + 1) * 2);
-      #{$default-float}: $f-dropdown-triangle-side-offset - 1;
-      z-index: 88;
-    }
+    @if $f-dropdown-triangle-size != 0px {
 
 
-    &.right:before {
-      #{$default-float}: auto;
-      #{$opposite-direction}: $f-dropdown-triangle-side-offset;
-    }
-    &.right:after {
-      #{$default-float}: auto;
-      #{$opposite-direction}: $f-dropdown-triangle-side-offset - 1;
+      &:before {
+        @include css-triangle($f-dropdown-triangle-size, $f-dropdown-triangle-color, bottom);
+        position: absolute;
+        top: -($f-dropdown-triangle-size * 2);
+        #{$default-float}: $f-dropdown-triangle-side-offset;
+        z-index: 89;
+      }
+      &:after {
+        @include css-triangle($f-dropdown-triangle-size + 1, $f-dropdown-border-color, bottom);
+        position: absolute;
+        top: -(($f-dropdown-triangle-size + 1) * 2);
+        #{$default-float}: $f-dropdown-triangle-side-offset - 1;
+        z-index: 88;
+      }
+
+      &.right:before {
+        #{$default-float}: auto;
+        #{$opposite-direction}: $f-dropdown-triangle-side-offset;
+      }
+      &.right:after {
+        #{$default-float}: auto;
+        #{$opposite-direction}: $f-dropdown-triangle-side-offset - 1;
+      }
     }
     }
   }
   }
 
 
@@ -166,23 +173,23 @@ $f-dropdown-radius: $global-radius !default;
   }
   }
 
 
   @if $triangle == top {
   @if $triangle == top {
-    margin-top: -$f-dropdown-margin-bottom;
     margin-left: 0;
     margin-left: 0;
+    margin-top: -$f-dropdown-margin-bottom;
 
 
     &:before {
     &:before {
       @include css-triangle($f-dropdown-triangle-size, $f-dropdown-triangle-color, top);
       @include css-triangle($f-dropdown-triangle-size, $f-dropdown-triangle-color, top);
+      bottom: -($f-dropdown-triangle-size * 2);
       position: absolute;
       position: absolute;
       top: auto;
       top: auto;
-      bottom: -($f-dropdown-triangle-size * 2);
       #{$default-float}: $f-dropdown-triangle-side-offset;
       #{$default-float}: $f-dropdown-triangle-side-offset;
       #{$opposite-direction}: auto;
       #{$opposite-direction}: auto;
       z-index: 89;
       z-index: 89;
     }
     }
     &:after {
     &:after {
       @include css-triangle($f-dropdown-triangle-size + 1, $f-dropdown-border-color, top);
       @include css-triangle($f-dropdown-triangle-size + 1, $f-dropdown-border-color, top);
+      bottom: -($f-dropdown-triangle-size * 2) - 2;
       position: absolute;
       position: absolute;
       top: auto;
       top: auto;
-      bottom: -($f-dropdown-triangle-size * 2) - 2;
       #{$default-float}: $f-dropdown-triangle-side-offset - 1;
       #{$default-float}: $f-dropdown-triangle-side-offset - 1;
       #{$opposite-direction}: auto;
       #{$opposite-direction}: auto;
       z-index: 88;
       z-index: 88;
@@ -200,17 +207,14 @@ $f-dropdown-radius: $global-radius !default;
 // We use this to style the list elements or content inside the dropdown.
 // We use this to style the list elements or content inside the dropdown.
 
 
 @mixin dropdown-style {
 @mixin dropdown-style {
-  font-size: $f-dropdown-font-size;
   cursor: $cursor-pointer-value;
   cursor: $cursor-pointer-value;
-
+  font-size: $f-dropdown-font-size;
   line-height: $f-dropdown-line-height;
   line-height: $f-dropdown-line-height;
   margin: 0;
   margin: 0;
 
 
   &:hover,
   &:hover,
   &:focus { background: $f-dropdown-list-hover-bg; }
   &:focus { background: $f-dropdown-list-hover-bg; }
 
 
-  &.radius { @include radius($f-dropdown-radius); }
-
   a {
   a {
     display: block;
     display: block;
     padding: $f-dropdown-list-padding;
     padding: $f-dropdown-list-padding;
@@ -243,6 +247,9 @@ $f-dropdown-radius: $global-radius !default;
       // You can also put custom content in these dropdowns
       // You can also put custom content in these dropdowns
       &.content { @include dropdown-container(content, $triangle:false); }
       &.content { @include dropdown-container(content, $triangle:false); }
 
 
+      // Radius of Dropdown
+      &.radius { @include radius($f-dropdown-radius); }
+
       // Sizes
       // Sizes
       &.tiny    { max-width: 200px; }
       &.tiny    { max-width: 200px; }
       &.small   { max-width: 300px; }
       &.small   { max-width: 300px; }

+ 7 - 7
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_flex-video.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -22,12 +22,12 @@ $flex-video-widescreen-padding-bottom: 56.34% !default;
 //
 //
 
 
 @mixin flex-video-container {
 @mixin flex-video-container {
-  position: relative;
-  padding-top: $flex-video-padding-top;
-  padding-bottom: $flex-video-padding-bottom;
   height: 0;
   height: 0;
   margin-bottom: $flex-video-margin-bottom;
   margin-bottom: $flex-video-margin-bottom;
   overflow: hidden;
   overflow: hidden;
+  padding-bottom: $flex-video-padding-bottom;
+  padding-top: $flex-video-padding-top;
+  position: relative;
 
 
   &.widescreen { padding-bottom: $flex-video-widescreen-padding-bottom; }
   &.widescreen { padding-bottom: $flex-video-widescreen-padding-bottom; }
   &.vimeo { padding-top: 0; }
   &.vimeo { padding-top: 0; }
@@ -36,11 +36,11 @@ $flex-video-widescreen-padding-bottom: 56.34% !default;
   object,
   object,
   embed,
   embed,
   video {
   video {
+    height: 100%;
     position: absolute;
     position: absolute;
     top: 0;
     top: 0;
-    #{$default-float}: 0;
     width: 100%;
     width: 100%;
-    height: 100%;
+    #{$default-float}: 0;
   }
   }
 }
 }
 
 
@@ -48,4 +48,4 @@ $flex-video-widescreen-padding-bottom: 56.34% !default;
   @if $include-html-media-classes {
   @if $include-html-media-classes {
     .flex-video { @include flex-video-container; }
     .flex-video { @include flex-video-container; }
   }
   }
-}
+}

+ 87 - 57
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_forms.scss

@@ -2,8 +2,8 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
-@import "buttons";
+@import 'global';
+@import 'buttons';
 
 
 //
 //
 // @variables
 // @variables
@@ -23,6 +23,7 @@ $form-label-small-transform: capitalize !default;
 $form-label-bottom-margin: 0 !default;
 $form-label-bottom-margin: 0 !default;
 $input-font-family: inherit !default;
 $input-font-family: inherit !default;
 $input-font-color: rgba(0,0,0,0.75) !default;
 $input-font-color: rgba(0,0,0,0.75) !default;
+$input-placeholder-font-color: $steel !default;
 $input-font-size: rem-calc(14) !default;
 $input-font-size: rem-calc(14) !default;
 $input-bg-color: $white !default;
 $input-bg-color: $white !default;
 $input-focus-bg-color: scale-color($white, $lightness: -2%) !default;
 $input-focus-bg-color: scale-color($white, $lightness: -2%) !default;
@@ -44,7 +45,6 @@ $fieldset-padding: rem-calc(20) !default;
 $fieldset-margin: rem-calc(18 0) !default;
 $fieldset-margin: rem-calc(18 0) !default;
 
 
 // We use these to style the legends when you use them
 // We use these to style the legends when you use them
-$legend-bg: $white !default;
 $legend-font-weight: $font-weight-bold !default;
 $legend-font-weight: $font-weight-bold !default;
 $legend-padding: rem-calc(0 3) !default;
 $legend-padding: rem-calc(0 3) !default;
 
 
@@ -71,9 +71,13 @@ $input-error-message-bg-color: $alert-color !default;
 $input-error-message-font-color-alt: $oil !default;
 $input-error-message-font-color-alt: $oil !default;
 
 
 // We use this to style the glowing effect of inputs when focused
 // We use this to style the glowing effect of inputs when focused
-$glowing-effect-fade-time: 0.45s !default;
+$glowing-effect-fade-time: .45s !default;
 $glowing-effect-color: $input-focus-border-color !default;
 $glowing-effect-color: $input-focus-border-color !default;
 
 
+// We use this to style the transition when inputs are focused and when the glowing effect is disabled.
+$input-transition-fade-time: 0.15s !default;
+$input-transition-fade-timing-function: linear !default;
+
 // Select variables
 // Select variables
 $select-bg-color: $ghost !default;
 $select-bg-color: $ghost !default;
 $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
@@ -111,7 +115,6 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 // We use this mixin to give all basic form elements their style
 // We use this mixin to give all basic form elements their style
 @mixin form-element {
 @mixin form-element {
   background-color: $input-bg-color;
   background-color: $input-bg-color;
-  font-family: $input-font-family;
   border: {
   border: {
     style: $input-border-style;
     style: $input-border-style;
     width: $input-border-width;
     width: $input-border-width;
@@ -120,10 +123,11 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
   box-shadow: $input-box-shadow;
   box-shadow: $input-box-shadow;
   color: $input-font-color;
   color: $input-font-color;
   display: block;
   display: block;
+  font-family: $input-font-family;
   font-size: $input-font-size;
   font-size: $input-font-size;
+  height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
   margin: 0 0 $form-spacing 0;
   margin: 0 0 $form-spacing 0;
   padding: $form-spacing / 2;
   padding: $form-spacing / 2;
-  height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
   width: 100%;
   width: 100%;
   @include box-sizing(border-box);
   @include box-sizing(border-box);
   @if $input-include-glowing-effect {
   @if $input-include-glowing-effect {
@@ -135,7 +139,7 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
     border-color: $input-focus-border-color;
     border-color: $input-focus-border-color;
     outline: none;
     outline: none;
   }
   }
-  // Disbaled Styles
+  // Disabled Styles
   &:disabled {
   &:disabled {
     background-color: $input-disabled-bg;
     background-color: $input-disabled-bg;
     cursor: $input-disabled-cursor;
     cursor: $input-disabled-cursor;
@@ -160,10 +164,10 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 
 
   // Control whether or not the base styles come through.
   // Control whether or not the base styles come through.
   @if $base-style {
   @if $base-style {
-    font-size: $form-label-font-size;
     color: $form-label-font-color;
     color: $form-label-font-color;
     cursor: $form-label-pointer;
     cursor: $form-label-pointer;
     display: block;
     display: block;
+    font-size: $form-label-font-size;
     font-weight: $form-label-font-weight;
     font-weight: $form-label-font-weight;
     line-height: $form-label-line-height;
     line-height: $form-label-line-height;
     margin-bottom: $form-label-bottom-margin;
     margin-bottom: $form-label-bottom-margin;
@@ -182,19 +186,19 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 
 
 // We use this mixin to create postfix/prefix form Labels
 // We use this mixin to create postfix/prefix form Labels
 @mixin prefix-postfix-base {
 @mixin prefix-postfix-base {
-  display: block;
-  position: relative;
-  z-index: 2;
-  text-align: center;
-  width: 100%;
-  padding-top: 0;
-  padding-bottom: 0;
   border-style: $input-prefix-border-type;
   border-style: $input-prefix-border-type;
   border-width: $input-prefix-border-size;
   border-width: $input-prefix-border-size;
-  overflow: $input-prefix-overflow;
+  display: block;
   font-size: $form-label-font-size;
   font-size: $form-label-font-size;
   height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
   height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
   line-height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
   line-height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
+  overflow: $input-prefix-overflow;
+  padding-bottom: 0;
+  padding-top: 0;
+  position: relative;
+  text-align: center;
+  width: 100%;
+  z-index: 2;
 }
 }
 
 
 // @MIXIN
 // @MIXIN
@@ -220,12 +224,12 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
   }
   }
 
 
   @if $is-button {
   @if $is-button {
+    border: none;
     padding-#{$default-float}: 0;
     padding-#{$default-float}: 0;
     padding-#{$opposite-direction}: 0;
     padding-#{$opposite-direction}: 0;
-    padding-top: 0;
     padding-bottom: 0;
     padding-bottom: 0;
+    padding-top: 0;
     text-align: center;
     text-align: center;
-    border: none;
   }
   }
 
 
 }
 }
@@ -235,12 +239,14 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 // We use this mixin to create postfix label styles
 // We use this mixin to create postfix label styles
 // $bg - Default:$input-prefix-bg || scale-color($white, $lightness: -5%) !default;
 // $bg - Default:$input-prefix-bg || scale-color($white, $lightness: -5%) !default;
 // $is-button - Toggle position settings if prefix is a button. Default: false
 // $is-button - Toggle position settings if prefix is a button. Default: false
-@mixin postfix($bg:$input-prefix-bg, $border:$input-prefix-border-color, $is-button:false) {
+@mixin postfix($bg:$input-prefix-bg, $border-left-hidden:true, $border:$input-prefix-border-color, $is-button:false) {
 
 
   @if $bg {
   @if $bg {
     $bg-lightness: lightness($bg);
     $bg-lightness: lightness($bg);
     background: $bg;
     background: $bg;
-    border-#{$default-float}: none;
+    @if $border-left-hidden {
+      border-#{$default-float}: none;
+    }
 
 
     // Control the font color based on background brightness
     // Control the font color based on background brightness
     @if $bg-lightness > 70%  or $bg == yellow { color: $input-prefix-font-color; }
     @if $bg-lightness > 70%  or $bg == yellow { color: $input-prefix-font-color; }
@@ -252,12 +258,12 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
   }
   }
 
 
   @if $is-button {
   @if $is-button {
+    border: none;
     padding-#{$default-float}: 0;
     padding-#{$default-float}: 0;
     padding-#{$opposite-direction}: 0;
     padding-#{$opposite-direction}: 0;
-    padding-top: 0;
     padding-bottom: 0;
     padding-bottom: 0;
+    padding-top: 0;
     text-align: center;
     text-align: center;
-    border: none;
   }
   }
 
 
 }
 }
@@ -265,16 +271,15 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 // We use this mixin to style fieldsets
 // We use this mixin to style fieldsets
 @mixin fieldset {
 @mixin fieldset {
   border: $fieldset-border-width $fieldset-border-style $fieldset-border-color;
   border: $fieldset-border-width $fieldset-border-style $fieldset-border-color;
-  padding: $fieldset-padding;
   margin: $fieldset-margin;
   margin: $fieldset-margin;
+  padding: $fieldset-padding;
 
 
   // and legend styles
   // and legend styles
   legend {
   legend {
     font-weight: $legend-font-weight;
     font-weight: $legend-font-weight;
-    background: $legend-bg;
-    padding: $legend-padding;
     margin: 0;
     margin: 0;
     margin-#{$default-float}: rem-calc(-3);
     margin-#{$default-float}: rem-calc(-3);
+    padding: $legend-padding;
   }
   }
 }
 }
 
 
@@ -283,8 +288,8 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 // We use this mixin to control border and background color of error inputs
 // We use this mixin to control border and background color of error inputs
 // $color - Default: $alert-color (found in settings file)
 // $color - Default: $alert-color (found in settings file)
 @mixin form-error-color($color:$alert-color) {
 @mixin form-error-color($color:$alert-color) {
+  background-color: rgba($color, .1);
   border-color: $color;
   border-color: $color;
-  background-color: rgba($color, 0.1);
 
 
   // Go back to normal on focus
   // Go back to normal on focus
   &:focus {
   &:focus {
@@ -305,12 +310,12 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 // $bg - Default: $alert-color (Found in settings file)
 // $bg - Default: $alert-color (Found in settings file)
 @mixin form-error-message($bg:$input-error-message-bg-color) {
 @mixin form-error-message($bg:$input-error-message-bg-color) {
   display: block;
   display: block;
-  padding: $input-error-message-padding;
-  margin-top: $input-error-message-top;
-  margin-bottom: $form-spacing;
   font-size: $input-error-message-font-size;
   font-size: $input-error-message-font-size;
-  font-weight: $input-error-message-font-weight;
   font-style: $input-error-message-font-style;
   font-style: $input-error-message-font-style;
+  font-weight: $input-error-message-font-weight;
+  margin-bottom: $form-spacing;
+  margin-top: $input-error-message-top;
+  padding: $input-error-message-padding;
 
 
   // We can control the text color based on the brightness of the background.
   // We can control the text color based on the brightness of the background.
   $bg-lightness: lightness($bg);
   $bg-lightness: lightness($bg);
@@ -322,8 +327,9 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 // We use this mixin to style select elements
 // We use this mixin to style select elements
 @mixin form-select  {
 @mixin form-select  {
   -webkit-appearance: none !important;
   -webkit-appearance: none !important;
-  border-radius: 0;
+  -moz-appearance: none !important;
   background-color: $select-bg-color;
   background-color: $select-bg-color;
+  border-radius: 0;
 
 
   // Hide the dropdown arrow shown in newer IE versions
   // Hide the dropdown arrow shown in newer IE versions
   &::-ms-expand {
   &::-ms-expand {
@@ -332,7 +338,7 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 
 
   // The custom arrow has some fake horizontal padding so we can align it
   // The custom arrow has some fake horizontal padding so we can align it
   // from the right side of the element without relying on CSS3
   // from the right side of the element without relying on CSS3
-  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
+  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+');
 
 
   // We can safely use leftmost and rightmost now
   // We can safely use leftmost and rightmost now
   background-position: if($text-direction == 'rtl', 0%, 100%) center;
   background-position: if($text-direction == 'rtl', 0%, 100%) center;
@@ -343,14 +349,14 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
     width: $input-border-width;
     width: $input-border-width;
     color: $input-border-color;
     color: $input-border-color;
   }
   }
-  padding: ($form-spacing / 2);
-  font-size: $input-font-size;
-  font-family: $body-font-family;
   color: $input-font-color;
   color: $input-font-color;
+  font-family: $input-font-family;
+  font-size: $input-font-size;
   line-height: normal;
   line-height: normal;
+  padding: ($form-spacing / 2);
   @include radius(0);
   @include radius(0);
   &.radius { @include radius($global-radius); }
   &.radius { @include radius($global-radius); }
-  &:hover {
+  &:focus {
     background-color: $select-hover-bg-color;
     background-color: $select-hover-bg-color;
     border-color: $input-focus-border-color;
     border-color: $input-focus-border-color;
   }
   }
@@ -362,12 +368,12 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 }
 }
 
 
 // We use this mixin to turn on/off HTML5 number spinners
 // We use this mixin to turn on/off HTML5 number spinners
-@mixin html5number($browser, $on:true) {
-  @if $on==false {
-      @if $browser==webkit {
+@mixin html5number($browser, $on: true) {
+  @if $on == false {
+      @if $browser == webkit {
         -webkit-appearance: none;
         -webkit-appearance: none;
         margin: 0;
         margin: 0;
-      } @else if $browser==moz {
+      } @else if $browser == moz {
         -moz-appearance: textfield;
         -moz-appearance: textfield;
       }
       }
   }
   }
@@ -383,8 +389,8 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 
 
     /* Label Styles */
     /* Label Styles */
     label { @include form-label;
     label { @include form-label;
-      &.right { @include form-label(right,false); }
-      &.inline { @include form-label(inline,false); }
+      &.right { @include form-label(right, false); }
+      &.inline { @include form-label(inline, false); }
       /* Styles for required inputs */
       /* Styles for required inputs */
       small {
       small {
         text-transform: $form-label-small-transform;
         text-transform: $form-label-small-transform;
@@ -397,8 +403,8 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
     .postfix { @include prefix-postfix-base; }
     .postfix { @include prefix-postfix-base; }
 
 
     /* Adjust padding, alignment and radius if pre/post element is a button */
     /* Adjust padding, alignment and radius if pre/post element is a button */
-    .postfix.button { @include button-size(false,false); @include postfix(false, false, true); }
-    .prefix.button { @include button-size(false,false); @include prefix(false, false, true); }
+    .postfix.button { @include button-size(false, false); @include postfix(false, false, false, true); }
+    .prefix.button { @include button-size(false, false); @include prefix(false, false, true); }
 
 
     .prefix.button.radius { @include radius(0); @include side-radius($default-float, $button-radius); }
     .prefix.button.radius { @include radius(0); @include side-radius($default-float, $button-radius); }
     .postfix.button.radius { @include radius(0); @include side-radius($opposite-direction, $button-radius); }
     .postfix.button.radius { @include radius(0); @include side-radius($opposite-direction, $button-radius); }
@@ -406,16 +412,21 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
     .postfix.button.round { @include radius(0); @include side-radius($opposite-direction, $button-round); }
     .postfix.button.round { @include radius(0); @include side-radius($opposite-direction, $button-round); }
 
 
     /* Separate prefix and postfix styles when on span or label so buttons keep their own */
     /* Separate prefix and postfix styles when on span or label so buttons keep their own */
-    span.prefix,label.prefix { @include prefix(); }
-    span.postfix,label.postfix { @include postfix(); }
+    span.prefix, label.prefix { @include prefix(); }
+    span.postfix, label.postfix { @include postfix(); }
 
 
     /* We use this to get basic styling on all basic form elements */
     /* We use this to get basic styling on all basic form elements */
-    #{text-inputs(all, 'input')} {
+    input:not([type]), #{text-inputs(all, 'input')} {
       -webkit-appearance: none;
       -webkit-appearance: none;
+      -moz-appearance: none;
       border-radius: 0;
       border-radius: 0;
       @include form-element;
       @include form-element;
       @if $input-include-glowing-effect == false {
       @if $input-include-glowing-effect == false {
-          @include single-transition(all, 0.15s, linear);
+        -webkit-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
+        -moz-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
+        -ms-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
+        -o-transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
+        transition: border-color $input-transition-fade-time $input-transition-fade-timing-function, background $input-transition-fade-time $input-transition-fade-timing-function;
       }
       }
       &.radius {
       &.radius {
         @include radius($input-border-radius);
         @include radius($input-border-radius);
@@ -457,6 +468,7 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 
 
     input[type="submit"] {
     input[type="submit"] {
       -webkit-appearance: none;
       -webkit-appearance: none;
+      -moz-appearance: none;
       border-radius: 0;
       border-radius: 0;
     }
     }
 
 
@@ -465,10 +477,28 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
       height: auto;
       height: auto;
     }
     }
 
 
-	/* Not allow resize out of parent */
-	textarea {
-		max-width: 100%;
-	}
+    /* Not allow resize out of parent */
+    textarea {
+      max-width: 100%;
+    }
+
+    // style placeholder text cross browser
+    ::-webkit-input-placeholder {
+      color: $input-placeholder-font-color;
+    }
+
+    :-moz-placeholder { /* Firefox 18- */
+       color: $input-placeholder-font-color;
+    }
+
+    ::-moz-placeholder {  /* Firefox 19+ */
+       color: $input-placeholder-font-color;
+    }
+
+    :-ms-input-placeholder {
+       color: $input-placeholder-font-color;
+    }
+
 
 
     /* Add height value for select elements to match text input height */
     /* Add height value for select elements to match text input height */
     select {
     select {
@@ -551,14 +581,14 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
 
 
       > label {
       > label {
         > small {
         > small {
-          color: scale-color($form-label-font-color, $lightness: 15%);
           background: transparent;
           background: transparent;
-          padding: 0;
-          text-transform: $form-label-small-transform;
-          font-style: normal;
+          color: scale-color($form-label-font-color, $lightness: 15%);
+          display: inline;
           font-size: 60%;
           font-size: 60%;
+          font-style: normal;
           margin: 0;
           margin: 0;
-          display: inline;
+          padding: 0;
+          text-transform: $form-label-small-transform;
         }
         }
       }
       }
 
 

+ 151 - 65
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_global.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "../functions";
+@import '../functions';
 //
 //
 // Foundation Variables
 // Foundation Variables
 //
 //
@@ -70,9 +70,76 @@ $base-line-height: 1.5 !default;
 // We use this to add transitions to elements
 // We use this to add transitions to elements
 // $property - Default: all, Options: http://www.w3.org/TR/css3-transitions/#animatable-properties
 // $property - Default: all, Options: http://www.w3.org/TR/css3-transitions/#animatable-properties
 // $speed - Default: 300ms
 // $speed - Default: 300ms
-// $ease - Default:ease-out, Options: http://css-tricks.com/almanac/properties/t/transition-timing-function/
+// $ease - Default: ease-out, Options: http://css-tricks.com/almanac/properties/t/transition-timing-function/
 @mixin single-transition($property:all, $speed:300ms, $ease:ease-out) {
 @mixin single-transition($property:all, $speed:300ms, $ease:ease-out) {
-  transition: $property $speed $ease;
+  @include transition($property, $speed, $ease);
+}
+
+// @mixins
+//
+// We use this to add single or multiple transitions to elements
+// $property - Default: all, Options: http://www.w3.org/TR/css3-transitions/#animatable-properties
+// $speed - Default: 300ms
+// $ease - Default: ease-out, Options: http://css-tricks.com/almanac/properties/t/transition-timing-function/
+// $delay - Default: null (0s)
+@mixin transition($property:all, $speed:300ms, $ease:ease-out, $delay:null) {
+  $transition: none;
+
+  @if length($property) > 1 {
+
+    @each $transition_list in $property {
+
+      @for $i from 1 through length($transition_list) {
+
+        @if $i == 1 {
+          $_property: nth($transition_list, $i);
+        }
+
+        @if length($transition_list) > 1 {
+          @if $i == 2 {
+            $_speed: nth($transition_list, $i);
+          }
+        } @else {
+          $_speed: $speed;
+        }
+
+        @if length($transition_list) > 2 {
+          @if $i == 3 {
+            $_ease: nth($transition_list, $i);
+          }
+        } @else {
+          $_ease: $ease;
+        }
+
+        @if length($transition_list) > 3 {
+          @if $i == 4 {
+            $_delay: nth($transition_list, $i);
+          }
+        } @else {
+          $_delay: $delay;
+        }
+      }
+
+      @if $transition == none {
+        $transition: $_property $_speed $_ease $_delay;
+      } @else {
+        $transition: $transition, $_property $_speed $_ease $_delay;
+      }
+    }
+  }
+  @else {
+
+    @each $prop in $property {
+
+      @if $transition == none {
+        $transition: $prop $speed $ease $delay;
+      } @else {
+        $transition: $transition, $prop $speed $ease $delay;
+      }
+    }
+  }
+
+  transition: $transition;
 }
 }
 
 
 // @mixins
 // @mixins
@@ -91,11 +158,11 @@ $base-line-height: 1.5 !default;
 // $triangle-color - Used to set border-color which makes up triangle. No default
 // $triangle-color - Used to set border-color which makes up triangle. No default
 // $triangle-direction - Used to determine which direction triangle points. Options: top, bottom, left, right
 // $triangle-direction - Used to determine which direction triangle points. Options: top, bottom, left, right
 @mixin css-triangle($triangle-size, $triangle-color, $triangle-direction) {
 @mixin css-triangle($triangle-size, $triangle-color, $triangle-direction) {
+  border: inset $triangle-size;
   content: "";
   content: "";
   display: block;
   display: block;
-  width: 0;
   height: 0;
   height: 0;
-  border: inset $triangle-size;
+  width: 0;
   @if ($triangle-direction == top) {
   @if ($triangle-direction == top) {
     border-color: $triangle-color transparent transparent transparent;
     border-color: $triangle-color transparent transparent transparent;
     border-top-style: solid;
     border-top-style: solid;
@@ -128,9 +195,9 @@ $base-line-height: 1.5 !default;
 @mixin hamburger($width, $left, $top, $thickness, $gap, $color, $hover-color, $offcanvas) {
 @mixin hamburger($width, $left, $top, $thickness, $gap, $color, $hover-color, $offcanvas) {
   span::after {
   span::after {
     content: "";
     content: "";
-    position: absolute;
     display: block;
     display: block;
     height: 0;
     height: 0;
+    position: absolute;
 
 
     @if $offcanvas {
     @if $offcanvas {
       @if $top {
       @if $top {
@@ -148,8 +215,8 @@ $base-line-height: 1.5 !default;
       }
       }
     }
     }
     @else {
     @else {
-      top: 50%;
       margin-top: -($width/2);
       margin-top: -($width/2);
+      top: 50%;
       #{$opposite-direction}: $topbar-link-padding;
       #{$opposite-direction}: $topbar-link-padding;
     }
     }
 
 
@@ -183,8 +250,8 @@ $base-line-height: 1.5 !default;
   transition: box-shadow $fade-time, border-color $fade-time ease-in-out;
   transition: box-shadow $fade-time, border-color $fade-time ease-in-out;
 
 
   &:#{$selector} {
   &:#{$selector} {
-    box-shadow: 0 0 5px $glowing-effect-color;
     border-color: $glowing-effect-color;
     border-color: $glowing-effect-color;
+    box-shadow: 0 0 5px $glowing-effect-color;
   }
   }
 }
 }
 
 
@@ -194,7 +261,7 @@ $base-line-height: 1.5 !default;
 // $horizontal: Default: 0
 // $horizontal: Default: 0
 // $vertical: Default: 0
 // $vertical: Default: 0
 @mixin translate2d($horizontal:0, $vertical:0) {
 @mixin translate2d($horizontal:0, $vertical:0) {
-  transform: translate($horizontal,$vertical)
+  transform: translate($horizontal, $vertical)
 }
 }
 
 
 // @mixins
 // @mixins
@@ -202,11 +269,11 @@ $base-line-height: 1.5 !default;
 // Makes an element visually hidden, but accessible.
 // Makes an element visually hidden, but accessible.
 // @see http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 // @see http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 @mixin element-invisible {
 @mixin element-invisible {
-  position: absolute !important;
+  clip: rect(1px, 1px, 1px, 1px);
   height: 1px;
   height: 1px;
-  width: 1px;
   overflow: hidden;
   overflow: hidden;
-  clip: rect(1px, 1px, 1px, 1px);
+  position: absolute !important;
+  width: 1px;
 }
 }
 
 
 // @mixins
 // @mixins
@@ -291,17 +358,22 @@ $shiny-edge-active-color: rgba(#000, .2) !default;
 // We use this to control whether or not CSS classes come through in the gem files.
 // We use this to control whether or not CSS classes come through in the gem files.
 $include-html-classes: true !default;
 $include-html-classes: true !default;
 $include-print-styles: true !default;
 $include-print-styles: true !default;
+$include-js-meta-styles: true !default; // Warning! Meta styles are a dependancy of the Javascript.
 $include-html-global-classes: $include-html-classes !default;
 $include-html-global-classes: $include-html-classes !default;
 
 
 $column-gutter: rem-calc(30) !default;
 $column-gutter: rem-calc(30) !default;
 
 
 // Media Query Ranges
 // Media Query Ranges
-$small-range: (0, 40em) !default;
-$medium-range: (40.063em, 64em) !default;
-$large-range: (64.063em, 90em) !default;
-$xlarge-range: (90.063em, 120em) !default;
-$xxlarge-range: (120.063em, 99999999em) !default;
+$small-breakpoint:  em-calc(640)  !default;
+$medium-breakpoint: em-calc(1024) !default;
+$large-breakpoint:  em-calc(1440) !default;
+$xlarge-breakpoint: em-calc(1920) !default;
 
 
+$small-range:   (0, $small-breakpoint) !default;
+$medium-range:  ($small-breakpoint  + em-calc(1), $medium-breakpoint) !default;
+$large-range:   ($medium-breakpoint + em-calc(1), $large-breakpoint)  !default;
+$xlarge-range:  ($large-breakpoint  + em-calc(1), $xlarge-breakpoint) !default;
+$xxlarge-range: ($xlarge-breakpoint + em-calc(1), em-calc(99999999)) !default;
 
 
 $screen: "only screen" !default;
 $screen: "only screen" !default;
 
 
@@ -323,8 +395,17 @@ $xlarge-only: "#{$screen} and (min-width:#{lower-bound($xlarge-range)}) and (max
 $xxlarge-up: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)})" !default;
 $xxlarge-up: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)})" !default;
 $xxlarge-only: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)}) and (max-width:#{upper-bound($xxlarge-range)})" !default;
 $xxlarge-only: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)}) and (max-width:#{upper-bound($xxlarge-range)})" !default;
 
 
+$retina: (
+  "#{$screen} and (-webkit-min-device-pixel-ratio: 2)",
+  "#{$screen} and (min--moz-device-pixel-ratio: 2)",
+  "#{$screen} and (-o-min-device-pixel-ratio: 2/1)",
+  "#{$screen} and (min-device-pixel-ratio: 2)",
+  "#{$screen} and (min-resolution: 192dpi)",
+  "#{$screen} and (min-resolution: 2dppx)"
+);
+
 // Legacy
 // Legacy
-$small: $medium-up;
+$small: $small-up;
 $medium: $medium-up;
 $medium: $medium-up;
 $large: $large-up;
 $large: $large-up;
 
 
@@ -341,61 +422,65 @@ $cursor-text-value: text !default;
 
 
 @include exports("global") {
 @include exports("global") {
 
 
-  // Meta styles are included in all builds, as they are a dependancy of the Javascript.
+  // Meta styles are a dependancy of the Javascript.
   // Used to provide media query values for javascript components.
   // Used to provide media query values for javascript components.
   // Forward slash placed around everything to convince PhantomJS to read the value.
   // Forward slash placed around everything to convince PhantomJS to read the value.
 
 
-  meta.foundation-version {
-    font-family: "/5.5.1/";
-  }
+  @if $include-js-meta-styles {
 
 
-  meta.foundation-mq-small {
-    font-family: "/" + unquote($small-up) + "/";
-    width: lower-bound($small-range);
-  }
+    meta.foundation-version {
+      font-family: "/5.5.3/";
+    }
 
 
-  meta.foundation-mq-small-only {
-    font-family: "/" + unquote($small-only) + "/";
-    width: lower-bound($small-range);
-  }
+    meta.foundation-mq-small {
+      font-family: "/" + unquote($small-up) + "/";
+      width: lower-bound($small-range);
+    }
 
 
-  meta.foundation-mq-medium {
-    font-family: "/" + unquote($medium-up) + "/";
-    width: lower-bound($medium-range);
-  }
+    meta.foundation-mq-small-only {
+      font-family: "/" + unquote($small-only) + "/";
+      width: lower-bound($small-range);
+    }
 
 
-  meta.foundation-mq-medium-only {
-    font-family: "/" + unquote($medium-only) + "/";
-    width: lower-bound($medium-range);
-  }
+    meta.foundation-mq-medium {
+      font-family: "/" + unquote($medium-up) + "/";
+      width: lower-bound($medium-range);
+    }
 
 
-  meta.foundation-mq-large {
-    font-family: "/" + unquote($large-up) + "/";
-    width: lower-bound($large-range);
-  }
+    meta.foundation-mq-medium-only {
+      font-family: "/" + unquote($medium-only) + "/";
+      width: lower-bound($medium-range);
+    }
 
 
-  meta.foundation-mq-large-only {
-    font-family: "/" + unquote($large-only) + "/";
-    width: lower-bound($large-range);
-  }
+    meta.foundation-mq-large {
+      font-family: "/" + unquote($large-up) + "/";
+      width: lower-bound($large-range);
+    }
 
 
-  meta.foundation-mq-xlarge {
-    font-family: "/" + unquote($xlarge-up) + "/";
-    width: lower-bound($xlarge-range);
-  }
+    meta.foundation-mq-large-only {
+      font-family: "/" + unquote($large-only) + "/";
+      width: lower-bound($large-range);
+    }
 
 
-  meta.foundation-mq-xlarge-only {
-    font-family: "/" + unquote($xlarge-only) + "/";
-    width: lower-bound($xlarge-range);
-  }
+    meta.foundation-mq-xlarge {
+      font-family: "/" + unquote($xlarge-up) + "/";
+      width: lower-bound($xlarge-range);
+    }
 
 
-  meta.foundation-mq-xxlarge {
-    font-family: "/" + unquote($xxlarge-up) + "/";
-    width: lower-bound($xxlarge-range);
-  }
+    meta.foundation-mq-xlarge-only {
+      font-family: "/" + unquote($xlarge-only) + "/";
+      width: lower-bound($xlarge-range);
+    }
+
+    meta.foundation-mq-xxlarge {
+      font-family: "/" + unquote($xxlarge-up) + "/";
+      width: lower-bound($xxlarge-range);
+    }
+
+    meta.foundation-data-attribute-namespace {
+      font-family: #{$namespace};
+    }
 
 
-  meta.foundation-data-attribute-namespace {
-    font-family: #{$namespace};
   }
   }
 
 
   @if $include-html-global-classes {
   @if $include-html-global-classes {
@@ -417,14 +502,14 @@ $cursor-text-value: text !default;
     body {
     body {
       background: $body-bg;
       background: $body-bg;
       color: $body-font-color;
       color: $body-font-color;
-      padding: 0;
-      margin: 0;
+      cursor: $cursor-auto-value;
       font-family: $body-font-family;
       font-family: $body-font-family;
-      font-weight: $body-font-weight;
       font-style: $body-font-style;
       font-style: $body-font-style;
+      font-weight: $body-font-weight;
       line-height: $base-line-height; // Set to $base-line-height to take on browser default of 150%
       line-height: $base-line-height; // Set to $base-line-height to take on browser default of 150%
+      margin: 0;
+      padding: 0;
       position: relative;
       position: relative;
-      cursor: $cursor-auto-value;
     }
     }
 
 
   a:hover { cursor: $cursor-pointer-value; }
   a:hover { cursor: $cursor-pointer-value; }
@@ -435,7 +520,8 @@ $cursor-text-value: text !default;
     img { -ms-interpolation-mode: bicubic; }
     img { -ms-interpolation-mode: bicubic; }
 
 
     #map_canvas,
     #map_canvas,
-    .map_canvas {
+    .map_canvas,
+    .mqa-display {
       img,
       img,
       embed,
       embed,
       object { max-width: none !important;
       object { max-width: none !important;

+ 39 - 36
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_grid.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -29,7 +29,9 @@ $last-child-float: $opposite-direction !default;
 // $colNumber - Found in settings file
 // $colNumber - Found in settings file
 // $totalColumns - Found in settings file
 // $totalColumns - Found in settings file
 @function grid-calc($colNumber, $totalColumns) {
 @function grid-calc($colNumber, $totalColumns) {
-  @return percentage(($colNumber / $totalColumns));
+  $result: percentage(($colNumber / $totalColumns));
+  @if $result == 0% { $result: 0; }
+  @return $result;
 }
 }
 
 
 //
 //
@@ -44,36 +46,30 @@ $last-child-float: $opposite-direction !default;
 
 
   // use @include grid-row(nest); to include a nested row
   // use @include grid-row(nest); to include a nested row
   @if $behavior == nest {
   @if $behavior == nest {
-    width: auto;
-    margin-#{$default-float}: -($column-gutter/2);
-    margin-#{$opposite-direction}: -($column-gutter/2);
-    margin-top: 0;
-    margin-bottom: 0;
+    margin: 0 (-($column-gutter/2));
     max-width: none;
     max-width: none;
+    width: auto;
   }
   }
 
 
   // use @include grid-row(collapse); to collapsed a container row margins
   // use @include grid-row(collapse); to collapsed a container row margins
   @else if $behavior == collapse {
   @else if $behavior == collapse {
-    width: 100%;
     margin: 0;
     margin: 0;
     max-width: $row-width;
     max-width: $row-width;
+    width: 100%;
   }
   }
 
 
   // use @include grid-row(nest-collapse); to collapse outer margins on a nested row
   // use @include grid-row(nest-collapse); to collapse outer margins on a nested row
   @else if $behavior == nest-collapse {
   @else if $behavior == nest-collapse {
-    width: auto;
     margin: 0;
     margin: 0;
     max-width: none;
     max-width: none;
+    width: auto;
   }
   }
 
 
   // use @include grid-row; to use a container row
   // use @include grid-row; to use a container row
   @else {
   @else {
-    width: 100%;
-    margin-#{$default-float}: auto;
-    margin-#{$opposite-direction}: auto;
-    margin-top: 0;
-    margin-bottom: 0;
+    margin: 0 auto;
     max-width: $row-width;
     max-width: $row-width;
+    width: 100%;
   }
   }
 
 
   // Clearfix for all rows
   // Clearfix for all rows
@@ -132,7 +128,7 @@ $last-child-float: $opposite-direction !default;
   @if $push { #{$default-float}: grid-calc($push, $total-columns); #{$opposite-direction}: auto; }
   @if $push { #{$default-float}: grid-calc($push, $total-columns); #{$opposite-direction}: auto; }
   @if $pull { #{$opposite-direction}: grid-calc($pull, $total-columns); #{$default-float}: auto; }
   @if $pull { #{$opposite-direction}: grid-calc($pull, $total-columns); #{$default-float}: auto; }
 
 
-  @if $float {
+  @if $float and $last-column == false {
     @if $float == left or $float == true { float: $default-float; }
     @if $float == left or $float == true { float: $default-float; }
     @else if $float == right { float: $opposite-direction; }
     @else if $float == right { float: $opposite-direction; }
     @else { float: none; }
     @else { float: none; }
@@ -169,19 +165,19 @@ $last-child-float: $opposite-direction !default;
 
 
 
 
   @for $i from 1 through $total-columns {
   @for $i from 1 through $total-columns {
-    .#{$size}-#{$i} { @include grid-column($columns:$i,$collapse:null,$float:false); }
+    .#{$size}-#{$i} { @include grid-column($columns:$i, $collapse:null, $float:false); }
   }
   }
 
 
   @for $i from 0 through $total-columns - 1 {
   @for $i from 0 through $total-columns - 1 {
-    .#{$size}-offset-#{$i} { @include grid-column($offset:$i, $collapse:null,$float:false); }
+    .#{$size}-offset-#{$i} { @include grid-column($offset:$i, $collapse:null, $float:false); }
   }
   }
 
 
   .#{$size}-reset-order {
   .#{$size}-reset-order {
+    float: $default-float;
+    left: auto;
     margin-#{$default-float}: 0;
     margin-#{$default-float}: 0;
     margin-#{$opposite-direction}: 0;
     margin-#{$opposite-direction}: 0;
-    left: auto;
     right: auto;
     right: auto;
-    float: $default-float;
   }
   }
 
 
   .column.#{$size}-centered,
   .column.#{$size}-centered,
@@ -189,9 +185,9 @@ $last-child-float: $opposite-direction !default;
 
 
   .column.#{$size}-uncentered,
   .column.#{$size}-uncentered,
   .columns.#{$size}-uncentered {
   .columns.#{$size}-uncentered {
+    float: $default-float;
     margin-#{$default-float}: 0;
     margin-#{$default-float}: 0;
     margin-#{$opposite-direction}: 0;
     margin-#{$opposite-direction}: 0;
-    float: $default-float;
   }
   }
 
 
   // Fighting [class*="column"] + [class*="column"]:last-child
   // Fighting [class*="column"] + [class*="column"]:last-child
@@ -211,20 +207,20 @@ $last-child-float: $opposite-direction !default;
     float: $opposite-direction;
     float: $opposite-direction;
   }
   }
 
 
-	.row {
-		&.#{$size}-collapse {
-			> .column,
-			> .columns { @include grid-column($collapse:true, $float:false); }
-
-			.row {margin-left:0; margin-right:0;}
-		}
-		&.#{$size}-uncollapse {
-			> .column,
-			> .columns {
-				@include grid-column;
-			}
-		}
-	}
+  .row {
+    &.#{$size}-collapse {
+      > .column,
+      > .columns { @include grid-column($collapse:true, $float:false); }
+
+      .row {margin-left:0; margin-right:0;}
+    }
+    &.#{$size}-uncollapse {
+      > .column,
+      > .columns {
+        @include grid-column;
+      }
+    }
+  }
 }
 }
 
 
 @include exports("grid") {
 @include exports("grid") {
@@ -247,8 +243,15 @@ $last-child-float: $opposite-direction !default;
     .column,
     .column,
     .columns { @include grid-column($columns:$total-columns); }
     .columns { @include grid-column($columns:$total-columns); }
 
 
-    [class*="column"] + [class*="column"]:last-child { float: $last-child-float; }
-    [class*="column"] + [class*="column"].end { float: $default-float; }
+    .column,
+    .columns {
+      & + &:last-child {
+        float: $last-child-float;
+      }
+      & + &.end {
+        float: $default-float;
+      }
+    }
 
 
     @media #{$small-up} {
     @media #{$small-up} {
       @include grid-html-classes($size:small);
       @include grid-html-classes($size:small);

+ 335 - 234
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_icon-bar.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 
 
 // @name
 // @name
@@ -27,7 +27,7 @@ $icon-bar-active-color: $primary-color !default;
 $icon-bar-item-padding: 1.25rem !default;
 $icon-bar-item-padding: 1.25rem !default;
 
 
 // We use this to set default opacity and cursor for disabled icons.
 // We use this to set default opacity and cursor for disabled icons.
-$icon-bar-disabled-opacity: 0.7 !default;
+$icon-bar-disabled-opacity: .7 !default;
 $icon-bar-disabled-cursor: $cursor-disabled-value !default;
 $icon-bar-disabled-cursor: $cursor-disabled-value !default;
 
 
 
 
@@ -38,123 +38,123 @@ $icon-bar-disabled-cursor: $cursor-disabled-value !default;
 // We use this mixin to create the base styles for our Icon bar element.
 // We use this mixin to create the base styles for our Icon bar element.
 //
 //
 @mixin icon-bar-base() {
 @mixin icon-bar-base() {
+  display: inline-block;
+  font-size: 0;
+  width: 100%;
+
+  > * {
+    display: block;
+    float: left;
+    font-size: $icon-bar-font-size;
+    margin: 0 auto;
+    padding: $icon-bar-item-padding;
+    text-align: center;
+    width: 25%;
+
+    i, img {
+      display: block;
+      margin: 0 auto;
+
+      & + label {
+        margin-top: .0625rem;
+      }
+    }
+
+    i {
+      font-size: $icon-bar-icon-size;
+      vertical-align: middle;
+    }
+
+    img {
+      height: $icon-bar-image-height;
+      width: $icon-bar-image-width;
+    }
+  }
 
 
- 	width: 100%;
-	font-size: 0;
-	display: inline-block;
-
-	& > * {
-		text-align: center;
-		font-size: $icon-bar-font-size;
-		width: 25%;
-		margin: 0 auto;
-		display: block;
-		padding: $icon-bar-item-padding;
-		float: left;
-
-		i, img {
-			display: block;
-			margin: 0 auto;
-
-			& + label {
-				margin-top: .0625rem;
-			}
-		}
-
-		i {
-			font-size: $icon-bar-icon-size;
-			vertical-align: middle;
-		}
-
-		img {
-			width: $icon-bar-image-width;
-			height: $icon-bar-image-height;
-		}
-	}
-
-	&.label-right > * {
-
-		i, img {
-			margin: 0 .0625rem 0 0;
-			display: inline-block;
-
-			& + label {
-				margin-top: 0;
-			}
-		}
-
-		label { display: inline-block; }
-	}
-
-	&.vertical.label-right > * {
-		text-align: left;
-	}
-
-	&.vertical, &.small-vertical{
-		height: 100%;
-		width: auto;
-
-		.item {
-			width: auto;
-			margin: auto;
-			float: none;
-		}
-	}
-
-	&.medium-vertical {
-		@media #{$medium-up} {
-			height: 100%;
-			width: auto;
-
-			.item {
-				width: auto;
-				margin: auto;
-				float: none;
-			}
-		}
-	}
-	&.large-vertical {
-		@media #{$large-up} {
-			height: 100%;
-			width: auto;
-
-			.item {
-				width: auto;
-				margin: auto;
-				float: none;
-			}
-		}
-	}
+  &.label-right > * {
+
+    i, img {
+      display: inline-block;
+      margin: 0 .0625rem 0 0;
+
+      & + label {
+        margin-top: 0;
+      }
+    }
+
+    label { display: inline-block; }
+  }
+
+  &.vertical.label-right > * {
+    text-align: left;
+  }
+
+  &.vertical, &.small-vertical{
+    height: 100%;
+    width: auto;
+
+    .item {
+      float: none;
+      margin: auto;
+      width: auto;
+    }
+  }
+
+  &.medium-vertical {
+    @media #{$medium-up} {
+      height: 100%;
+      width: auto;
+
+      .item {
+        float: none;
+        margin: auto;
+        width: auto;
+      }
+    }
+  }
+  &.large-vertical {
+    @media #{$large-up} {
+      height: 100%;
+      width: auto;
+
+      .item {
+        float: none;
+        margin: auto;
+        width: auto;
+      }
+    }
+  }
 }
 }
 
 
 // We use this mixin to create the size styles for icon bars.
 // We use this mixin to create the size styles for icon bars.
 @mixin icon-bar-size(
 @mixin icon-bar-size(
-	$padding: $icon-bar-item-padding,
-	$font-size: $icon-bar-font-size,
-	$icon-size: $icon-bar-icon-size,
-	$image-width: $icon-bar-image-width,
-	$image-height: $icon-bar-image-height) {
+  $padding: $icon-bar-item-padding,
+  $font-size: $icon-bar-font-size,
+  $icon-size: $icon-bar-icon-size,
+  $image-width: $icon-bar-image-width,
+  $image-height: $icon-bar-image-height) {
 
 
-	& > * {
-		font-size: $font-size;
-		padding: $padding;
+  > * {
+    font-size: $font-size;
+    padding: $padding;
 
 
-		i, img {
+    i, img {
 
 
-			& + label {
-				margin-top: .0625rem;
-			}
-		}
+      & + label {
+        margin-top: .0625rem;
+        font-size: $font-size;
+      }
+    }
 
 
-		i {
-			font-size: $icon-size;
-		}
+    i {
+      font-size: $icon-size;
+    }
 
 
-		img {
-			width: $image-width;
-			height: $image-height;
-		}
-	}
+    img {
+      height: $image-height;
+      width: $image-width;
+    }
+  }
 
 
 }
 }
 
 
@@ -169,38 +169,38 @@ $icon-bar-disabled-cursor: $cursor-disabled-value !default;
   $base-style:true,
   $base-style:true,
   $disabled:false) {
   $disabled:false) {
 
 
-	@if $base-style {
+  @if $base-style {
 
 
-		background: $bar-bg;
+    background: $bar-bg;
 
 
-		& > * {
-			label { color: $bar-font-color; }
+    > * {
+      label { color: $bar-font-color; }
 
 
-			i { color: $bar-icon-color; }
-		}
+      i { color: $bar-icon-color; }
+    }
 
 
-		& > a:hover {
+    > a:hover {
 
 
-			background: $bar-hover-color;
+      background: $bar-hover-color;
 
 
-			label { color: $bar-font-color-hover; }
+      label { color: $bar-font-color-hover; }
 
 
-			i { color: $bar-icon-color-hover; }
-		}
+      i { color: $bar-icon-color-hover; }
+    }
 
 
-        & > a.active {
+        > a.active {
 
 
-			background: $bar-active-color;
+      background: $bar-active-color;
 
 
-			label { color: $bar-font-color-hover; }
+      label { color: $bar-font-color-hover; }
 
 
-			i { color: $bar-icon-color-hover; }
-		}
-	}
+      i { color: $bar-icon-color-hover; }
+    }
+  }
   @if $disabled {
   @if $disabled {
     .item.disabled {
     .item.disabled {
-      opacity: $icon-bar-disabled-opacity;
       cursor: $icon-bar-disabled-cursor;
       cursor: $icon-bar-disabled-cursor;
+      opacity: $icon-bar-disabled-opacity;
       pointer-events: none;
       pointer-events: none;
       >* {
       >* {
         opacity: $icon-bar-disabled-opacity;
         opacity: $icon-bar-disabled-opacity;
@@ -230,15 +230,116 @@ $icon-bar-disabled-cursor: $cursor-disabled-value !default;
   $bar-icon-color-hover:$icon-bar-icon-color-hover,
   $bar-icon-color-hover:$icon-bar-icon-color-hover,
   $bar-active-color:$icon-bar-active-color,
   $bar-active-color:$icon-bar-active-color,
   $padding: $icon-bar-item-padding,
   $padding: $icon-bar-item-padding,
-	$font-size: $icon-bar-font-size,
-	$icon-size: $icon-bar-icon-size,
-	$image-width: $icon-bar-image-width,
-	$image-height: $icon-bar-image-height,
+  $font-size: $icon-bar-font-size,
+  $icon-size: $icon-bar-icon-size,
+  $image-width: $icon-bar-image-width,
+  $image-height: $icon-bar-image-height,
   $base-style:true,
   $base-style:true,
   $disabled:true) {
   $disabled:true) {
     @include icon-bar-base();
     @include icon-bar-base();
     @include icon-bar-size($padding, $font-size, $icon-size, $image-width, $image-height);
     @include icon-bar-size($padding, $font-size, $icon-size, $image-width, $image-height);
     @include icon-bar-style($bar-bg, $bar-font-color, $bar-font-color-hover, $bar-hover-color, $bar-icon-color, $bar-icon-color-hover, $bar-active-color, $base-style, $disabled);
     @include icon-bar-style($bar-bg, $bar-font-color, $bar-font-color-hover, $bar-hover-color, $bar-icon-color, $bar-icon-color-hover, $bar-active-color, $base-style, $disabled);
+
+  // Counts
+
+  &.two-up {
+    .item { width: 50%; }
+    &.vertical .item, &.small-vertical .item { width: auto; }
+    &.medium-vertical .item {
+      @media #{$medium-up} {
+        width: auto;
+      }
+    }
+    &.large-vertical .item {
+      @media #{$large-up} {
+        width: auto;
+      }
+    }
+  }
+  &.three-up {
+    .item { width: 33.3333%; }
+    &.vertical .item, &.small-vertical .item { width: auto; }
+    &.medium-vertical .item {
+      @media #{$medium-up} {
+        width: auto;
+      }
+    }
+    &.large-vertical .item {
+      @media #{$large-up} {
+        width: auto;
+      }
+    }
+  }
+  &.four-up {
+    .item { width: 25%; }
+    &.vertical .item, &.small-vertical .item { width: auto; }
+    &.medium-vertical .item {
+      @media #{$medium-up} {
+        width: auto;
+      }
+    }
+    &.large-vertical .item {
+      @media #{$large-up} {
+        width: auto;
+      }
+    }
+  }
+  &.five-up {
+    .item { width: 20%; }
+    &.vertical .item, &.small-vertical .item { width: auto; }
+    &.medium-vertical .item {
+      @media #{$medium-up} {
+        width: auto;
+      }
+    }
+    &.large-vertical .item {
+      @media #{$large-up} {
+        width: auto;
+      }
+    }
+  }
+  &.six-up {
+    .item { width: 16.66667%; }
+    &.vertical .item, &.small-vertical .item { width: auto; }
+    &.medium-vertical .item {
+      @media #{$medium-up} {
+        width: auto;
+      }
+    }
+    &.large-vertical .item {
+      @media #{$large-up} {
+        width: auto;
+      }
+    }
+  }
+  &.seven-up {
+    .item { width: 14.28571%; }
+    &.vertical .item, &.small-vertical .item { width: auto; }
+    &.medium-vertical .item {
+      @media #{$medium-up} {
+            width: auto;
+      }
+    }
+    &.large-vertical .item {
+      @media #{$large-up} {
+         width: auto;
+      }
+    }
+  }
+  &.eight-up {
+    .item { width: 12.5%; }
+    &.vertical .item, &.small-vertical .item { width: auto; }
+    &.medium-vertical .item {
+      @media #{$medium-up} {
+            width: auto;
+      }
+    }
+    &.large-vertical .item {
+      @media #{$large-up} {
+         width: auto;
+      }
+    }
+  }
 }
 }
 
 
 @include exports("icon-bar") {
 @include exports("icon-bar") {
@@ -251,109 +352,109 @@ $icon-bar-disabled-cursor: $cursor-disabled-value !default;
 
 
 @if $include-html-icon-bar-classes {
 @if $include-html-icon-bar-classes {
 
 
-	// toolbar styles
-
-	.icon-bar {
-
-		// Counts
-
-		&.two-up {
-			.item { width: 50%; }
-			&.vertical .item, &.small-vertical .item { width: auto; }
-			&.medium-vertical .item {
-				@media #{$medium-up} {
-					width: auto;
-				}
-			}
-			&.large-vertical .item {
-				@media #{$large-up} {
-					width: auto;
-				}
-			}
-		}
-		&.three-up {
-			.item { width: 33.3333%; }
-			&.vertical .item, &.small-vertical .item { width: auto; }
-			&.medium-vertical .item {
-				@media #{$medium-up} {
-					width: auto;
-				}
-			}
-			&.large-vertical .item {
-				@media #{$large-up} {
-					width: auto;
-				}
-			}
-		}
-		&.four-up {
-			.item { width: 25%; }
-			&.vertical .item, &.small-vertical .item { width: auto; }
-			&.medium-vertical .item {
-				@media #{$medium-up} {
-					width: auto;
-				}
-			}
-			&.large-vertical .item {
-				@media #{$large-up} {
-					width: auto;
-				}
-			}
-		}
-		&.five-up {
-			.item { width: 20%; }
-			&.vertical .item, &.small-vertical .item { width: auto; }
-			&.medium-vertical .item {
-				@media #{$medium-up} {
-					width: auto;
-				}
-			}
-			&.large-vertical .item {
-				@media #{$large-up} {
-					width: auto;
-				}
-			}
-		}
-		&.six-up {
-			.item { width: 16.66667%; }
-			&.vertical .item, &.small-vertical .item { width: auto; }
-			&.medium-vertical .item {
-				@media #{$medium-up} {
-					width: auto;
-				}
-			}
-			&.large-vertical .item {
-				@media #{$large-up} {
-					width: auto;
-				}
-			}
-		}
-		&.seven-up {
-  		.item { width: 14.28571%; }
-  		&.vertical .item, &.small-vertical .item { width: auto; }
-  		&.medium-vertical .item {
-    		@media #{$medium-up} {
-        			width: auto;
-    		}
-  		}
-  		&.large-vertical .item {
-      	@media #{$large-up} {
-       		width: auto;
-      	}
-  		}
+  // toolbar styles
+
+  .icon-bar {
+
+    // Counts
+
+    &.two-up {
+      .item { width: 50%; }
+      &.vertical .item, &.small-vertical .item { width: auto; }
+      &.medium-vertical .item {
+        @media #{$medium-up} {
+          width: auto;
+        }
+      }
+      &.large-vertical .item {
+        @media #{$large-up} {
+          width: auto;
+        }
+      }
+    }
+    &.three-up {
+      .item { width: 33.3333%; }
+      &.vertical .item, &.small-vertical .item { width: auto; }
+      &.medium-vertical .item {
+        @media #{$medium-up} {
+          width: auto;
+        }
+      }
+      &.large-vertical .item {
+        @media #{$large-up} {
+          width: auto;
+        }
+      }
+    }
+    &.four-up {
+      .item { width: 25%; }
+      &.vertical .item, &.small-vertical .item { width: auto; }
+      &.medium-vertical .item {
+        @media #{$medium-up} {
+          width: auto;
+        }
+      }
+      &.large-vertical .item {
+        @media #{$large-up} {
+          width: auto;
+        }
+      }
+    }
+    &.five-up {
+      .item { width: 20%; }
+      &.vertical .item, &.small-vertical .item { width: auto; }
+      &.medium-vertical .item {
+        @media #{$medium-up} {
+          width: auto;
+        }
+      }
+      &.large-vertical .item {
+        @media #{$large-up} {
+          width: auto;
+        }
+      }
+    }
+    &.six-up {
+      .item { width: 16.66667%; }
+      &.vertical .item, &.small-vertical .item { width: auto; }
+      &.medium-vertical .item {
+        @media #{$medium-up} {
+          width: auto;
+        }
+      }
+      &.large-vertical .item {
+        @media #{$large-up} {
+          width: auto;
+        }
+      }
+    }
+    &.seven-up {
+      .item { width: 14.28571%; }
+      &.vertical .item, &.small-vertical .item { width: auto; }
+      &.medium-vertical .item {
+        @media #{$medium-up} {
+              width: auto;
+        }
+      }
+      &.large-vertical .item {
+        @media #{$large-up} {
+           width: auto;
+        }
+      }
     }
     }
     &.eight-up {
     &.eight-up {
-  		.item { width: 12.5%; }
-  		&.vertical .item, &.small-vertical .item { width: auto; }
-  		&.medium-vertical .item {
-    		@media #{$medium-up} {
-        			width: auto;
-    		}
-  		}
-  		&.large-vertical .item {
-      	@media #{$large-up} {
-       		width: auto;
-      	}
-  		}
-    }
-	}
+      .item { width: 12.5%; }
+      &.vertical .item, &.small-vertical .item { width: auto; }
+      &.medium-vertical .item {
+        @media #{$medium-up} {
+              width: auto;
+        }
+      }
+      &.large-vertical .item {
+        @media #{$large-up} {
+           width: auto;
+        }
+      }
+    }
+  }
 }
 }

+ 9 - 8
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_inline-lists.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -32,19 +32,20 @@ $inline-list-children-display: block !default;
 //
 //
 // We use this mixin to create inline lists
 // We use this mixin to create inline lists
 @mixin inline-list {
 @mixin inline-list {
-  margin: $inline-list-top-margin auto $inline-list-bottom-margin auto;
+  list-style: none;
+  margin-top: $inline-list-top-margin;
+  margin-bottom: $inline-list-bottom-margin;
   margin-#{$default-float}: $inline-list-default-float-margin;
   margin-#{$default-float}: $inline-list-default-float-margin;
   margin-#{$opposite-direction}: $inline-list-opposite-margin;
   margin-#{$opposite-direction}: $inline-list-opposite-margin;
-  padding: $inline-list-padding;
-  list-style: none;
   overflow: $inline-list-overflow;
   overflow: $inline-list-overflow;
+  padding: $inline-list-padding;
 
 
-  & > li {
-    list-style: none;
+  > li {
+    display: $inline-list-display;
     float: $default-float;
     float: $default-float;
+    list-style: none;
     margin-#{$default-float}: $inline-list-default-float-list-margin;
     margin-#{$default-float}: $inline-list-default-float-list-margin;
-    display: $inline-list-display;
-    &>* { display: $inline-list-children-display; }
+    > * { display: $inline-list-children-display; }
   }
   }
 }
 }
 
 

+ 40 - 42
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_joyride.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -49,28 +49,27 @@ $joyride-screenfill: rgba(0,0,0,0.5) !default;
 
 
     /* Default styles for the container */
     /* Default styles for the container */
     .joyride-tip-guide {
     .joyride-tip-guide {
-      display: none;
-      position: absolute;
       background: $joyride-tip-bg;
       background: $joyride-tip-bg;
       color: $joyride-tip-font-color;
       color: $joyride-tip-font-color;
-      z-index: 101;
-      top: 0;
-      #{$default-float}: 2.5%;
+      display: none;
       font-family: inherit;
       font-family: inherit;
       font-weight: $font-weight-normal;
       font-weight: $font-weight-normal;
+      position: absolute;
+      top: 0;
       width: 95%;
       width: 95%;
+      z-index: 103;
+      #{$default-float}: 2.5%;
     }
     }
 
 
     .lt-ie9 .joyride-tip-guide {
     .lt-ie9 .joyride-tip-guide {
-      max-width:800px;
+      margin-#{$default-float}: -400px;
+      max-width: 800px;
       #{$default-float}: 50%;
       #{$default-float}: 50%;
-      margin-#{$default-float}:-400px;
     }
     }
 
 
     .joyride-content-wrapper {
     .joyride-content-wrapper {
-      width: 100%;
-
       padding: $joyride-tip-padding;
       padding: $joyride-tip-padding;
+      width: 100%;
 
 
       .button { margin-bottom: 0 !important; }
       .button { margin-bottom: 0 !important; }
 
 
@@ -80,25 +79,25 @@ $joyride-screenfill: rgba(0,0,0,0.5) !default;
     /* Add a little css triangle pip, older browser just miss out on the fanciness of it */
     /* Add a little css triangle pip, older browser just miss out on the fanciness of it */
     .joyride-tip-guide {
     .joyride-tip-guide {
       .joyride-nub {
       .joyride-nub {
+        border: $joyride-tip-nub-size solid $joyride-tip-bg;
         display: block;
         display: block;
+        height: 0;
         position: absolute;
         position: absolute;
-        #{$default-float}: $joyride-tip-position-offset;
         width: 0;
         width: 0;
-        height: 0;
-        border: $joyride-tip-nub-size solid $joyride-tip-bg;
+        #{$default-float}: $joyride-tip-position-offset;
 
 
         &.top {
         &.top {
-          border-top-style: solid;
           border-color: $joyride-tip-bg;
           border-color: $joyride-tip-bg;
           border-top-color: transparent !important;
           border-top-color: transparent !important;
+          border-top-style: solid;
           border-#{$default-float}-color: transparent !important;
           border-#{$default-float}-color: transparent !important;
           border-#{$opposite-direction}-color: transparent !important;
           border-#{$opposite-direction}-color: transparent !important;
           top: -($joyride-tip-nub-size*2);
           top: -($joyride-tip-nub-size*2);
         }
         }
         &.bottom {
         &.bottom {
-          border-bottom-style: solid;
           border-color: $joyride-tip-bg !important;
           border-color: $joyride-tip-bg !important;
           border-bottom-color: transparent !important;
           border-bottom-color: transparent !important;
+          border-bottom-style: solid;
           border-#{$default-float}-color: transparent !important;
           border-#{$default-float}-color: transparent !important;
           border-#{$opposite-direction}-color: transparent !important;
           border-#{$opposite-direction}-color: transparent !important;
           bottom: -($joyride-tip-nub-size*2);
           bottom: -($joyride-tip-nub-size*2);
@@ -116,74 +115,73 @@ $joyride-screenfill: rgba(0,0,0,0.5) !default;
     .joyride-tip-guide h4,
     .joyride-tip-guide h4,
     .joyride-tip-guide h5,
     .joyride-tip-guide h5,
     .joyride-tip-guide h6 {
     .joyride-tip-guide h6 {
+      color: $joyride-tip-font-color;
+      font-weight: $joyride-tip-header-weight;
       line-height: 1.25;
       line-height: 1.25;
       margin: 0;
       margin: 0;
-      font-weight: $joyride-tip-header-weight;
-      color: $joyride-tip-font-color;
     }
     }
     .joyride-tip-guide p {
     .joyride-tip-guide p {
-      margin: rem-calc(0 0 18 0);
       font-size: $joyride-tip-font-size;
       font-size: $joyride-tip-font-size;
       line-height: 1.3;
       line-height: 1.3;
+      margin: rem-calc(0 0 18 0);
     }
     }
 
 
     .joyride-timer-indicator-wrap {
     .joyride-timer-indicator-wrap {
-      width: $joyride-tip-timer-width;
-      height: $joyride-tip-timer-height;
       border: $joyride-tip-border;
       border: $joyride-tip-border;
+      bottom: rem-calc(16);
+      height: $joyride-tip-timer-height;
       position: absolute;
       position: absolute;
+      width: $joyride-tip-timer-width;
       #{$opposite-direction}: rem-calc(17);
       #{$opposite-direction}: rem-calc(17);
-      bottom: rem-calc(16);
     }
     }
     .joyride-timer-indicator {
     .joyride-timer-indicator {
+      background: $joyride-tip-timer-color;
       display: block;
       display: block;
-      width: 0;
       height: inherit;
       height: inherit;
-      background: $joyride-tip-timer-color;
+      width: 0;
     }
     }
 
 
     .joyride-close-tip {
     .joyride-close-tip {
-      position: absolute;
-      #{$opposite-direction}: 12px;
-      top: 10px;
       color: $joyride-tip-close-color !important;
       color: $joyride-tip-close-color !important;
-      text-decoration: none;
       font-size: $joyride-tip-close-size;
       font-size: $joyride-tip-close-size;
       font-weight: $joyride-tip-close-weight;
       font-weight: $joyride-tip-close-weight;
       line-height: .5 !important;
       line-height: .5 !important;
+      position: absolute;
+      text-decoration: none;
+      top: 10px;
+      #{$opposite-direction}: 12px;
 
 
       &:hover,
       &:hover,
       &:focus { color: $smoke !important; }
       &:focus { color: $smoke !important; }
     }
     }
 
 
     .joyride-modal-bg {
     .joyride-modal-bg {
-      position: fixed;
-      height: 100%;
-      width: 100%;
-      background: transparent;
       background: $joyride-screenfill;
       background: $joyride-screenfill;
-      z-index: 100;
+      cursor: $cursor-pointer-value;
       display: none;
       display: none;
+      height: 100%;
+      position: fixed;
       top: 0;
       top: 0;
+      width: 100%;
+      z-index: 100;
       #{$default-float}: 0;
       #{$default-float}: 0;
-      cursor: $cursor-pointer-value;
     }
     }
 
 
     .joyride-expose-wrapper {
     .joyride-expose-wrapper {
       background-color: $white;
       background-color: $white;
-      position: absolute;
       border-radius: 3px;
       border-radius: 3px;
-      z-index: 102;
       box-shadow: 0 0 15px $white;
       box-shadow: 0 0 15px $white;
+      position: absolute;
+      z-index: 102;
     }
     }
 
 
     .joyride-expose-cover {
     .joyride-expose-cover {
       background: transparent;
       background: transparent;
       border-radius: 3px;
       border-radius: 3px;
+      left: 0;
       position: absolute;
       position: absolute;
-      z-index: 9999;
       top: 0;
       top: 0;
-      left: 0;
+      z-index: 9999;
     }
     }
 
 
 
 
@@ -200,20 +198,20 @@ $joyride-screenfill: rgba(0,0,0,0.5) !default;
           }
           }
           &.right {
           &.right {
             border-color: $joyride-tip-bg !important;
             border-color: $joyride-tip-bg !important;
-            border-top-color: transparent !important;
             border-right-color: transparent !important; border-bottom-color: transparent !important;
             border-right-color: transparent !important; border-bottom-color: transparent !important;
-            top: $joyride-tip-position-offset;
+            border-top-color: transparent !important;
             left: auto;
             left: auto;
             right: -($joyride-tip-nub-size*2);
             right: -($joyride-tip-nub-size*2);
+            top: $joyride-tip-position-offset;
           }
           }
           &.left {
           &.left {
             border-color: $joyride-tip-bg !important;
             border-color: $joyride-tip-bg !important;
-            border-top-color: transparent !important;
-            border-left-color: transparent !important;
             border-bottom-color: transparent !important;
             border-bottom-color: transparent !important;
-            top: $joyride-tip-position-offset;
+            border-left-color: transparent !important;
+            border-top-color: transparent !important;
             left: -($joyride-tip-nub-size*2);
             left: -($joyride-tip-nub-size*2);
             right: auto;
             right: auto;
+            top: $joyride-tip-position-offset;
           }
           }
         }
         }
       }
       }

+ 2 - 3
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_keystrokes.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -34,7 +34,6 @@ $keystroke-radius: $global-radius !default;
 @mixin keystroke($bg:$keystroke-bg) {
 @mixin keystroke($bg:$keystroke-bg) {
   // This find the lightness percentage of the background color.
   // This find the lightness percentage of the background color.
   $bg-lightness: lightness($bg);
   $bg-lightness: lightness($bg);
-
   background-color: $bg;
   background-color: $bg;
   border-color: scale-color($bg, $lightness: $keystroke-function-factor);
   border-color: scale-color($bg, $lightness: $keystroke-function-factor);
 
 
@@ -44,9 +43,9 @@ $keystroke-radius: $global-radius !default;
 
 
   border-style: $keystroke-border-style;
   border-style: $keystroke-border-style;
   border-width: $keystroke-border-width;
   border-width: $keystroke-border-width;
-  margin: 0;
   font-family: $keystroke-font;
   font-family: $keystroke-font;
   font-size: $keystroke-font-size;
   font-size: $keystroke-font-size;
+  margin: 0;
   padding: $keystroke-padding;
   padding: $keystroke-padding;
 }
 }
 
 

+ 6 - 6
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_labels.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -25,15 +25,15 @@ $label-font-family: $body-font-family !default;
 //
 //
 // We use this mixin to create a default label base.
 // We use this mixin to create a default label base.
 @mixin label-base {
 @mixin label-base {
-  font-weight: $label-font-weight;
+  display: inline-block;
   font-family: $label-font-family;
   font-family: $label-font-family;
+  font-weight: $label-font-weight;
+  line-height: 1;
+  margin-bottom: auto;
+  position: relative;
   text-align: center;
   text-align: center;
   text-decoration: none;
   text-decoration: none;
-  line-height: 1;
   white-space: nowrap;
   white-space: nowrap;
-  display: inline-block;
-  position: relative;
-  margin-bottom: auto;
 }
 }
 
 
 // @mixins
 // @mixins

+ 2 - 2
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_magellan.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -17,9 +17,9 @@ $magellan-padding: 10px !default;
 
 
     #{data('magellan-expedition')}, #{data('magellan-expedition-clone')} {
     #{data('magellan-expedition')}, #{data('magellan-expedition-clone')} {
       background: $magellan-bg;
       background: $magellan-bg;
-      z-index: 50;
       min-width: 100%;
       min-width: 100%;
       padding: $magellan-padding;
       padding: $magellan-padding;
+      z-index: 50;
 
 
       .sub-nav {
       .sub-nav {
         margin-bottom: 0;
         margin-bottom: 0;

+ 259 - 168
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_offcanvas.scss

@@ -2,8 +2,8 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
-@import "type";
+@import 'global';
+@import 'type';
 
 
 // Off Canvas Tab Bar Variables
 // Off Canvas Tab Bar Variables
 $include-html-off-canvas-classes: $include-html-classes !default;
 $include-html-off-canvas-classes: $include-html-classes !default;
@@ -28,11 +28,13 @@ $tabbar-header-margin: 0 !default;
 
 
 // Off Canvas Menu Variables
 // Off Canvas Menu Variables
 $off-canvas-width: rem-calc(250) !default;
 $off-canvas-width: rem-calc(250) !default;
+$off-canvas-height: rem-calc(300) !default;
 $off-canvas-bg: $oil !default;
 $off-canvas-bg: $oil !default;
 $off-canvas-bg-hover: scale-color($tabbar-bg, $lightness: -30%) !default;
 $off-canvas-bg-hover: scale-color($tabbar-bg, $lightness: -30%) !default;
+$off-canvas-bg-active: scale-color($tabbar-bg, $lightness: -30%) !default;
 
 
 // Off Canvas Menu List Variables
 // Off Canvas Menu List Variables
-$off-canvas-label-padding: 0.3rem rem-calc(15) !default;
+$off-canvas-label-padding: .3rem rem-calc(15) !default;
 $off-canvas-label-color: $aluminum !default;
 $off-canvas-label-color: $aluminum !default;
 $off-canvas-label-text-transform: uppercase !default;
 $off-canvas-label-text-transform: uppercase !default;
 $off-canvas-label-font-size: rem-calc(12) !default;
 $off-canvas-label-font-size: rem-calc(12) !default;
@@ -42,7 +44,7 @@ $off-canvas-label-border-top: 1px solid scale-color($off-canvas-label-bg, $light
 $off-canvas-label-border-bottom: none !default;
 $off-canvas-label-border-bottom: none !default;
 $off-canvas-label-margin:0 !default;
 $off-canvas-label-margin:0 !default;
 $off-canvas-link-padding: rem-calc(10, 15) !default;
 $off-canvas-link-padding: rem-calc(10, 15) !default;
-$off-canvas-link-color: rgba($white, 0.7) !default;
+$off-canvas-link-color: rgba($white, .7) !default;
 $off-canvas-link-border-bottom: 1px solid scale-color($off-canvas-bg, $lightness: -25%) !default;
 $off-canvas-link-border-bottom: 1px solid scale-color($off-canvas-bg, $lightness: -25%) !default;
 $off-canvas-back-bg: #444 !default;
 $off-canvas-back-bg: #444 !default;
 $off-canvas-back-border-top: $off-canvas-label-border-top !default;
 $off-canvas-back-border-top: $off-canvas-label-border-top !default;
@@ -69,9 +71,9 @@ $tabbar-hamburger-icon-gap: 6px !default;
 // Off Canvas Back-Link Overlay
 // Off Canvas Back-Link Overlay
 $off-canvas-overlay-transition: background 300ms ease !default;
 $off-canvas-overlay-transition: background 300ms ease !default;
 $off-canvas-overlay-cursor: pointer !default;
 $off-canvas-overlay-cursor: pointer !default;
-$off-canvas-overlay-box-shadow: -4px 0 4px rgba($black, 0.5), 4px 0 4px rgba($black, 0.5) !default;
-$off-canvas-overlay-background: rgba($white, 0.2) !default;
-$off-canvas-overlay-background-hover: rgba($white, 0.05) !default;
+$off-canvas-overlay-box-shadow: -4px 0 4px rgba($black, .5), 4px 0 4px rgba($black, .5) !default;
+$off-canvas-overlay-background: rgba($white, .2) !default;
+$off-canvas-overlay-background-hover: rgba($white, .05) !default;
 
 
 // Transition Variables
 // Transition Variables
 $menu-slide: "transform 500ms ease" !default;
 $menu-slide: "transform 500ms ease" !default;
@@ -90,39 +92,51 @@ $menu-slide: "transform 500ms ease" !default;
   width: 100%;
   width: 100%;
 }
 }
 
 
-@mixin translate3d($tx,$ty,$tz) {
-      -ms-transform: translate($tx,$ty);
-  -webkit-transform: translate3d($tx,$ty,$tz);
-     -moz-transform: translate3d($tx,$ty,$tz);
-      -ms-transform: translate3d($tx,$ty,$tz);
-       -o-transform: translate3d($tx,$ty,$tz);
-          transform: translate3d($tx,$ty,$tz)
+@mixin translate3d($tx, $ty, $tz) {
+  -webkit-transform: translate3d($tx, $ty, $tz);
+     -moz-transform: translate3d($tx, $ty, $tz);
+      -ms-transform: translate($tx, $ty);
+       -o-transform: translate3d($tx, $ty, $tz);
+          transform: translate3d($tx, $ty, $tz)
 }
 }
 
 
 // basic styles for off-canvas menu container
 // basic styles for off-canvas menu container
 @mixin off-canvas-menu($position) {
 @mixin off-canvas-menu($position) {
   @include kill-flicker;
   @include kill-flicker;
   * { @include kill-flicker; }
   * { @include kill-flicker; }
-  width: $off-canvas-width;
-  top: 0;
-  bottom: 0;
-  position: absolute;
-  overflow-x: hidden;
-  overflow-y: auto;
   background: $off-canvas-bg;
   background: $off-canvas-bg;
-  z-index: 1001;
+  bottom: 0;
   box-sizing: content-box;
   box-sizing: content-box;
-  transition: transform 500ms ease 0s;
   -webkit-overflow-scrolling: touch;
   -webkit-overflow-scrolling: touch;
   -ms-overflow-style: -ms-autohiding-scrollbar;
   -ms-overflow-style: -ms-autohiding-scrollbar;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  transition: transform 500ms ease 0s;
+  width: $off-canvas-width;
+  z-index: 1001;
 
 
   @if $position == left {
   @if $position == left {
     @include translate3d(-100%,0,0);
     @include translate3d(-100%,0,0);
     left: 0;
     left: 0;
+    top: 0;
   }
   }
   @if $position == right {
   @if $position == right {
     @include translate3d(100%,0,0);
     @include translate3d(100%,0,0);
     right: 0;
     right: 0;
+    top: 0;
+  }
+  @if $position == top {
+    @include translate3d(0,-100%,0);
+    top: 0;
+    width: 100%;
+    height: $off-canvas-height;
+  }
+  @if $position == bottom {
+    @include translate3d(0,100%,0);
+    bottom: 0;
+    width: 100%;
+    height: $off-canvas-height;
   }
   }
 }
 }
 
 
@@ -133,7 +147,9 @@ $menu-slide: "transform 500ms ease" !default;
   @include wrap-base;
   @include wrap-base;
   overflow: hidden;
   overflow: hidden;
   &.move-right,
   &.move-right,
-  &.move-left { min-height: 100%; -webkit-overflow-scrolling: touch; }
+  &.move-left,
+  &.move-bottom,
+  &.move-top { min-height: 100%; -webkit-overflow-scrolling: touch; }
 }
 }
 
 
 // INNER WRAP
 // INNER WRAP
@@ -166,22 +182,22 @@ $menu-slide: "transform 500ms ease" !default;
   // z-index: 999;
   // z-index: 999;
 
 
   // Typography
   // Typography
-  h1,h2,h3,h4,h5,h6 {
+  h1, h2, h3, h4, h5, h6 {
     color: $tabbar-header-color;
     color: $tabbar-header-color;
     font-weight: $tabbar-header-weight;
     font-weight: $tabbar-header-weight;
     line-height: $tabbar-header-line-height;
     line-height: $tabbar-header-line-height;
     margin: $tabbar-header-margin;
     margin: $tabbar-header-margin;
   }
   }
-  h1,h2,h3,h4 { font-size: $h5-font-size; }
+  h1, h2, h3, h4 { font-size: $h5-font-size; }
 }
 }
 
 
 // SMALL SECTIONS
 // SMALL SECTIONS
 // These are small sections on the left and right that contain the off-canvas toggle buttons;
 // These are small sections on the left and right that contain the off-canvas toggle buttons;
 @mixin tabbar-small-section($position) {
 @mixin tabbar-small-section($position) {
-  width: $tabbar-icon-width;
   height: $tabbar-height;
   height: $tabbar-height;
   position: absolute;
   position: absolute;
   top: 0;
   top: 0;
+  width: $tabbar-icon-width;
   @if $position == left {
   @if $position == left {
     border-right: $tabbar-left-section-border;
     border-right: $tabbar-left-section-border;
     // box-shadow: 1px 0 0 scale-color($tabbar-bg, $lightness: 13%);
     // box-shadow: 1px 0 0 scale-color($tabbar-bg, $lightness: 13%);
@@ -195,15 +211,14 @@ $menu-slide: "transform 500ms ease" !default;
 }
 }
 
 
 @mixin tab-bar-section {
 @mixin tab-bar-section {
+  height: $tabbar-height;
   padding: $tabbar-middle-padding;
   padding: $tabbar-middle-padding;
   position: absolute;
   position: absolute;
   text-align: center;
   text-align: center;
-  height: $tabbar-height;
   top: 0;
   top: 0;
-  @media #{$medium-up} {
     &.left { text-align: left; }
     &.left { text-align: left; }
     &.right { text-align: right; }
     &.right { text-align: right; }
-  }
+
 
 
   // still need to make these non-presentational
   // still need to make these non-presentational
   &.left {
   &.left {
@@ -224,31 +239,34 @@ $menu-slide: "transform 500ms ease" !default;
 // This is the list of links in the off-canvas menu
 // This is the list of links in the off-canvas menu
 @mixin off-canvas-list {
 @mixin off-canvas-list {
   list-style-type: none;
   list-style-type: none;
-  padding:0;
   margin:0;
   margin:0;
+  padding:0;
 
 
   li {
   li {
     label {
     label {
-      display: block;
-      padding: $off-canvas-label-padding;
+      background: $off-canvas-label-bg;
+      border-bottom: $off-canvas-label-border-bottom;
+      border-top: $off-canvas-label-border-top;
       color: $off-canvas-label-color;
       color: $off-canvas-label-color;
-      text-transform: $off-canvas-label-text-transform;
+      display: block;
       font-size: $off-canvas-label-font-size;
       font-size: $off-canvas-label-font-size;
       font-weight: $off-canvas-label-font-weight;
       font-weight: $off-canvas-label-font-weight;
-      background: $off-canvas-label-bg;
-      border-top: $off-canvas-label-border-top;
-      border-bottom: $off-canvas-label-border-bottom;
       margin: $off-canvas-label-margin;
       margin: $off-canvas-label-margin;
+      padding: $off-canvas-label-padding;
+      text-transform: $off-canvas-label-text-transform;
     }
     }
     a {
     a {
+      border-bottom: $off-canvas-link-border-bottom;
+      color: $off-canvas-link-color;
       display: block;
       display: block;
       padding: $off-canvas-link-padding;
       padding: $off-canvas-link-padding;
-      color: $off-canvas-link-color;
-      border-bottom: $off-canvas-link-border-bottom;
       transition: background 300ms ease;
       transition: background 300ms ease;
       &:hover {
       &:hover {
         background: $off-canvas-bg-hover;
         background: $off-canvas-bg-hover;
       }
       }
+      &:active {
+        background: $off-canvas-bg-active;
+      }
     }
     }
   }
   }
 
 
@@ -257,28 +275,132 @@ $menu-slide: "transform 500ms ease" !default;
 // BACK LINK
 // BACK LINK
 // This is an overlay that, when clicked, will toggle off the off canvas menu
 // This is an overlay that, when clicked, will toggle off the off canvas menu
 @mixin back-link {
 @mixin back-link {
-    @include kill-flicker;
+  @include kill-flicker;
+
+  box-shadow: $off-canvas-overlay-box-shadow;
+  cursor: $off-canvas-overlay-cursor;
+  transition: $off-canvas-overlay-transition;
+
+  // fill the screen
+  -webkit-tap-highlight-color: rgba(0,0,0,0);
+  background: $off-canvas-overlay-background;
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002;
 
 
-    transition: $off-canvas-overlay-transition;
-    cursor: $off-canvas-overlay-cursor;
-    box-shadow: $off-canvas-overlay-box-shadow;
+  @media #{$medium-up} {
+    &:hover {
+      background: $off-canvas-overlay-background-hover;
+    }
+  }
+}
 
 
-    // fill the screen
-    display: block;
-    position: absolute;
-    background: $off-canvas-overlay-background;
+//
+// Off-Canvas Submenu Classes
+//
+@mixin off-canvas-submenu($position) {
+  @include kill-flicker;
+  * { @include kill-flicker; }
+  -webkit-overflow-scrolling: touch;
+  background: $off-canvas-bg;
+  bottom: 0;
+  box-sizing: content-box;
+  margin: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  top: 0;
+  width: $off-canvas-width;
+  height: $off-canvas-height;
+  z-index: 1002;
+  @if $position == left {
+    @include translate3d(-100%,0,0);
+    left: 0;
+  }
+  @if $position == right {
+    @include translate3d(100%,0,0);
+    right: 0;
+  }
+  @if $position == top {
+    @include translate3d(0,-100%,0);
     top: 0;
     top: 0;
+    width: 100%;
+  }  
+  @if $position == bottom {
+    @include translate3d(0,100%,0);
     bottom: 0;
     bottom: 0;
-    left:0;
-    right:0;
-    z-index: 1002;
-    -webkit-tap-highlight-color: rgba(0,0,0,0);
+    width: 100%;
+  }
+  -webkit-transition: -webkit-#{$menu-slide};
+  -moz-transition: -moz-#{$menu-slide};
+  -ms-transition: -ms-#{$menu-slide};
+  -o-transition: -o-#{$menu-slide};
+  transition: #{$menu-slide};
 
 
-    @media #{$medium-up} {
-      &:hover {
-        background: $off-canvas-overlay-background-hover;
+  //back button style like label
+  .back > a {
+    background: $off-canvas-back-bg;
+    border-bottom: $off-canvas-back-border-bottom;
+    border-top: $off-canvas-back-border-top;
+    color: $off-canvas-label-color;
+    font-weight: $off-canvas-label-font-weight;
+    padding: $off-canvas-label-padding;
+    text-transform: $off-canvas-label-text-transform;
+
+    &:hover {
+      background: $off-canvas-back-hover-bg;
+      border-bottom: $off-canvas-back-hover-border-bottom;
+      border-top: $off-canvas-back-hover-border-top;
+    }
+
+    margin: $off-canvas-label-margin;
+    @if $position == right {
+      @if $text-direction == rtl {
+        &:before {
+          @include icon-double-arrows($position: left);
+        }
+      } @else {
+        &:after {
+          @include icon-double-arrows($position: right);
+        }
+      }
+    }
+    @if $position == left {
+      @if $text-direction == rtl {
+        &:after {
+          @include icon-double-arrows($position: right);
+        }
+      } @else {
+        &:before {
+          @include icon-double-arrows($position: left);
+        }
       }
       }
     }
     }
+  }
+}
+//Left double angle quote or Right double angle quote chars
+@mixin icon-double-arrows ($position) {
+  @if $position == left {
+    content: "\AB";
+    @if $text-direction == rtl {
+      margin-left: .5rem;
+    } @else {
+      margin-right: .5rem;
+    }
+  }
+  @if $position == right {
+    content: "\BB";
+    @if $text-direction == rtl {
+      margin-right: .5rem;
+    } @else {
+      margin-left: .5rem;
+    }
+  }
+  display: inline;
 }
 }
 
 
 //
 //
@@ -300,14 +422,14 @@ $menu-slide: "transform 500ms ease" !default;
     // MENU BUTTON
     // MENU BUTTON
     // This is a little bonus. You don't need it for off canvas to work. Mixins to be written in the future.
     // This is a little bonus. You don't need it for off canvas to work. Mixins to be written in the future.
     .tab-bar .menu-icon {
     .tab-bar .menu-icon {
-      text-indent: $tabbar-menu-icon-text-indent;
-      width: $tabbar-menu-icon-width;
-      height: $tabbar-menu-icon-height;
+      color: $tabbar-menu-icon-color;
       display: block;
       display: block;
+      height: $tabbar-menu-icon-height;
       padding: $tabbar-menu-icon-padding;
       padding: $tabbar-menu-icon-padding;
-      color: $tabbar-menu-icon-color;
       position: relative;
       position: relative;
+      text-indent: $tabbar-menu-icon-text-indent;
       transform: translate3d(0,0,0);
       transform: translate3d(0,0,0);
+      width: $tabbar-menu-icon-width;
 
 
       // @include for the hamburger menu-icon
       // @include for the hamburger menu-icon
       //
       //
@@ -325,6 +447,8 @@ $menu-slide: "transform 500ms ease" !default;
 
 
     .left-off-canvas-menu { @include off-canvas-menu($position: left); }
     .left-off-canvas-menu { @include off-canvas-menu($position: left); }
     .right-off-canvas-menu { @include off-canvas-menu($position: right); }
     .right-off-canvas-menu { @include off-canvas-menu($position: right); }
+    .top-off-canvas-menu { @include off-canvas-menu($position: top); }
+    .bottom-off-canvas-menu { @include off-canvas-menu($position: bottom); }
 
 
     ul.off-canvas-list { @include off-canvas-list; }
     ul.off-canvas-list { @include off-canvas-list; }
 
 
@@ -345,8 +469,23 @@ $menu-slide: "transform 500ms ease" !default;
       }
       }
       .exit-off-canvas { @include back-link; }
       .exit-off-canvas { @include back-link; }
     }
     }
+    .move-top {
+      > .inner-wrap {
+        @include translate3d(0,-($off-canvas-height),0);
+
+      }
+      .exit-off-canvas { @include back-link; }
+    }
+    .move-bottom {
+      > .inner-wrap {
+        @include translate3d(0,($off-canvas-height),0);
+
+      }
+      .exit-off-canvas { @include back-link; }
+    }
     .offcanvas-overlap {
     .offcanvas-overlap {
-      .left-off-canvas-menu, .right-off-canvas-menu {
+      .left-off-canvas-menu, .right-off-canvas-menu,
+      .top-off-canvas-menu, .bottom-off-canvas-menu {
         -ms-transform: none;
         -ms-transform: none;
         -webkit-transform: none;
         -webkit-transform: none;
         -moz-transform: none;
         -moz-transform: none;
@@ -378,138 +517,90 @@ $menu-slide: "transform 500ms ease" !default;
       }
       }
       .exit-off-canvas { @include back-link; }
       .exit-off-canvas { @include back-link; }
     }
     }
+    .offcanvas-overlap-top {
+      .bottom-off-canvas-menu {
+        -ms-transform: none;
+        -webkit-transform: none;
+        -moz-transform: none;
+        -o-transform: none;
+        transform: none;
+        z-index: 1003;
+      }
+      .exit-off-canvas { @include back-link; }
+    }
+    .offcanvas-overlap-bottom {
+      .top-off-canvas-menu {
+        -ms-transform: none;
+        -webkit-transform: none;
+        -moz-transform: none;
+        -o-transform: none;
+        transform: none;
+        z-index: 1003;
+      }
+      .exit-off-canvas { @include back-link; }
+    }
 
 
     // Older browsers
     // Older browsers
     .no-csstransforms {
     .no-csstransforms {
       .left-off-canvas-menu { left: -($off-canvas-width); }
       .left-off-canvas-menu { left: -($off-canvas-width); }
       .right-off-canvas-menu { right: -($off-canvas-width); }
       .right-off-canvas-menu { right: -($off-canvas-width); }
+      .top-off-canvas-menu { top: -($off-canvas-height); }
+      .bottom-off-canvas-menu { bottom: -($off-canvas-height); }
 
 
       .move-left > .inner-wrap { right: $off-canvas-width; }
       .move-left > .inner-wrap { right: $off-canvas-width; }
       .move-right > .inner-wrap { left: $off-canvas-width; }
       .move-right > .inner-wrap { left: $off-canvas-width; }
-    }
+      .move-top > .inner-wrap { right: $off-canvas-height; }
+      .move-bottom > .inner-wrap { left: $off-canvas-height; }
 
 
-  }
-}
 
 
-//
-// Off-Canvas Submenu Classes
-//
-@mixin off-canvas-submenu($position) {
-  @include kill-flicker;
-  * { @include kill-flicker; }
-  width: $off-canvas-width;
-  top: 0;
-  bottom: 0;
-  position: absolute;
-  margin: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
-  background: $off-canvas-bg;
-  z-index: 1002;
-  box-sizing: content-box;
-  -webkit-overflow-scrolling: touch;
-  @if $position == left {
-    @include translate3d(-100%,0,0);
-    left: 0;
-  }
-  @if $position == right {
-    @include translate3d(100%,0,0);
-    right: 0;
-  }
-  -webkit-transition: -webkit-#{$menu-slide};
-  -moz-transition: -moz-#{$menu-slide};
-  -ms-transition: -ms-#{$menu-slide};
-  -o-transition: -o-#{$menu-slide};
-  transition: #{$menu-slide};
+    }
 
 
-  //back button style like label
-  .back > a {
-    padding: $off-canvas-label-padding;
-    color: $off-canvas-label-color;
-    text-transform: $off-canvas-label-text-transform;
-    font-weight: $off-canvas-label-font-weight;
-    background: $off-canvas-back-bg;
-    border-top: $off-canvas-back-border-top;
-    border-bottom: $off-canvas-back-border-bottom;
-    &:hover {
-    	background: $off-canvas-back-hover-bg;
-    	border-top: $off-canvas-back-hover-border-top;
-    	border-bottom: $off-canvas-back-hover-border-bottom;
+    .left-submenu {
+      @include off-canvas-submenu($position: left);
+      &.move-right, &.offcanvas-overlap-right, &.offcanvas-overlap {
+        @include translate3d(0%,0,0);
+      }
     }
     }
-    margin: $off-canvas-label-margin;
-    @if $position == right {
-      @if $text-direction == rtl {
-        &:before {
-          @include icon-double-arrows($position: left);
-        }
-      } @else {
-        &:after {
-          @include icon-double-arrows($position: right);
-        }
+
+    .right-submenu {
+      @include off-canvas-submenu($position: right);
+      &.move-left, &.offcanvas-overlap-left, &.offcanvas-overlap {
+        @include translate3d(0%,0,0);
       }
       }
     }
     }
-    @if $position == left {
-      @if $text-direction == rtl {
-        &:after {
-          @include icon-double-arrows($position: right);
-        }
-      } @else {
-        &:before {
-          @include icon-double-arrows($position: left);
-        }
+
+    .top-submenu {
+      @include off-canvas-submenu($position: top);
+      &.move-bottom, &.offcanvas-overlap-bottom, &.offcanvas-overlap {
+        @include translate3d(0,0%,0);
       }
       }
     }
     }
-  }
-}
-//Left double angle quote or Right double angle quote chars
-@mixin icon-double-arrows ($position){
-  @if $position == left {
-    content: "\AB";
-    @if $text-direction == rtl {
-      margin-left: 0.5rem;
-    } @else {
-      margin-right: 0.5rem;
+
+    .bottom-submenu {
+      @include off-canvas-submenu($position: bottom);
+      &.move-top, &.offcanvas-overlap-top, &.offcanvas-overlap {
+        @include translate3d(0,0%,0);
+      }
     }
     }
-  }
-  @if $position == right {
-    content: "\BB";
+
     @if $text-direction == rtl {
     @if $text-direction == rtl {
-      margin-right: 0.5rem;
+      .left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
+        @include icon-double-arrows($position: left);
+      }
+      .right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
+        @include icon-double-arrows($position: right);
+      }
     } @else {
     } @else {
-      margin-left: 0.5rem;
+      .left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
+        @include icon-double-arrows($position: right);
+      }
+      .right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
+        @include icon-double-arrows($position: left);
+      }
     }
     }
+
   }
   }
-  display: inline;
 }
 }
 
 
-@if $include-html-off-canvas-classes {
-  .left-submenu {
-    @include off-canvas-submenu($position: left);
-    &.move-right, &.offcanvas-overlap-right, &.offcanvas-overlap {
-      @include translate3d(0%,0,0);
-    }
-  }
 
 
-  .right-submenu {
-    @include off-canvas-submenu($position: right);
-    &.move-left, &.offcanvas-overlap-left, &.offcanvas-overlap {
-      @include translate3d(0%,0,0);
-    }
-  }
 
 
-  @if $text-direction == rtl {
-    .left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
-      @include icon-double-arrows($position: left);
-    }
-    .right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
-      @include icon-double-arrows($position: right);
-    }
-  } @else {
-    .left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
-       @include icon-double-arrows($position: right);
-    }
-    .right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
-       @include icon-double-arrows($position: left);
-    }
-  }
-}

+ 82 - 62
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_orbit.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 // @variables
 // @variables
 //
 //
@@ -10,7 +10,7 @@ $include-html-orbit-classes: $include-html-classes !default;
 
 
 // We use these to control the caption styles
 // We use these to control the caption styles
 $orbit-container-bg: none !default;
 $orbit-container-bg: none !default;
-$orbit-caption-bg: rgba(51,51,51, 0.8) !default;
+$orbit-caption-bg: rgba(51,51,51, .8) !default;
 $orbit-caption-font-color: $white !default;
 $orbit-caption-font-color: $white !default;
 $orbit-caption-font-size: rem-calc(14) !default;
 $orbit-caption-font-size: rem-calc(14) !default;
 $orbit-caption-position: "bottom" !default; // Supported values: "bottom", "under"
 $orbit-caption-position: "bottom" !default; // Supported values: "bottom", "under"
@@ -51,20 +51,30 @@ $orbit-timer-hide-for-small: true !default;
   @if $include-html-orbit-classes {
   @if $include-html-orbit-classes {
 
 
     @-webkit-keyframes rotate {
     @-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); }
+      from {
+        -webkit-transform: rotate(0deg);
+        transform: rotate(0deg);
+      }
+      to {
+          -webkit-transform: rotate(360deg);
+          transform: rotate(360deg);
+      }
     }
     }
+
+
     @keyframes rotate {
     @keyframes rotate {
-      from { transform: rotate(0deg); }
-      to { transform: rotate(360deg); }
+      from {
+          -webkit-transform: rotate(0deg);
+          -moz-transform: rotate(0deg);
+          -ms-transform: rotate(0deg);
+          transform: rotate(0deg);
+      }
+      to {
+          -webkit-transform: rotate(360deg);
+          -moz-transform: rotate(360deg);
+          -ms-transform: rotate(360deg);
+          transform: rotate(360deg);
+      }
     }
     }
 
 
     /* Orbit Graceful Loading */
     /* Orbit Graceful Loading */
@@ -98,30 +108,30 @@ $orbit-timer-hide-for-small: true !default;
 
 
       // Orbit preloader
       // Orbit preloader
       .#{$preloader-class} {
       .#{$preloader-class} {
-        display: block;
-        width: 40px;
-        height: 40px;
-        position: absolute;
-        top: 50%;
-        left: 50%;
-        margin-top: -20px;
-        margin-left: -20px;
-        border: solid 3px;
-        border-color: $charcoal $white;
         @include radius(1000px);
         @include radius(1000px);
-        animation-name: rotate;
         animation-duration: 1.5s;
         animation-duration: 1.5s;
         animation-iteration-count: infinite;
         animation-iteration-count: infinite;
+        animation-name: rotate;
         animation-timing-function: linear;
         animation-timing-function: linear;
+        border-color: $charcoal $white;
+        border: solid 3px;
+        display: block;
+        height: 40px;
+        left: 50%;
+        margin-left: -20px;
+        margin-top: -20px;
+        position: absolute;
+        top: 50%;
+        width: 40px;
       }
       }
     }
     }
 
 
 
 
     .orbit-container {
     .orbit-container {
+      background: $orbit-container-bg;
       overflow: hidden;
       overflow: hidden;
-      width: 100%;
       position: relative;
       position: relative;
-      background: $orbit-container-bg;
+      width: 100%;
 
 
       .orbit-slides-container {
       .orbit-slides-container {
         list-style: none;
         list-style: none;
@@ -131,10 +141,14 @@ $orbit-timer-hide-for-small: true !default;
 
 
         // Prevents images (and captions) from disappearing after first rotation on Chrome for Android
         // Prevents images (and captions) from disappearing after first rotation on Chrome for Android
         -webkit-transform: translateZ(0);
         -webkit-transform: translateZ(0);
+        -moz-transform: translateZ(0);
+        -ms-transform: translateZ(0);
+        -o-transform: translateZ(0);
+        transform: translateZ(0);
 
 
         img { display: block; max-width: 100%; }
         img { display: block; max-width: 100%; }
 
 
-        &>* {
+        > * {
           position: absolute;
           position: absolute;
           top: 0;
           top: 0;
           width: 100%;
           width: 100%;
@@ -147,48 +161,51 @@ $orbit-timer-hide-for-small: true !default;
 
 
           &:first-child {
           &:first-child {
             @if $text-direction == rtl {
             @if $text-direction == rtl {
-            margin-right: 0;
+              margin-right: 0;
             }
             }
             @else {
             @else {
-            margin-left: 0;
+              margin-left: 0;
             }
             }
           }
           }
 
 
           .orbit-caption {
           .orbit-caption {
             @if $orbit-caption-position == "bottom" {
             @if $orbit-caption-position == "bottom" {
-              position: absolute;
               bottom: 0;
               bottom: 0;
+              position: absolute;
             } @else if $orbit-caption-position == "under" {
             } @else if $orbit-caption-position == "under" {
               position: relative;
               position: relative;
             }
             }
 
 
             background-color: $orbit-caption-bg;
             background-color: $orbit-caption-bg;
             color: $orbit-caption-font-color;
             color: $orbit-caption-font-color;
-            width: 100%;
-            padding: $orbit-caption-padding;
             font-size: $orbit-caption-font-size;
             font-size: $orbit-caption-font-size;
+            padding: $orbit-caption-padding;
+            width: 100%;
           }
           }
         }
         }
       }
       }
 
 
       .orbit-slide-number {
       .orbit-slide-number {
-        position: absolute;
-        top: 10px;
         #{$default-float}: 10px;
         #{$default-float}: 10px;
+        background: $orbit-slide-number-bg;
+        color: $orbit-slide-number-font-color;
         font-size: 12px;
         font-size: 12px;
+        position: absolute;
         span { font-weight: 700; padding: $orbit-slide-number-padding;}
         span { font-weight: 700; padding: $orbit-slide-number-padding;}
-        color: $orbit-slide-number-font-color;
-        background: $orbit-slide-number-bg;
+        top: 10px;
         z-index: 10;
         z-index: 10;
       }
       }
 
 
       .orbit-timer {
       .orbit-timer {
+        
         position: absolute;
         position: absolute;
         top: 12px;
         top: 12px;
         #{$opposite-direction}: 10px;
         #{$opposite-direction}: 10px;
         height: 6px;
         height: 6px;
         width: 100px;
         width: 100px;
         z-index: 10;
         z-index: 10;
+        
+
         .orbit-progress {
         .orbit-progress {
           @if $orbit-timer-show-progress-bar {
           @if $orbit-timer-show-progress-bar {
             height: 3px;
             height: 3px;
@@ -198,26 +215,26 @@ $orbit-timer-hide-for-small: true !default;
             position: relative;
             position: relative;
             right: 20px;
             right: 20px;
             top: 5px;
             top: 5px;
+            
           }
           }
         }
         }
 
 
         // Play button
         // Play button
         & > span {
         & > span {
+          border: solid 4px $white;
+          border-bottom: none;
+          border-top: none;
           display: none;
           display: none;
+          height: 14px;
           position: absolute;
           position: absolute;
           top: 0;
           top: 0;
-          #{$opposite-direction}: 0;
           width: 11px;
           width: 11px;
-          height: 14px;
-          border: solid 4px $white;
-          border-top: none;
-          border-bottom: none;
+          #{$opposite-direction}: 0;
         }
         }
 
 
         // Pause button
         // Pause button
         &.paused {
         &.paused {
           & > span {
           & > span {
-            #{$opposite-direction}: -4px;
             top: 0;
             top: 0;
             width: 11px;
             width: 11px;
             height: 14px;
             height: 14px;
@@ -225,6 +242,8 @@ $orbit-timer-hide-for-small: true !default;
             border-left-style: solid;
             border-left-style: solid;
             border-color: transparent;
             border-color: transparent;
             border-left-color: $white;
             border-left-color: $white;
+            #{$opposite-direction}: -4px;
+
             &.dark {
             &.dark {
               border-left-color: $oil;
               border-left-color: $oil;
             }
             }
@@ -239,15 +258,15 @@ $orbit-timer-hide-for-small: true !default;
       // Let's get those controls to be right in the center on each side
       // Let's get those controls to be right in the center on each side
       .orbit-prev,
       .orbit-prev,
       .orbit-next {
       .orbit-next {
-        position: absolute;
-        top: 45%;
-        margin-top: -25px;
-        width: 36px;
+        background-color: $orbit-nav-bg;
+        color: white;
         height: 60px;
         height: 60px;
         line-height: 50px;
         line-height: 50px;
-        color: white;
-        background-color: $orbit-nav-bg;
+        margin-top: -25px;
+        position: absolute;
         text-indent: -9999px !important;
         text-indent: -9999px !important;
+        top: 45%;
+        width: 36px;
         z-index: 10;
         z-index: 10;
 
 
         &:hover {
         &:hover {
@@ -255,13 +274,13 @@ $orbit-timer-hide-for-small: true !default;
         }
         }
 
 
         & > span {
         & > span {
+          border: inset 10px;
+          display: block;
+          height: 0;
+          margin-top: -10px;
           position: absolute;
           position: absolute;
           top: 50%;
           top: 50%;
-          margin-top: -10px;
-          display: block;
           width: 0;
           width: 0;
-          height: 0;
-          border: inset 10px;
         }
         }
       }
       }
       .orbit-prev { #{$default-float}: 0;
       .orbit-prev { #{$default-float}: 0;
@@ -290,23 +309,24 @@ $orbit-timer-hide-for-small: true !default;
 
 
     .orbit-bullets-container { text-align: center; }
     .orbit-bullets-container { text-align: center; }
     .orbit-bullets {
     .orbit-bullets {
+      display: block;
+      float: none;
       margin: 0 auto 30px auto;
       margin: 0 auto 30px auto;
       overflow: hidden;
       overflow: hidden;
       position: relative;
       position: relative;
-      top: 10px;
-      float: none;
       text-align: center;
       text-align: center;
-      display: block;
+      top: 10px;
 
 
       li {
       li {
-        cursor:pointer;
-        display: inline-block;
-        width: $orbit-bullet-radius;
-        height: $orbit-bullet-radius;
         background: $orbit-bullet-nav-color;
         background: $orbit-bullet-nav-color;
+        cursor: pointer;
+        display: inline-block;
         // float: $default-float;
         // float: $default-float;
         float: none;
         float: none;
+        height: $orbit-bullet-radius;
         margin-#{$opposite-direction}: 6px;
         margin-#{$opposite-direction}: 6px;
+        width: $orbit-bullet-radius;
+
         @include radius(1000px);
         @include radius(1000px);
 
 
         &.active {
         &.active {
@@ -344,9 +364,9 @@ $orbit-timer-hide-for-small: true !default;
       .orbit-stack-on-small {
       .orbit-stack-on-small {
         .orbit-slides-container {height: auto !important;}
         .orbit-slides-container {height: auto !important;}
         .orbit-slides-container > * {
         .orbit-slides-container > * {
+          margin:0  !important;
+          opacity: 1 !important;
           position: relative;
           position: relative;
-          margin:0 !important;
-          opacity:1 !important;
         }
         }
 
 
         .orbit-slide-number {
         .orbit-slide-number {

+ 16 - 15
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_pagination.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -51,6 +51,7 @@ $pagination-link-current-active-bg: $primary-color !default;
   a, button {
   a, button {
     cursor: $pagination-link-unavailable-cursor;
     cursor: $pagination-link-unavailable-cursor;
     color: $pagination-link-unavailable-font-color;
     color: $pagination-link-unavailable-font-color;
+    pointer-events: none;
   }
   }
   &:hover a,
   &:hover a,
   & a:focus,
   & a:focus,
@@ -68,19 +69,19 @@ $pagination-link-current-active-bg: $primary-color !default;
     a, button {
     a, button {
       background: $pagination-link-current-background;
       background: $pagination-link-current-background;
       color: $pagination-link-current-font-color;
       color: $pagination-link-current-font-color;
-      font-weight: $pagination-link-current-font-weight;
       cursor: $pagination-link-current-cursor;
       cursor: $pagination-link-current-cursor;
+      font-weight: $pagination-link-current-font-weight;
 
 
       &:hover,
       &:hover,
       &:focus { background: $pagination-link-current-active-bg; }
       &:focus { background: $pagination-link-current-active-bg; }
     }
     }
   } @else {
   } @else {
-    height: auto;
-    padding: $pagination-link-pad;
     background: $pagination-link-current-background;
     background: $pagination-link-current-background;
     color: $pagination-link-current-font-color;
     color: $pagination-link-current-font-color;
-    font-weight: $pagination-link-current-font-weight;
     cursor: $pagination-link-current-cursor;
     cursor: $pagination-link-current-cursor;
+    font-weight: $pagination-link-current-font-weight;
+    height: auto;
+    padding: $pagination-link-pad;
     @include radius;
     @include radius;
 
 
     &:hover,
     &:hover,
@@ -98,25 +99,25 @@ $pagination-link-current-active-bg: $primary-color !default;
 
 
   @if $base-style {
   @if $base-style {
     display: block;
     display: block;
-    min-height: $pagination-height;
     margin-#{$default-float}: $pagination-margin;
     margin-#{$default-float}: $pagination-margin;
+    min-height: $pagination-height;
 
 
     li {
     li {
-      height: $pagination-li-height;
       color: $pagination-li-font-color;
       color: $pagination-li-font-color;
       font-size: $pagination-li-font-size;
       font-size: $pagination-li-font-size;
+      height: $pagination-li-height;
       margin-#{$default-float}: $pagination-li-margin;
       margin-#{$default-float}: $pagination-li-margin;
 
 
       a, button {
       a, button {
-        display: block;
-        padding: $pagination-link-pad;
-        color: $pagination-link-font-color;
-        background: none;
         @include radius;
         @include radius;
-        font-weight: normal;
+        @include single-transition(background-color);
+        background: none;
+        color: $pagination-link-font-color;
+        display: block;
         font-size: 1em;
         font-size: 1em;
+        font-weight: normal;
         line-height: inherit;
         line-height: inherit;
-        @include single-transition(background-color);
+        padding: $pagination-link-pad;
       }
       }
 
 
       &:hover a,
       &:hover a,
@@ -135,11 +136,11 @@ $pagination-link-current-active-bg: $primary-color !default;
   // Left or center align the li elements
   // Left or center align the li elements
   li {
   li {
     @if $center {
     @if $center {
-      float: none;
       display: inline-block;
       display: inline-block;
+      float: none;
     } @else {
     } @else {
-      float: $pagination-li-float;
       display: block;
       display: block;
+      float: $pagination-li-float;
     }
     }
   }
   }
 }
 }

+ 21 - 15
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_panels.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -13,10 +13,10 @@ $include-html-panel-classes: $include-html-classes !default;
 $panel-bg: scale-color($white, $lightness: -5%) !default;
 $panel-bg: scale-color($white, $lightness: -5%) !default;
 $panel-border-style: solid !default;
 $panel-border-style: solid !default;
 $panel-border-size: 1px !default;
 $panel-border-size: 1px !default;
+$callout-panel-bg: scale-color($primary-color, $lightness: 94%) !default;
 
 
 // We use this % to control how much we darken things on hover
 // We use this % to control how much we darken things on hover
-$panel-function-factor: -11% !default;
-$panel-border-color: scale-color($panel-bg, $lightness: $panel-function-factor) !default;
+$panel-border-color: scale-color($panel-bg, $lightness: -11%) !default;
 
 
 // We use these to set default inner padding and bottom margin
 // We use these to set default inner padding and bottom margin
 $panel-margin-bottom: rem-calc(20) !default;
 $panel-margin-bottom: rem-calc(20) !default;
@@ -36,14 +36,20 @@ $callout-panel-link-color-hover: scale-color($callout-panel-link-color, $lightne
 // $bg - Sets the panel background color. Default: $panel-pg || scale-color($white, $lightness: -5%) !default
 // $bg - Sets the panel background color. Default: $panel-pg || scale-color($white, $lightness: -5%) !default
 // $padding - Sets the panel padding amount. Default: $panel-padding || rem-calc(20)
 // $padding - Sets the panel padding amount. Default: $panel-padding || rem-calc(20)
 // $adjust - Sets the font color based on the darkness of the bg & resets header line-heights for panels. Default: $panel-header-adjust || true
 // $adjust - Sets the font color based on the darkness of the bg & resets header line-heights for panels. Default: $panel-header-adjust || true
-@mixin panel($bg:$panel-bg, $padding:$panel-padding, $adjust:$panel-header-adjust) {
+@mixin panel($bg:$panel-bg, $padding:$panel-padding, $adjust:$panel-header-adjust, $border:true) {
 
 
   @if $bg {
   @if $bg {
     $bg-lightness: lightness($bg);
     $bg-lightness: lightness($bg);
 
 
-    border-style: $panel-border-style;
-    border-width: $panel-border-size;
-    border-color: scale-color($bg, $lightness: $panel-function-factor);
+    @if $border {
+      border-style: $panel-border-style;
+      border-width: $panel-border-size;
+      border-color: $panel-border-color;
+    } @else {
+      border-style: none;
+      border-width: 0;
+    }
+
     margin-bottom: $panel-margin-bottom;
     margin-bottom: $panel-margin-bottom;
     padding: $padding;
     padding: $padding;
 
 
@@ -52,20 +58,20 @@ $callout-panel-link-color-hover: scale-color($callout-panel-link-color, $lightne
     @else { color: $panel-font-color-alt; }
     @else { color: $panel-font-color-alt; }
 
 
     // Respect the padding, fool.
     // Respect the padding, fool.
-    &>:first-child { margin-top: 0; }
-    &>:last-child { margin-bottom: 0; }
+    > :first-child { margin-top: 0; }
+    > :last-child { margin-bottom: 0; }
 
 
     @if $adjust {
     @if $adjust {
       // We set the font color based on the darkness of the bg.
       // We set the font color based on the darkness of the bg.
-      @if $bg-lightness >= 50% { 
-        h1,h2,h3,h4,h5,h6,p,li,dl { color: $panel-font-color; }
+      @if $bg-lightness >= 50% {
+        h1, h2, h3, h4, h5, h6, p, li, dl { color: $panel-font-color; }
       }
       }
-      @else { 
-        h1,h2,h3,h4,h5,h6,p,li,dl { color: $panel-font-color-alt; }
+      @else {
+        h1, h2, h3, h4, h5, h6, p, li, dl { color: $panel-font-color-alt; }
       }
       }
 
 
       // reset header line-heights for panels
       // reset header line-heights for panels
-      h1,h2,h3,h4,h5,h6 {
+      h1, h2, h3, h4, h5, h6 {
         line-height: 1; margin-bottom: rem-calc(20) / 2;
         line-height: 1; margin-bottom: rem-calc(20) / 2;
         &.subheader { line-height: 1.4; }
         &.subheader { line-height: 1.4; }
       }
       }
@@ -80,7 +86,7 @@ $callout-panel-link-color-hover: scale-color($callout-panel-link-color, $lightne
     .panel { @include panel;
     .panel { @include panel;
 
 
       &.callout {
       &.callout {
-        @include panel(scale-color($primary-color, $lightness: 94%));
+        @include panel($callout-panel-bg);
         a:not(.button) {
         a:not(.button) {
           color: $callout-panel-link-color;
           color: $callout-panel-link-color;
 
 

+ 16 - 16
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_pricing-tables.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -75,12 +75,12 @@ $price-cta-padding: rem-calc(20 20 0) !default;
 // We use this mixin to create the pricing table title styles
 // We use this mixin to create the pricing table title styles
 @mixin pricing-table-title {
 @mixin pricing-table-title {
   background-color: $price-title-bg;
   background-color: $price-title-bg;
-  padding: $price-title-padding;
-  text-align: $price-title-align;
   color: $price-title-color;
   color: $price-title-color;
-  font-weight: $price-title-weight;
-  font-size: $price-title-size;
   font-family: $price-title-font-family;
   font-family: $price-title-font-family;
+  font-size: $price-title-size;
+  font-weight: $price-title-weight;
+  padding: $price-title-padding;
+  text-align: $price-title-align;
 }
 }
 
 
 // @mixins
 // @mixins
@@ -88,12 +88,12 @@ $price-cta-padding: rem-calc(20 20 0) !default;
 // We use this mixin to control the pricing table price styles
 // We use this mixin to control the pricing table price styles
 @mixin pricing-table-price {
 @mixin pricing-table-price {
   background-color: $price-money-bg;
   background-color: $price-money-bg;
-  padding: $price-money-padding;
-  text-align: $price-money-align;
   color: $price-money-color;
   color: $price-money-color;
-  font-weight: $price-money-weight;
-  font-size: $price-money-size;
   font-family: $price-money-font-family;
   font-family: $price-money-font-family;
+  font-size: $price-money-size;
+  font-weight: $price-money-weight;
+  padding: $price-money-padding;
+  text-align: $price-money-align;
 }
 }
 
 
 // @mixins
 // @mixins
@@ -101,13 +101,13 @@ $price-cta-padding: rem-calc(20 20 0) !default;
 // We use this mixin to create the description styles for the pricing table
 // We use this mixin to create the description styles for the pricing table
 @mixin pricing-table-description {
 @mixin pricing-table-description {
   background-color: $price-bg;
   background-color: $price-bg;
-  padding: $price-desc-padding;
-  text-align: $price-desc-align;
+  border-bottom: $price-desc-bottom-border;
   color: $price-desc-color;
   color: $price-desc-color;
   font-size: $price-desc-font-size;
   font-size: $price-desc-font-size;
   font-weight: $price-desc-weight;
   font-weight: $price-desc-weight;
   line-height: $price-desc-line-height;
   line-height: $price-desc-line-height;
-  border-bottom: $price-desc-bottom-border;
+  padding: $price-desc-padding;
+  text-align: $price-desc-align;
 }
 }
 
 
 // @mixins
 // @mixins
@@ -115,12 +115,12 @@ $price-cta-padding: rem-calc(20 20 0) !default;
 // We use this mixin to style the bullet items in the pricing table
 // We use this mixin to style the bullet items in the pricing table
 @mixin pricing-table-bullet {
 @mixin pricing-table-bullet {
   background-color: $price-bg;
   background-color: $price-bg;
-  padding: $price-item-padding;
-  text-align: $price-item-align;
+  border-bottom: $price-item-bottom-border;
   color: $price-item-color;
   color: $price-item-color;
   font-size: $price-item-font-size;
   font-size: $price-item-font-size;
   font-weight: $price-item-weight;
   font-weight: $price-item-weight;
-  border-bottom: $price-item-bottom-border;
+  padding: $price-item-padding;
+  text-align: $price-item-align;
 }
 }
 
 
 // @mixins
 // @mixins
@@ -128,8 +128,8 @@ $price-cta-padding: rem-calc(20 20 0) !default;
 // We use this mixin to style the CTA area of the pricing tables
 // We use this mixin to style the CTA area of the pricing tables
 @mixin pricing-table-cta {
 @mixin pricing-table-cta {
   background-color: $price-cta-bg;
   background-color: $price-cta-bg;
-  text-align: $price-cta-align;
   padding: $price-cta-padding;
   padding: $price-cta-padding;
+  text-align: $price-cta-align;
 }
 }
 
 
 @include exports("pricing-table") {
 @include exports("pricing-table") {

+ 10 - 4
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_progress-bars.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -34,10 +34,10 @@ $progress-meter-alert-color: $alert-color !default;
 // We use this to set up the progress bar container
 // We use this to set up the progress bar container
 @mixin progress-container {
 @mixin progress-container {
   background-color: $progress-bar-color;
   background-color: $progress-bar-color;
-  height: $progress-bar-height;
   border: $progress-bar-border-size $progress-bar-border-style $progress-bar-border-color;
   border: $progress-bar-border-size $progress-bar-border-style $progress-bar-border-color;
-  padding: $progress-bar-pad;
+  height: $progress-bar-height;
   margin-bottom: $progress-bar-margin-bottom;
   margin-bottom: $progress-bar-margin-bottom;
+  padding: $progress-bar-pad;
 }
 }
 
 
 // @mixins
 // @mixins
@@ -45,8 +45,10 @@ $progress-meter-alert-color: $alert-color !default;
 // $bg - Default: $progress-meter-color || $primary-color
 // $bg - Default: $progress-meter-color || $primary-color
 @mixin progress-meter($bg:$progress-meter-color) {
 @mixin progress-meter($bg:$progress-meter-color) {
   background: $bg;
   background: $bg;
-  height: 100%;
   display: block;
   display: block;
+  height: 100%;
+  float: left;
+  width: 0%;
 }
 }
 
 
 
 
@@ -60,6 +62,10 @@ $progress-meter-alert-color: $alert-color !default;
       // Meter
       // Meter
       .meter {
       .meter {
         @include progress-meter;
         @include progress-meter;
+
+        &.secondary { @include progress-meter($bg:$progress-meter-secondary-color); }
+        &.success { @include progress-meter($bg:$progress-meter-success-color); }
+        &.alert { @include progress-meter($bg:$progress-meter-alert-color); }
       }
       }
       &.secondary .meter { @include progress-meter($bg:$progress-meter-secondary-color); }
       &.secondary .meter { @include progress-meter($bg:$progress-meter-secondary-color); }
       &.success .meter { @include progress-meter($bg:$progress-meter-success-color); }
       &.success .meter { @include progress-meter($bg:$progress-meter-success-color); }

+ 25 - 18
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_range-slider.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @name _range-slider.scss
 // @name _range-slider.scss
@@ -15,7 +15,7 @@
 
 
 $include-html-range-slider-classes: $include-html-classes !default;
 $include-html-range-slider-classes: $include-html-classes !default;
 
 
-// These variabels define the slider bar styles
+// These variables define the slider bar styles
 $range-slider-bar-width: 100% !default;
 $range-slider-bar-width: 100% !default;
 $range-slider-bar-height: rem-calc(16) !default;
 $range-slider-bar-height: rem-calc(16) !default;
 
 
@@ -31,7 +31,7 @@ $range-slider-active-segment-bg-color: scale-color($secondary-color, $lightness:
 $range-slider-vertical-bar-width: rem-calc(16) !default;
 $range-slider-vertical-bar-width: rem-calc(16) !default;
 $range-slider-vertical-bar-height: rem-calc(200) !default;
 $range-slider-vertical-bar-height: rem-calc(200) !default;
 
 
-// These variabels define the slider handle styles
+// These variables define the slider handle styles
 $range-slider-handle-width: rem-calc(32) !default;
 $range-slider-handle-width: rem-calc(32) !default;
 $range-slider-handle-height: rem-calc(22) !default;
 $range-slider-handle-height: rem-calc(22) !default;
 $range-slider-handle-position-top: rem-calc(-5) !default;
 $range-slider-handle-position-top: rem-calc(-5) !default;
@@ -44,7 +44,7 @@ $range-slider-handle-round: $global-rounded !default;
 $range-slider-handle-bg-hover-color: scale-color($primary-color, $lightness: -12%) !default;
 $range-slider-handle-bg-hover-color: scale-color($primary-color, $lightness: -12%) !default;
 $range-slider-handle-cursor: pointer !default;
 $range-slider-handle-cursor: pointer !default;
 
 
-$range-slider-disabled-opacity: 0.7 !default;
+$range-slider-disabled-opacity: .7 !default;
 $range-slider-disabled-cursor: $cursor-disabled-value !default;
 $range-slider-disabled-cursor: $cursor-disabled-value !default;
 
 
 //
 //
@@ -52,19 +52,19 @@ $range-slider-disabled-cursor: $cursor-disabled-value !default;
 //
 //
 
 
 @mixin range-slider-bar-base($vertical: false) {
 @mixin range-slider-bar-base($vertical: false) {
-  position: relative;
   border: $range-slider-bar-border-width $range-slider-bar-border-style $range-slider-bar-border-color;
   border: $range-slider-bar-border-width $range-slider-bar-border-style $range-slider-bar-border-color;
   margin: rem-calc(20 0);
   margin: rem-calc(20 0);
+  position: relative;
   -ms-touch-action: none;
   -ms-touch-action: none;
   touch-action: none;
   touch-action: none;
   @if $vertical == true {
   @if $vertical == true {
     display: inline-block;
     display: inline-block;
-    width: $range-slider-vertical-bar-width;
     height: $range-slider-vertical-bar-height;
     height: $range-slider-vertical-bar-height;
+    width: $range-slider-vertical-bar-width;
   } @else {
   } @else {
     display: block;
     display: block;
-    width: $range-slider-bar-width;
     height: $range-slider-bar-height;
     height: $range-slider-bar-height;
+    width: $range-slider-bar-width;
   }
   }
 }
 }
 @mixin range-slider-bar-style(
 @mixin range-slider-bar-style(
@@ -89,19 +89,20 @@ $range-slider-disabled-cursor: $cursor-disabled-value !default;
 }
 }
 
 
 @mixin range-slider-handle-base() {
 @mixin range-slider-handle-base() {
+  border: $range-slider-handle-border-width $range-slider-handle-border-style $range-slider-handle-border-color;
+  cursor: $range-slider-handle-cursor;
   display: inline-block;
   display: inline-block;
+  height: $range-slider-handle-height;
   position: absolute;
   position: absolute;
-  z-index: 1;
   top: $range-slider-handle-position-top;
   top: $range-slider-handle-position-top;
   width: $range-slider-handle-width;
   width: $range-slider-handle-width;
-  height: $range-slider-handle-height;
-  border: $range-slider-handle-border-width $range-slider-handle-border-style $range-slider-handle-border-color;
-  cursor: $range-slider-handle-cursor;
+  z-index: 1;
 
 
   // This removes the 300ms touch delay on Windows 8
   // This removes the 300ms touch delay on Windows 8
   -ms-touch-action: manipulation;
   -ms-touch-action: manipulation;
-      touch-action: manipulation;
+  touch-action: manipulation;
 }
 }
+
 @mixin range-slider-handle-style(
 @mixin range-slider-handle-style(
   $bg: true,
   $bg: true,
   $radius: false,
   $radius: false,
@@ -118,6 +119,7 @@ $range-slider-disabled-cursor: $cursor-disabled-value !default;
     background: $range-slider-handle-bg-hover-color;
     background: $range-slider-handle-bg-hover-color;
   }
   }
 }
 }
+
 @mixin range-slider-handle() {
 @mixin range-slider-handle() {
   @include range-slider-handle-base;
   @include range-slider-handle-base;
   @include range-slider-handle-style;
   @include range-slider-handle-style;
@@ -132,15 +134,18 @@ $range-slider-disabled-cursor: $cursor-disabled-value !default;
       &.vertical-range {
       &.vertical-range {
         @include range-slider-bar-base($vertical: true);
         @include range-slider-bar-base($vertical: true);
         .range-slider-handle {
         .range-slider-handle {
-          margin-top: 0;
+          bottom: -($range-slider-vertical-bar-height - $range-slider-handle-width);
           margin-#{$default-float}: -($range-slider-handle-width / 4);
           margin-#{$default-float}: -($range-slider-handle-width / 4);
+          margin-top: 0;
           position: absolute;
           position: absolute;
-          bottom: -($range-slider-vertical-bar-height - $range-slider-handle-width);
         }
         }
         .range-slider-active-segment {
         .range-slider-active-segment {
-          width: $range-slider-bar-height - rem-calc((strip-unit($range-slider-bar-border-width) * 2));
-          height: auto;
+          border-bottom-left-radius: inherit;
+          border-bottom-right-radius: inherit;
+          border-top-left-radius: initial;
           bottom: 0;
           bottom: 0;
+          height: auto;
+          width: $range-slider-bar-height - rem-calc((strip-unit($range-slider-bar-border-width) * 2));
         }
         }
       }
       }
       &.radius {
       &.radius {
@@ -157,10 +162,12 @@ $range-slider-disabled-cursor: $cursor-disabled-value !default;
       }
       }
     }
     }
     .range-slider-active-segment {
     .range-slider-active-segment {
+      background: $range-slider-active-segment-bg-color;
+      border-bottom-left-radius: inherit;
+      border-top-left-radius: inherit;
       display: inline-block;
       display: inline-block;
-      position: absolute;
       height: $range-slider-bar-height - rem-calc((strip-unit($range-slider-bar-border-width) * 2));
       height: $range-slider-bar-height - rem-calc((strip-unit($range-slider-bar-border-width) * 2));
-      background: $range-slider-active-segment-bg-color;
+      position: absolute;
     }
     }
     .range-slider-handle {
     .range-slider-handle {
       @include range-slider-handle-base;
       @include range-slider-handle-base;

+ 30 - 27
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_reveal.scss

@@ -2,8 +2,8 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
-@import "grid";
+@import 'global';
+@import 'grid';
 
 
 //
 //
 // @name _reveal.scss
 // @name _reveal.scss
@@ -21,7 +21,7 @@ $reveal-modal-bg: $white !default;
 $reveal-position-top: rem-calc(100) !default;
 $reveal-position-top: rem-calc(100) !default;
 $reveal-default-width: 80% !default;
 $reveal-default-width: 80% !default;
 $reveal-max-width: $row-width !default;
 $reveal-max-width: $row-width !default;
-$reveal-modal-padding: rem-calc(20) !default;
+$reveal-modal-padding: rem-calc(30) !default;
 $reveal-box-shadow: 0 0 10px rgba($black,.4) !default;
 $reveal-box-shadow: 0 0 10px rgba($black,.4) !default;
 
 
 // We use these to style the reveal close button
 // We use these to style the reveal close button
@@ -52,16 +52,16 @@ $z-index-base: 1005;
 
 
 // We use this to create the reveal background overlay styles
 // We use this to create the reveal background overlay styles
 @mixin reveal-bg( $include-z-index-value: true ) {
 @mixin reveal-bg( $include-z-index-value: true ) {
-  position: fixed;
   // position: absolute; // allows modal background to extend beyond window position
   // position: absolute; // allows modal background to extend beyond window position
-  top: 0;
+  background: $reveal-overlay-bg-old; // Autoprefixer should be used to avoid such variables needed when Foundation for Sites can do so in the near future.
+  background: $reveal-overlay-bg;
   bottom: 0;
   bottom: 0;
+  display: none;
   left: 0;
   left: 0;
+  position: fixed;
   right: 0;
   right: 0;
-  background: $reveal-overlay-bg-old; // Autoprefixer should be used to avoid such variables needed when Foundation for Sites can do so in the near future.
-  background: $reveal-overlay-bg;
+  top: 0;
   z-index: if( $include-z-index-value, $z-index-base - 1, auto );
   z-index: if( $include-z-index-value, $z-index-base - 1, auto );
-  display: none;
   #{$default-float}: 0;
   #{$default-float}: 0;
 }
 }
 
 
@@ -72,13 +72,13 @@ $z-index-base: 1005;
 //
 //
 @mixin reveal-modal-base( $base-style: true, $width:$reveal-default-width, $max-width:$reveal-max-width, $border-radius: $reveal-radius) {
 @mixin reveal-modal-base( $base-style: true, $width:$reveal-default-width, $max-width:$reveal-max-width, $border-radius: $reveal-radius) {
   @if $base-style {
   @if $base-style {
-    visibility: hidden;
+    border-radius: $border-radius;
     display: none;
     display: none;
     position: absolute;
     position: absolute;
-    z-index: $z-index-base;
-    width: 100%;
     top:0;
     top:0;
-    border-radius: $border-radius;
+    visibility: hidden;
+    width: 100%;
+    z-index: $z-index-base;
     #{$default-float}: 0;
     #{$default-float}: 0;
 
 
     @media #{$small-only} {
     @media #{$small-only} {
@@ -89,18 +89,18 @@ $z-index-base: 1005;
     .column, .columns { min-width: 0; }
     .column, .columns { min-width: 0; }
 
 
     // Get rid of margin from first and last element inside modal
     // Get rid of margin from first and last element inside modal
-    & > :first-child { margin-top: 0; }
+    > :first-child { margin-top: 0; }
 
 
-    & > :last-child { margin-bottom: 0; }
+    > :last-child { margin-bottom: 0; }
   }
   }
 
 
   @if $width {
   @if $width {
     @media #{$medium-up} {
     @media #{$medium-up} {
-      width: $width;
-      max-width: $max-width;
       left: 0;
       left: 0;
-      right: 0;
       margin: 0 auto;
       margin: 0 auto;
+      max-width: $max-width;
+      right: 0;
+      width: $width;
     }
     }
   }
   }
 }
 }
@@ -136,6 +136,9 @@ $z-index-base: 1005;
   @if $box-shadow {
   @if $box-shadow {
     box-shadow: $reveal-box-shadow;
     box-shadow: $reveal-box-shadow;
   }
   }
+  @else{
+       box-shadow: none;
+  }
 
 
   // We can control how much radius is used on the modal
   // We can control how much radius is used on the modal
   @if $radius == true { @include radius($reveal-radius); }
   @if $radius == true { @include radius($reveal-radius); }
@@ -152,14 +155,14 @@ $z-index-base: 1005;
 //
 //
 // $color - Default: $reveal-close-color || $base
 // $color - Default: $reveal-close-color || $base
 @mixin reveal-close($color:$reveal-close-color) {
 @mixin reveal-close($color:$reveal-close-color) {
+  color: $color;
+  cursor: $cursor-pointer-value;
   font-size: $reveal-close-font-size;
   font-size: $reveal-close-font-size;
+  font-weight: $reveal-close-weight;
   line-height: 1;
   line-height: 1;
   position: absolute;
   position: absolute;
   top: $reveal-close-top;
   top: $reveal-close-top;
   #{$opposite-direction}: $reveal-close-side;
   #{$opposite-direction}: $reveal-close-side;
-  color: $color;
-  font-weight: $reveal-close-weight;
-  cursor: $cursor-pointer-value;
 }
 }
 
 
 @include exports("reveal") {
 @include exports("reveal") {
@@ -172,7 +175,7 @@ $z-index-base: 1005;
       @include reveal-modal-base;
       @include reveal-modal-base;
       @include reveal-modal-style(
       @include reveal-modal-style(
         $bg:$reveal-modal-bg,
         $bg:$reveal-modal-bg,
-        $padding:$reveal-modal-padding * 1.5,
+        $padding:$reveal-modal-padding,
         $border:true,
         $border:true,
         $box-shadow:true,
         $box-shadow:true,
         $radius:false,
         $radius:false,
@@ -189,15 +192,15 @@ $z-index-base: 1005;
       &.xlarge { @include reveal-modal-base(false, 95%); }
       &.xlarge { @include reveal-modal-base(false, 95%); }
       &.full {
       &.full {
         @include reveal-modal-base(false, 100%);
         @include reveal-modal-base(false, 100%);
-        top:0;
-        left:0;
-        height:100%;
         height: 100vh;
         height: 100vh;
-        min-height:100vh;
-        max-width: none !important;
+        height:100%;
+        left:0;
         margin-left: 0 !important;
         margin-left: 0 !important;
+        max-width: none !important;
+        min-height:100vh;
+        top:0;
       }
       }
-      
+
       // Modals pushed to back
       // Modals pushed to back
       &.toback {
       &.toback {
         z-index: $z-index-base - 2;
         z-index: $z-index-base - 2;

+ 15 - 11
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_side-nav.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @variables
 // @variables
@@ -22,7 +22,7 @@ $side-nav-list-margin: rem-calc(0 0 7 0) !default;
 $side-nav-link-color: $primary-color !default;
 $side-nav-link-color: $primary-color !default;
 $side-nav-link-color-active: scale-color($side-nav-link-color, $lightness: 30%) !default;
 $side-nav-link-color-active: scale-color($side-nav-link-color, $lightness: 30%) !default;
 $side-nav-link-color-hover: scale-color($side-nav-link-color, $lightness: 30%) !default;
 $side-nav-link-color-hover: scale-color($side-nav-link-color, $lightness: 30%) !default;
-$side-nav-link-bg-hover: hsla(0, 0, 0, 0.025) !default;
+$side-nav-link-bg-hover: hsla(0, 0, 0, .025) !default;
 $side-nav-link-margin: 0 !default;
 $side-nav-link-margin: 0 !default;
 $side-nav-link-padding: rem-calc(7 14) !default;
 $side-nav-link-padding: rem-calc(7 14) !default;
 $side-nav-font-size: rem-calc(14) !default;
 $side-nav-font-size: rem-calc(14) !default;
@@ -40,7 +40,7 @@ $side-nav-heading-text-transform: uppercase !default;
 // We use these to control border styles
 // We use these to control border styles
 $side-nav-divider-size: 1px !default;
 $side-nav-divider-size: 1px !default;
 $side-nav-divider-style: solid !default;
 $side-nav-divider-style: solid !default;
-$side-nav-divider-color: scale-color($white, $lightness: 10%) !default;
+$side-nav-divider-color: scale-color($white, $lightness: -10%) !default;
 
 
 
 
 //
 //
@@ -58,23 +58,24 @@ $side-nav-divider-color: scale-color($white, $lightness: 10%) !default;
   $divider-color:$side-nav-divider-color,
   $divider-color:$side-nav-divider-color,
   $font-size:$side-nav-font-size,
   $font-size:$side-nav-font-size,
   $link-color:$side-nav-link-color,
   $link-color:$side-nav-link-color,
+  $link-color-active:$side-nav-link-color-active,
   $link-color-hover:$side-nav-link-color-hover,
   $link-color-hover:$side-nav-link-color-hover,
   $link-bg-hover:$side-nav-link-bg-hover) {
   $link-bg-hover:$side-nav-link-bg-hover) {
   display: block;
   display: block;
+  font-family: $side-nav-font-family;
+  list-style-position: $side-nav-list-position;
+  list-style-type: $side-nav-list-type;
   margin: 0;
   margin: 0;
   padding: $side-nav-padding;
   padding: $side-nav-padding;
-  list-style-type: $side-nav-list-type;
-  list-style-position: $side-nav-list-position;
-  font-family: $side-nav-font-family;
 
 
   li {
   li {
-    margin: $side-nav-list-margin;
     font-size: $font-size;
     font-size: $font-size;
     font-weight: $side-nav-font-weight;
     font-weight: $side-nav-font-weight;
+    margin: $side-nav-list-margin;
 
 
     a:not(.button) {
     a:not(.button) {
-      display: block;
       color: $link-color;
       color: $link-color;
+      display: block;
       margin: $side-nav-link-margin;
       margin: $side-nav-link-margin;
       padding: $side-nav-link-padding;
       padding: $side-nav-link-padding;
       &:hover,
       &:hover,
@@ -82,19 +83,22 @@ $side-nav-divider-color: scale-color($white, $lightness: 10%) !default;
         background: $link-bg-hover;
         background: $link-bg-hover;
         color: $link-color-hover;
         color: $link-color-hover;
       }
       }
+      &:active {
+        color: $link-color-active;
+      }
     }
     }
 
 
     &.active > a:first-child:not(.button) {
     &.active > a:first-child:not(.button) {
       color: $side-nav-link-color-active;
       color: $side-nav-link-color-active;
-      font-weight: $side-nav-font-weight-active;
       font-family: $side-nav-font-family-active;
       font-family: $side-nav-font-family-active;
+      font-weight: $side-nav-font-weight-active;
     }
     }
 
 
     &.divider {
     &.divider {
       border-top: $side-nav-divider-size $side-nav-divider-style;
       border-top: $side-nav-divider-size $side-nav-divider-style;
       height: 0;
       height: 0;
-      padding: 0;
       list-style: none;
       list-style: none;
+      padding: 0;
       border-top-color: $divider-color;
       border-top-color: $divider-color;
     }
     }
 
 
@@ -111,6 +115,6 @@ $side-nav-divider-color: scale-color($white, $lightness: 10%) !default;
 
 
 @include exports("side-nav") {
 @include exports("side-nav") {
   @if $include-html-nav-classes {
   @if $include-html-nav-classes {
-    .side-nav { @include side-nav; }
+    .side-nav {@include side-nav;}
   }
   }
 }
 }

+ 16 - 16
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_split-buttons.scss

@@ -2,9 +2,9 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
-@import "buttons";
-@import "dropdown-buttons";
+@import 'global';
+@import 'buttons';
+@import 'dropdown-buttons';
 
 
 //
 //
 // @name _split-buttons.scss
 // @name _split-buttons.scss
@@ -22,6 +22,7 @@ $split-button-function-factor: 10% !default;
 $split-button-pip-color: $white !default;
 $split-button-pip-color: $white !default;
 $split-button-pip-color-alt: $oil !default;
 $split-button-pip-color-alt: $oil !default;
 $split-button-active-bg-tint: rgba(0,0,0,0.1) !default;
 $split-button-active-bg-tint: rgba(0,0,0,0.1) !default;
+$split-button-span-border-color: rgba(255,255,255,0.5) !default;
 
 
 // We use these to control tiny split buttons
 // We use these to control tiny split buttons
 $split-button-padding-tny: $button-pip-tny * 10 !default;
 $split-button-padding-tny: $button-pip-tny * 10 !default;
@@ -60,12 +61,12 @@ $split-button-pip-default-float-lrg: rem-calc(-6) !default;
 //
 //
 // $padding - Type of padding to apply. Default: medium. Options: tiny, small, medium, large.
 // $padding - Type of padding to apply. Default: medium. Options: tiny, small, medium, large.
 // $pip-color - Color of the triangle. Default: $split-button-pip-color.
 // $pip-color - Color of the triangle. Default: $split-button-pip-color.
-// $span-border - Border color of button divider. Default: $primary-color.
+// $span-border - Border color of button divider. Default: $split-button-span-border-color.
 // $base-style - Apply base style to split button. Default: true.
 // $base-style - Apply base style to split button. Default: true.
 @mixin split-button(
 @mixin split-button(
   $padding:medium,
   $padding:medium,
   $pip-color:$split-button-pip-color, 
   $pip-color:$split-button-pip-color, 
-  $span-border:$primary-color, 
+  $span-border:$split-button-span-border-color, 
   $base-style:true) {
   $base-style:true) {
 
 
   // With this, we can control whether or not the base styles come through.
   // With this, we can control whether or not the base styles come through.
@@ -90,7 +91,6 @@ $split-button-pip-default-float-lrg: rem-calc(-6) !default;
         display: block;
         display: block;
         border-style: inset;
         border-style: inset;
         top: 50%;
         top: 50%;
-
         #{$default-float}: 50%;
         #{$default-float}: 50%;
       }
       }
 
 
@@ -101,7 +101,7 @@ $split-button-pip-default-float-lrg: rem-calc(-6) !default;
   // Control the border color for the span area of the split button
   // Control the border color for the span area of the split button
   @if $span-border {
   @if $span-border {
     span {
     span {
-      border-#{$default-float}-color: rgba(255,255,255,0.5);
+      border-#{$default-float}-color: $span-border;
     }
     }
   }
   }
 
 
@@ -113,8 +113,8 @@ $split-button-pip-default-float-lrg: rem-calc(-6) !default;
       &:after {
       &:after {
         border-top-style: solid;
         border-top-style: solid;
         border-width: $split-button-pip-size-tny;
         border-width: $split-button-pip-size-tny;
-        top: 48%;
         margin-#{$default-float}: $split-button-pip-default-float-tny;
         margin-#{$default-float}: $split-button-pip-default-float-tny;
+        top: 48%;
       }
       }
     }
     }
   }
   }
@@ -127,8 +127,8 @@ $split-button-pip-default-float-lrg: rem-calc(-6) !default;
       &:after {
       &:after {
         border-top-style: solid;
         border-top-style: solid;
         border-width: $split-button-pip-size-sml;
         border-width: $split-button-pip-size-sml;
-        top: 48%;
         margin-#{$default-float}: $split-button-pip-default-float-sml;
         margin-#{$default-float}: $split-button-pip-default-float-sml;
+        top: 48%;
       }
       }
     }
     }
   }
   }
@@ -141,8 +141,8 @@ $split-button-pip-default-float-lrg: rem-calc(-6) !default;
       &:after {
       &:after {
         border-top-style: solid;
         border-top-style: solid;
         border-width: $split-button-pip-size-med;
         border-width: $split-button-pip-size-med;
-        top: 48%;
         margin-#{$default-float}: $split-button-pip-default-float-med;
         margin-#{$default-float}: $split-button-pip-default-float-med;
+        top: 48%;
       }
       }
     }
     }
   }
   }
@@ -155,8 +155,8 @@ $split-button-pip-default-float-lrg: rem-calc(-6) !default;
       &:after {
       &:after {
         border-top-style: solid;
         border-top-style: solid;
         border-width: $split-button-pip-size-lrg;
         border-width: $split-button-pip-size-lrg;
-        top: 48%;
         margin-#{$default-float}: $split-button-pip-default-float-lrg;
         margin-#{$default-float}: $split-button-pip-default-float-lrg;
+        top: 48%;
       }
       }
     }
     }
   }
   }
@@ -172,9 +172,9 @@ $split-button-pip-default-float-lrg: rem-calc(-6) !default;
 
 
     .split.button { @include split-button;
     .split.button { @include split-button;
 
 
-      &.secondary { @include split-button(false, $split-button-pip-color, $secondary-color, false); }
-      &.alert { @include split-button(false, false, $alert-color, false); }
-      &.success { @include split-button(false, false, $success-color, false); }
+      &.secondary { @include split-button(false, $split-button-pip-color, $split-button-span-border-color, false); }
+      &.alert { @include split-button(false, false, $split-button-span-border-color, false); }
+      &.success { @include split-button(false, false, $split-button-span-border-color, false); }
 
 
       &.tiny { @include split-button(tiny, false, false, false); }
       &.tiny { @include split-button(tiny, false, false, false); }
       &.small { @include split-button(small, false, false, false); }
       &.small { @include split-button(small, false, false, false); }
@@ -189,12 +189,12 @@ $split-button-pip-default-float-lrg: rem-calc(-6) !default;
         span:before{ border-style:none; }
         span:before{ border-style:none; }
         span:after{ border-style:none; }
         span:after{ border-style:none; }
         span>i{
         span>i{
-          top: 50%;
           display: block;
           display: block;
-          position: absolute;
           left: 50%;
           left: 50%;
           margin-left: -0.28889em;
           margin-left: -0.28889em;
           margin-top: -0.48889em;
           margin-top: -0.48889em;
+          position: absolute;
+          top: 50%;
         }
         }
       }
       }
     }
     }

+ 14 - 11
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_sub-nav.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @name _sub-nav.scss
 // @name _sub-nav.scss
@@ -59,10 +59,10 @@ $sub-nav-item-divider-margin: rem-calc(12) !default;
   $active-bg: $sub-nav-active-bg,
   $active-bg: $sub-nav-active-bg,
   $active-bg-hover: $sub-nav-active-bg-hover) {
   $active-bg-hover: $sub-nav-active-bg-hover) {
   display: block;
   display: block;
-  width: auto;
+  margin: $sub-nav-list-margin;
   overflow: hidden;
   overflow: hidden;
-  margin-bottom: $sub-nav-list-margin;
   padding-top: $sub-nav-list-padding-top;
   padding-top: $sub-nav-list-padding-top;
+  width: auto;
 
 
   dt {
   dt {
     text-transform: uppercase;
     text-transform: uppercase;
@@ -71,18 +71,19 @@ $sub-nav-item-divider-margin: rem-calc(12) !default;
   dt,
   dt,
   dd,
   dd,
   li {
   li {
+    color: $font-color;
     float: $default-float;
     float: $default-float;
-    margin-#{$default-float}: rem-calc(16);
-    margin-bottom: 0;
     font-family: $sub-nav-font-family;
     font-family: $sub-nav-font-family;
-    font-weight: $sub-nav-font-weight;
     font-size: $font-size;
     font-size: $font-size;
-    color: $font-color;
+    font-weight: $sub-nav-font-weight;
+    margin-#{$default-float}: rem-calc(16);
+    margin-bottom: 0;
 
 
     a {
     a {
-      text-decoration: $sub-nav-text-decoration;
       color: $sub-nav-font-color;
       color: $sub-nav-font-color;
       padding: $sub-nav-padding;
       padding: $sub-nav-padding;
+      text-decoration: $sub-nav-text-decoration;
+
       &:hover {
       &:hover {
         color: $sub-nav-font-color-hover;
         color: $sub-nav-font-color-hover;
       }
       }
@@ -90,15 +91,17 @@ $sub-nav-item-divider-margin: rem-calc(12) !default;
 
 
     &.active a {
     &.active a {
       @include radius($sub-nav-border-radius);
       @include radius($sub-nav-border-radius);
-      font-weight: $sub-nav-active-font-weight;
       background: $active-bg;
       background: $active-bg;
-      padding: $sub-nav-active-padding;
-      cursor: $sub-nav-active-cursor;
       color: $sub-nav-active-color;
       color: $sub-nav-active-color;
+      cursor: $sub-nav-active-cursor;
+      font-weight: $sub-nav-active-font-weight;
+      padding: $sub-nav-active-padding;
+
       &:hover {
       &:hover {
         background: $active-bg-hover;
         background: $active-bg-hover;
       }
       }
     }
     }
+
     @if $sub-nav-item-divider != "" {
     @if $sub-nav-item-divider != "" {
       margin-#{$default-float}: 0;
       margin-#{$default-float}: 0;
 
 

+ 22 - 19
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_switches.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @name
 // @name
@@ -44,24 +44,26 @@ $switch-active-color: $primary-color !default;
   $transition-speed:$switch-paddle-transition-speed,
   $transition-speed:$switch-paddle-transition-speed,
   $transition-ease:$switch-paddle-transition-ease) {
   $transition-ease:$switch-paddle-transition-ease) {
 
 
-  padding: 0;
   border: none;
   border: none;
-  position: relative;
+  margin-bottom: $switch-bottom-margin;
   outline: 0;
   outline: 0;
+  padding: 0;
+  position: relative;
   -webkit-user-select: none;
   -webkit-user-select: none;
-     -moz-user-select: none;
-          user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
 
 
   // Default label styles for type and transition
   // Default label styles for type and transition
   label {
   label {
+    background: $switch-bg;
+    color: transparent;
+    cursor: pointer;
     display: block;
     display: block;
     margin-bottom: ($switch-height-med / 2);
     margin-bottom: ($switch-height-med / 2);
     position: relative;
     position: relative;
-    color: transparent;
-    background: $switch-bg;
     text-indent: 100%;
     text-indent: 100%;
     width: $switch-height-med * 2; height: $switch-height-med;
     width: $switch-height-med * 2; height: $switch-height-med;
-    cursor: pointer;
 
 
     // Transition for the switch label to follow paddle
     // Transition for the switch label to follow paddle
     @include single-transition(left, $transition-speed, $transition-ease);
     @include single-transition(left, $transition-speed, $transition-ease);
@@ -70,11 +72,11 @@ $switch-active-color: $primary-color !default;
   // So that we don't need to recreate the form with any JS, we use the
   // So that we don't need to recreate the form with any JS, we use the
   // existing checkbox or radio button, but we cleverly position and hide it.
   // existing checkbox or radio button, but we cleverly position and hide it.
   input {
   input {
+    left: 10px;
     opacity: 0;
     opacity: 0;
+    padding:0;
     position: absolute;
     position: absolute;
     top: 9px;
     top: 9px;
-    left: 10px;
-    padding:0;
 
 
     & + label { margin-left: 0; margin-right: 0; }
     & + label { margin-left: 0; margin-right: 0; }
   }
   }
@@ -84,14 +86,14 @@ $switch-active-color: $primary-color !default;
   // the state of the input.
   // the state of the input.
 
 
   label:after {
   label:after {
+    background: $switch-paddle-bg;
     content: "";
     content: "";
     display: block;
     display: block;
-    background: $switch-paddle-bg;
+    height: $switch-height-med - .5rem;
+    left: .25rem;
     position: absolute;
     position: absolute;
     top: .25rem;
     top: .25rem;
-    left: .25rem;
-    width: $switch-height-med - 0.5rem;
-    height: $switch-height-med - 0.5rem;
+    width: $switch-height-med - .5rem;
 
 
     -webkit-transition: left $transition-speed $transition-ease;
     -webkit-transition: left $transition-speed $transition-ease;
     -moz-transition: left $transition-speed $transition-ease;
     -moz-transition: left $transition-speed $transition-ease;
@@ -100,6 +102,7 @@ $switch-active-color: $primary-color !default;
 
 
     -webkit-transform: translate3d(0,0,0);
     -webkit-transform: translate3d(0,0,0);
     -moz-transform: translate3d(0,0,0);
     -moz-transform: translate3d(0,0,0);
+    -ms-transform: translate3d(0,0,0);
     -o-transform: translate3d(0,0,0);
     -o-transform: translate3d(0,0,0);
     transform: translate3d(0,0,0);
     transform: translate3d(0,0,0);
   }
   }
@@ -109,7 +112,7 @@ $switch-active-color: $primary-color !default;
   }
   }
 
 
   input:checked + label:after {
   input:checked + label:after {
-    left: $switch-height-med + 0.25rem;
+    left: $switch-height-med + .25rem;
   }
   }
 }
 }
 
 
@@ -121,17 +124,17 @@ $switch-active-color: $primary-color !default;
 @mixin switch-size($height: $switch-height-med) {
 @mixin switch-size($height: $switch-height-med) {
 
 
   label {
   label {
-    width: $height * 2;
     height: $height;
     height: $height;
+    width: $height * 2;
   }
   }
 
 
   label:after {
   label:after {
-    width: $height - 0.5rem;
-    height: $height - 0.5rem;
+    height: $height - .5rem;
+    width: $height - .5rem;
   }
   }
 
 
   input:checked + label:after {
   input:checked + label:after {
-    left: $height + 0.25rem;
+    left: $height + .25rem;
   }
   }
 
 
 }
 }

+ 8 - 8
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_tables.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @name _tables.scss
 // @name _tables.scss
@@ -62,8 +62,8 @@ $table-margin-bottom: rem-calc(20) !default;
 
 
 @mixin table {
 @mixin table {
   background: $table-bg;
   background: $table-bg;
-  margin-bottom: $table-margin-bottom;
   border: $table-border-style $table-border-size $table-border-color;
   border: $table-border-style $table-border-size $table-border-color;
+  margin-bottom: $table-margin-bottom;
   table-layout: $table-layout;
   table-layout: $table-layout;
 
 
   caption {
   caption {
@@ -81,10 +81,10 @@ $table-margin-bottom: rem-calc(20) !default;
     tr {
     tr {
       th,
       th,
       td {
       td {
-        padding: $table-head-padding;
+        color: $table-head-font-color;
         font-size: $table-head-font-size;
         font-size: $table-head-font-size;
         font-weight: $table-head-font-weight;
         font-weight: $table-head-font-weight;
-        color: $table-head-font-color;
+        padding: $table-head-padding;
       }
       }
     }
     }
   }
   }
@@ -95,10 +95,10 @@ $table-margin-bottom: rem-calc(20) !default;
     tr {
     tr {
       th,
       th,
       td {
       td {
-        padding: $table-foot-padding;
+        color: $table-foot-font-color;
         font-size: $table-foot-font-size;
         font-size: $table-foot-font-size;
         font-weight: $table-foot-font-weight;
         font-weight: $table-foot-font-weight;
-        color: $table-foot-font-color;
+        padding: $table-foot-padding;
       }
       }
     }
     }
   }
   }
@@ -106,9 +106,9 @@ $table-margin-bottom: rem-calc(20) !default;
   tr {
   tr {
     th,
     th,
     td {
     td {
-      padding: $table-row-padding;
-      font-size: $table-row-font-size;
       color: $table-row-font-color;
       color: $table-row-font-color;
+      font-size: $table-row-font-size;
+      padding: $table-row-padding;
       text-align: $default-float;
       text-align: $default-float;
     }
     }
 
 

+ 50 - 33
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_tabs.scss

@@ -2,8 +2,8 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
-@import "grid";
+@import 'global';
+@import 'grid';
 
 
 //
 //
 // @variables
 // @variables
@@ -31,46 +31,48 @@ $tabs-vertical-navigation-margin-bottom: 1.25rem !default;
       @include clearfix;
       @include clearfix;
       margin-bottom: 0 !important;
       margin-bottom: 0 !important;
       margin-left: 0;
       margin-left: 0;
-      dd, .tab-title {
-        position: relative;
-        margin-bottom: 0 !important;
-        list-style: none;
+
+      dd,
+      .tab-title {
         float: $default-float;
         float: $default-float;
+        list-style: none;
+        margin-bottom: 0 !important;
+        position: relative;
+
         > a {
         > a {
           display: block;
           display: block;
-          background: {
-            color: $tabs-navigation-bg-color;
-          }
+          background-color: $tabs-navigation-bg-color;
           color: $tabs-navigation-font-color;
           color: $tabs-navigation-font-color;
-          padding: $tabs-navigation-padding $tabs-navigation-padding * 2;
           font-family: $tabs-navigation-font-family;
           font-family: $tabs-navigation-font-family;
           font-size: $tabs-navigation-font-size;
           font-size: $tabs-navigation-font-size;
+          padding: $tabs-navigation-padding $tabs-navigation-padding * 2;
+
           &:hover {
           &:hover {
-            background: {
-              color: $tabs-navigation-hover-bg-color;
-            }
-          }
-          &:focus{
-              outline: none;
+            background-color: $tabs-navigation-hover-bg-color;
           }
           }
         }
         }
-        &.active a {
-          background: {
-            color: $tabs-navigation-active-bg-color;
-          }
-          color:$tabs-navigation-active-font-color;
-          }
+
+        &.active > a {
+          background-color: $tabs-navigation-active-bg-color;
+          color: $tabs-navigation-active-font-color;
+        }
       }
       }
+
       &.radius {
       &.radius {
-        dd:first-child, .tab:first-child {
+        dd:first-child,
+        .tab:first-child {
           a { @include side-radius($default-float, $global-radius); }
           a { @include side-radius($default-float, $global-radius); }
         }
         }
-        dd:last-child, .tab:last-child {
+
+        dd:last-child,
+        .tab:last-child {
           a { @include side-radius($opposite-direction, $global-radius); }
           a { @include side-radius($opposite-direction, $global-radius); }
         }
         }
       }
       }
+
       &.vertical {
       &.vertical {
-        dd, .tab-title {
+        dd,
+        .tab-title {
           position: inherit;
           position: inherit;
           float: none;
           float: none;
           display: block;
           display: block;
@@ -83,38 +85,53 @@ $tabs-vertical-navigation-margin-bottom: 1.25rem !default;
       @include clearfix;
       @include clearfix;
       margin-bottom: $tabs-content-margin-bottom;
       margin-bottom: $tabs-content-margin-bottom;
       width: 100%;
       width: 100%;
+
       > .content {
       > .content {
         display: none;
         display: none;
         float: $default-float;
         float: $default-float;
         padding: $tabs-content-padding 0;
         padding: $tabs-content-padding 0;
         width: 100%;
         width: 100%;
-        &.active { display: block; float: none; }
-        &.contained { padding: $tabs-content-padding; }
+
+        &.active {
+          display: block;
+          float: none;
+        }
+        &.contained {
+          padding: $tabs-content-padding;
+        }
       }
       }
+
       &.vertical {
       &.vertical {
         display: block;
         display: block;
-        > .content { padding: 0 $tabs-content-padding; }
+
+        > .content {
+          padding: 0 $tabs-content-padding;
+        }
       }
       }
     }
     }
+
     @media #{$medium-up} {
     @media #{$medium-up} {
       .tabs {
       .tabs {
         &.vertical {
         &.vertical {
-          width: 20%;
-          max-width: 20%;
           float: $default-float;
           float: $default-float;
-          margin: 0 0 $tabs-vertical-navigation-margin-bottom;
+          margin: 0;
+          margin-bottom: $tabs-vertical-navigation-margin-bottom !important;
+          max-width: 20%;
+          width: 20%;
         }
         }
       }
       }
+
       .tabs-content {
       .tabs-content {
         &.vertical {
         &.vertical {
-          width: 80%;
-          max-width: 80%;
           float: $default-float;
           float: $default-float;
           margin-#{$default-float}: -1px;
           margin-#{$default-float}: -1px;
+          max-width: 80%;
           padding-#{$default-float}: 1rem;
           padding-#{$default-float}: 1rem;
+          width: 80%;
         }
         }
       }
       }
     }
     }
+
     .no-js {
     .no-js {
       .tabs-content > .content {
       .tabs-content > .content {
         display: block;
         display: block;

+ 8 - 8
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_thumbs.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // @name _thumbs.scss
 // @name _thumbs.scss
@@ -36,14 +36,14 @@ $thumb-transition-speed: 200ms !default;
 // $box-shadow - Box shadow to apply to thumbnail. Default: $thumb-box-shadow.
 // $box-shadow - Box shadow to apply to thumbnail. Default: $thumb-box-shadow.
 // $box-shadow-hover - Box shadow to apply on hover. Default: $thumb-box-shadow-hover.
 // $box-shadow-hover - Box shadow to apply on hover. Default: $thumb-box-shadow-hover.
 @mixin thumb(
 @mixin thumb(
-  $border-width:$thumb-border-width, 
-  $box-shadow:$thumb-box-shadow, 
+  $border-width:$thumb-border-width,
+  $box-shadow:$thumb-box-shadow,
   $box-shadow-hover:$thumb-box-shadow-hover) {
   $box-shadow-hover:$thumb-box-shadow-hover) {
-  line-height: 0;
-  display: inline-block;
   border: $thumb-border-style $border-width $thumb-border-color;
   border: $thumb-border-style $border-width $thumb-border-color;
-  max-width: 100%;
   box-shadow: $box-shadow;
   box-shadow: $box-shadow;
+  display: inline-block;
+  line-height: 0;
+  max-width: 100%;
 
 
   &:hover,
   &:hover,
   &:focus {
   &:focus {
@@ -58,9 +58,9 @@ $thumb-transition-speed: 200ms !default;
     /* Image Thumbnails */
     /* Image Thumbnails */
     .th {
     .th {
       @include thumb;
       @include thumb;
-      @include single-transition(all,$thumb-transition-speed,ease-out);
+      @include single-transition(all, $thumb-transition-speed, ease-out);
 
 
       &.radius { @include radius($thumb-radius); }
       &.radius { @include radius($thumb-radius); }
     }
     }
   }
   }
-}
+}

+ 0 - 72
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_toolbar.scss

@@ -1,72 +0,0 @@
-// Foundation by ZURB
-// foundation.zurb.com
-// Licensed under MIT Open Source
-// toolbar styles
-
-@import "global";
-
-.toolbar {
-	background: $oil;
-	width: 100%;
-	font-size: 0;
-	display: inline-block;
-
-	&.label-bottom .tab .tab-content {
-		i, img { margin-bottom: 10px; }
-	}
-
-	&.label-right .tab .tab-content {
-		i, img { margin-right: 10px; display: inline-block;}
-		label { display: inline-block; }
-	}
-
-	&.vertical.label-right .tab .tab-content {
-		text-align: left;
-	}
-
-	&.vertical {
-		height: 100%;
-		width: auto;
-
-		.tab {
-			width: auto;
-			margin: auto;
-			float: none;
-		}
-	}
-
-	.tab {
-		text-align: center;
-		width: 25%;
-		margin: 0 auto;
-		display: block;
-		padding: 20px;
-		float: left;
-
-		&:hover {
-			background: rgba($white, 0.1);
-		}
-	}
-}
-
-.toolbar .tab-content {
-	font-size: 16px;
-	text-align: center;
-
-	label { color: $iron; }
-
-	i {
-		font-size: 30px;
-		display: block;
-		margin: 0 auto;
-		color: $iron;
-		vertical-align: middle;
-	}
-
-	img {
-		width: 30px;
-		height: 30px;
-		display: block;
-		margin: 0 auto;
-	}
-}

+ 25 - 25
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_tooltips.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // Tooltip Variables
 // Tooltip Variables
@@ -37,9 +37,9 @@ $tooltip-max-width: 300px !default;
     /* Tooltips */
     /* Tooltips */
     .has-tip {
     .has-tip {
       border-bottom: $has-tip-border-bottom;
       border-bottom: $has-tip-border-bottom;
+      color: $has-tip-font-color;
       cursor: $has-tip-cursor-type;
       cursor: $has-tip-cursor-type;
       font-weight: $has-tip-font-weight;
       font-weight: $has-tip-font-weight;
-      color: $has-tip-font-color;
 
 
       &:hover,
       &:hover,
       &:focus {
       &:focus {
@@ -52,29 +52,29 @@ $tooltip-max-width: 300px !default;
     }
     }
 
 
     .tooltip {
     .tooltip {
+      background: $tooltip-bg;
+      color: $tooltip-font-color;
       display: none;
       display: none;
-      position: absolute;
-      z-index: 1006;
-      font-weight: $tooltip-font-weight;
       font-size: $tooltip-font-size;
       font-size: $tooltip-font-size;
+      font-weight: $tooltip-font-weight;
       line-height: $tooltip-line-height;
       line-height: $tooltip-line-height;
-      padding: $tooltip-padding;
       max-width: $tooltip-max-width;
       max-width: $tooltip-max-width;
-      #{$default-float}: 50%;
+      padding: $tooltip-padding;
+      position: absolute;
       width: 100%;
       width: 100%;
-      color: $tooltip-font-color;
-      background: $tooltip-bg;
+      z-index: 1006;
+      #{$default-float}: 50%;
 
 
-      &>.nub {
-        display: block;
-        #{$default-float}: $tooltip-pip-size;
-        position: absolute;
-        width: 0;
-        height: 0;
+      > .nub {
         border: solid $tooltip-pip-size;
         border: solid $tooltip-pip-size;
         border-color: transparent transparent $tooltip-bg transparent;
         border-color: transparent transparent $tooltip-bg transparent;
-        top: -($tooltip-pip-size * 2);
+        display: block;
+        height: 0;
         pointer-events: none;
         pointer-events: none;
+        position: absolute;
+        top: -($tooltip-pip-size * 2);
+        width: 0;
+        #{$default-float}: $tooltip-pip-size;
 
 
         &.rtl {
         &.rtl {
           left: auto;
           left: auto;
@@ -87,34 +87,34 @@ $tooltip-max-width: 300px !default;
       }
       }
       &.round {
       &.round {
         @include radius($tooltip-rounded);
         @include radius($tooltip-rounded);
-        &>.nub {
+        > .nub {
           left: 2rem;
           left: 2rem;
         }
         }
       }
       }
 
 
       &.opened {
       &.opened {
-        color: $has-tip-font-color-hover !important;
         border-bottom: $has-tip-border-bottom-hover !important;
         border-bottom: $has-tip-border-bottom-hover !important;
+        color: $has-tip-font-color-hover !important;
       }
       }
     }
     }
 
 
     .tap-to-close {
     .tap-to-close {
+      color: $tooltip-close-font-color;
       display: block;
       display: block;
       font-size: $tooltip-close-font-size;
       font-size: $tooltip-close-font-size;
-      color: $tooltip-close-font-color;
       font-weight: $tooltip-close-font-weight;
       font-weight: $tooltip-close-font-weight;
     }
     }
 
 
     @media #{$small} {
     @media #{$small} {
       .tooltip {
       .tooltip {
-        &>.nub {
+        > .nub {
           border-color: transparent transparent $tooltip-bg transparent;
           border-color: transparent transparent $tooltip-bg transparent;
           top: -($tooltip-pip-size * 2);
           top: -($tooltip-pip-size * 2);
         }
         }
         &.tip-top>.nub {
         &.tip-top>.nub {
           border-color: $tooltip-bg transparent transparent transparent;
           border-color: $tooltip-bg transparent transparent transparent;
-          top: auto;
           bottom: -($tooltip-pip-size * 2);
           bottom: -($tooltip-pip-size * 2);
+          top: auto;
         }
         }
 
 
         &.tip-left,
         &.tip-left,
@@ -122,17 +122,17 @@ $tooltip-max-width: 300px !default;
 
 
         &.tip-left>.nub {
         &.tip-left>.nub {
           border-color: transparent transparent transparent $tooltip-bg;
           border-color: transparent transparent transparent $tooltip-bg;
-          right: -($tooltip-pip-size * 2);
           left: auto;
           left: auto;
-          top: 50%;
           margin-top: -$tooltip-pip-size;
           margin-top: -$tooltip-pip-size;
+          right: -($tooltip-pip-size * 2);
+          top: 50%;
         }
         }
         &.tip-right>.nub {
         &.tip-right>.nub {
           border-color: transparent $tooltip-bg transparent transparent;
           border-color: transparent $tooltip-bg transparent transparent;
-          right: auto;
           left: -($tooltip-pip-size * 2);
           left: -($tooltip-pip-size * 2);
-          top: 50%;
           margin-top: -$tooltip-pip-size;
           margin-top: -$tooltip-pip-size;
+          right: auto;
+          top: 50%;
         }
         }
 
 
       }
       }

+ 170 - 121
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_top-bar.scss

@@ -2,10 +2,10 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
-@import "grid";
-@import "buttons";
-@import "forms";
+@import 'global';
+@import 'grid';
+@import 'buttons';
+@import 'forms';
 
 
 //
 //
 // Top Bar Variables
 // Top Bar Variables
@@ -33,7 +33,7 @@ $topbar-link-weight: $font-weight-normal !default;
 $topbar-link-font-size: rem-calc(13) !default;
 $topbar-link-font-size: rem-calc(13) !default;
 $topbar-link-hover-lightness: -10% !default; // Darken by 10%
 $topbar-link-hover-lightness: -10% !default; // Darken by 10%
 $topbar-link-bg: $topbar-bg !default;
 $topbar-link-bg: $topbar-bg !default;
-$topbar-link-bg-hover: $oil !default;
+$topbar-link-bg-hover: $jet !default;
 $topbar-link-bg-color-hover: $charcoal !default;
 $topbar-link-bg-color-hover: $charcoal !default;
 $topbar-link-bg-active: $primary-color !default;
 $topbar-link-bg-active: $primary-color !default;
 $topbar-link-bg-active-hover: scale-color($primary-color, $lightness: -14%) !default;
 $topbar-link-bg-active-hover: scale-color($primary-color, $lightness: -14%) !default;
@@ -42,7 +42,7 @@ $topbar-link-text-transform: none !default;
 $topbar-link-padding: ($topbar-height / 3) !default;
 $topbar-link-padding: ($topbar-height / 3) !default;
 $topbar-back-link-size: rem-calc(18) !default;
 $topbar-back-link-size: rem-calc(18) !default;
 $topbar-link-dropdown-padding: rem-calc(20) !default;
 $topbar-link-dropdown-padding: rem-calc(20) !default;
-$topbar-button-font-size: 0.75rem !default;
+$topbar-button-font-size: .75rem !default;
 $topbar-button-top: 7px !default;
 $topbar-button-top: 7px !default;
 
 
 // Style the top bar dropdown elements
 // Style the top bar dropdown elements
@@ -50,11 +50,11 @@ $topbar-dropdown-bg: $oil !default;
 $topbar-dropdown-link-color: $white !default;
 $topbar-dropdown-link-color: $white !default;
 $topbar-dropdown-link-color-hover: $topbar-link-color-hover !default;
 $topbar-dropdown-link-color-hover: $topbar-link-color-hover !default;
 $topbar-dropdown-link-bg: $oil !default;
 $topbar-dropdown-link-bg: $oil !default;
-$topbar-dropdown-link-bg-hover: $oil !default;
+$topbar-dropdown-link-bg-hover: $jet !default;
 $topbar-dropdown-link-weight: $font-weight-normal !default;
 $topbar-dropdown-link-weight: $font-weight-normal !default;
 $topbar-dropdown-toggle-size: 5px !default;
 $topbar-dropdown-toggle-size: 5px !default;
 $topbar-dropdown-toggle-color: $white !default;
 $topbar-dropdown-toggle-color: $white !default;
-$topbar-dropdown-toggle-alpha: 0.4 !default;
+$topbar-dropdown-toggle-alpha: .4 !default;
 
 
 $topbar-dropdown-label-color: $monsoon !default;
 $topbar-dropdown-label-color: $monsoon !default;
 $topbar-dropdown-label-text-transform: uppercase !default;
 $topbar-dropdown-label-text-transform: uppercase !default;
@@ -76,7 +76,7 @@ $topbar-menu-icon-position: $opposite-direction !default; // Change to $default-
 $topbar-transition-speed: 300ms !default;
 $topbar-transition-speed: 300ms !default;
 // Using rem-calc for the below breakpoint causes issues with top bar
 // Using rem-calc for the below breakpoint causes issues with top bar
 $topbar-breakpoint: #{lower-bound($medium-range)} !default; // Change to 9999px for always mobile layout
 $topbar-breakpoint: #{lower-bound($medium-range)} !default; // Change to 9999px for always mobile layout
-$topbar-media-query: $medium-up !default;
+$topbar-media-query: "#{$screen} and (min-width:#{lower-bound($topbar-breakpoint)})" !default;
 
 
 // Top-bar input styles
 // Top-bar input styles
 $topbar-input-height: rem-calc(28) !default;
 $topbar-input-height: rem-calc(28) !default;
@@ -93,13 +93,13 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
 // Accessibility mixins for hiding and showing the menu dropdown items
 // Accessibility mixins for hiding and showing the menu dropdown items
 @mixin topbar-hide-dropdown {
 @mixin topbar-hide-dropdown {
   // Makes an element visually hidden by default, but visible when focused.
   // Makes an element visually hidden by default, but visible when focused.
-  display: block;
   @include element-invisible();
   @include element-invisible();
+  display: block;
 }
 }
 
 
 @mixin topbar-show-dropdown {
 @mixin topbar-show-dropdown {
-  display: block;
   @include element-invisible-off();
   @include element-invisible-off();
+  display: block;
   position: absolute !important; // Reset the position from static to absolute
   position: absolute !important; // Reset the position from static to absolute
 }
 }
 
 
@@ -120,67 +120,76 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
       width: 100%;
       width: 100%;
       background: $topbar-bg;
       background: $topbar-bg;
 
 
-      .top-bar { margin-bottom: $topbar-margin-bottom; }
+      .top-bar {
+        margin-bottom: $topbar-margin-bottom;
+      }
     }
     }
 
 
     // Wrapped around .top-bar to make it stick to the top
     // Wrapped around .top-bar to make it stick to the top
     .fixed {
     .fixed {
-      width: 100%;
-      #{$default-float}: 0;
       position: fixed;
       position: fixed;
       top: 0;
       top: 0;
+      width: 100%;
       z-index: 99;
       z-index: 99;
+      #{$default-float}: 0;
 
 
       &.expanded:not(.top-bar) {
       &.expanded:not(.top-bar) {
-        overflow-y: auto;
         height: auto;
         height: auto;
-        width: 100%;
         max-height: 100%;
         max-height: 100%;
+        overflow-y: auto;
+        width: 100%;
 
 
         .title-area {
         .title-area {
           position: fixed;
           position: fixed;
           width: 100%;
           width: 100%;
           z-index: 99;
           z-index: 99;
         }
         }
+
         // Ensure you can scroll the menu on small screens
         // Ensure you can scroll the menu on small screens
         .top-bar-section {
         .top-bar-section {
-          z-index: 98;
           margin-top: $topbar-height;
           margin-top: $topbar-height;
+          z-index: 98;
         }
         }
       }
       }
     }
     }
 
 
     .top-bar {
     .top-bar {
-      overflow: hidden;
+      background: $topbar-bg;
       height: $topbar-height;
       height: $topbar-height;
       line-height: $topbar-height;
       line-height: $topbar-height;
-      position: relative;
-      background: $topbar-bg;
       margin-bottom: $topbar-margin-bottom;
       margin-bottom: $topbar-margin-bottom;
+      overflow: hidden;
+      position: relative;
 
 
       // Topbar Global list Styles
       // Topbar Global list Styles
       ul {
       ul {
-        margin-bottom: 0;
         list-style: none;
         list-style: none;
+        margin-bottom: 0;
       }
       }
 
 
-      .row { max-width: none; }
+      .row {
+        max-width: none;
+      }
 
 
       form,
       form,
-      input { margin-bottom: 0; }
+      input, 
+      select {
+        margin-bottom: 0;
+      }
 
 
-      input { 
-        height: $topbar-input-height; 
-        padding-top: .35rem; 
-        padding-bottom: .35rem; 
-        font-size: $topbar-button-font-size; 
+      input, 
+      select {
+        font-size: $topbar-button-font-size;
+        height: $topbar-input-height;
+        padding-bottom: .35rem;
+        padding-top: .35rem;
       }
       }
 
 
       .button, button {
       .button, button {
-        padding-top: .35rem + rem-calc(1);
-        padding-bottom: .35rem + rem-calc(1);
-        margin-bottom: 0;
         font-size: $topbar-button-font-size;
         font-size: $topbar-button-font-size;
+        margin-bottom: 0;
+        padding-bottom: .35rem + rem-calc(1);
+        padding-top: .35rem + rem-calc(1);
         // position: relative;
         // position: relative;
         // top: -1px;
         // top: -1px;
 
 
@@ -193,26 +202,26 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
 
 
       // Title Area
       // Title Area
       .title-area {
       .title-area {
-        position: relative;
         margin: 0;
         margin: 0;
+        position: relative;
       }
       }
 
 
       .name {
       .name {
+        font-size: $rem-base;
         height: $topbar-height;
         height: $topbar-height;
         margin: 0;
         margin: 0;
-        font-size: $rem-base;
-        // @if $topbar-menu-icon-position == $default-float {float: $opposite-direction;}
 
 
         h1, h2, h3, h4, p, span {
         h1, h2, h3, h4, p, span {
-          line-height: $topbar-height;
           font-size: $topbar-title-font-size;
           font-size: $topbar-title-font-size;
+          line-height: $topbar-height;
           margin: 0;
           margin: 0;
+
           a {
           a {
-            font-weight: $topbar-title-weight;
             color: $topbar-link-color;
             color: $topbar-link-color;
-            width: 75%;
             display: block;
             display: block;
+            font-weight: $topbar-title-weight;
             padding: 0 $topbar-link-padding;
             padding: 0 $topbar-link-padding;
+            width: 75%;
           }
           }
         }
         }
       }
       }
@@ -225,59 +234,50 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
 
 
         a {
         a {
           color: $topbar-link-color;
           color: $topbar-link-color;
-          text-transform: $topbar-menu-link-transform;
+          display: block;
           font-size: $topbar-menu-link-font-size;
           font-size: $topbar-menu-link-font-size;
           font-weight: $topbar-menu-link-weight;
           font-weight: $topbar-menu-link-weight;
-          position: relative;
-          display: block;
-          padding: 0 $topbar-link-padding;
           height: $topbar-height;
           height: $topbar-height;
           line-height: $topbar-height;
           line-height: $topbar-height;
+          padding: 0 $topbar-link-padding;
+          position: relative;
+          text-transform: $topbar-menu-link-transform;
         }
         }
 
 
         // Adding the class "menu-icon" will add the 3-line icon people love and adore.
         // Adding the class "menu-icon" will add the 3-line icon people love and adore.
         &.menu-icon {
         &.menu-icon {
-          top: 50%;
           margin-top: -16px;
           margin-top: -16px;
+          top: 50%;
 
 
           a {
           a {
+            @include hamburger(16px, false, 0, 1px, 6px, $topbar-menu-icon-color, "", false);
+
             @if $text-direction == rtl {
             @if $text-direction == rtl {
               text-indent: -58px;
               text-indent: -58px;
             }
             }
+            color: $topbar-menu-link-color;
             height: 34px;
             height: 34px;
             line-height: 33px;
             line-height: 33px;
             padding: 0 $topbar-link-padding+rem-calc(25) 0 $topbar-link-padding;
             padding: 0 $topbar-link-padding+rem-calc(25) 0 $topbar-link-padding;
-            color: $topbar-menu-link-color;
             position: relative;
             position: relative;
-
-            & {
-              // @include hamburger icon
-              //
-              // We use this to create the icon with three lines aka the hamburger icon, the menu-icon or the navicon
-              // $width - Width of hamburger icon
-              // $left - If false, icon will be centered horizontally || explicitly set value in rem
-              // $top - If false, icon will be centered vertically || explicitly set value in rem
-              // $thickness - thickness of lines in hamburger icon, set value in px
-              // $gap - spacing between the lines in hamburger icon, set value in px
-              // $color - icon color
-              // $hover-color - icon color during hover, here it isn't set b/c it would override $topbar-menu-icon-color-toggled
-              // $offcanvas - Set to false of @include in topbar
-              @include hamburger(16px, false, 0, 1px, 6px, $topbar-menu-icon-color, "", false);
-            }
           }
           }
         }
         }
       }
       }
 
 
       // Change things up when the top-bar is expanded
       // Change things up when the top-bar is expanded
       &.expanded {
       &.expanded {
-        height: auto;
         background: transparent;
         background: transparent;
+        height: auto;
 
 
-        .title-area { background: $topbar-bg; }
+        .title-area {
+          background: $topbar-bg;
+        }
 
 
         .toggle-topbar {
         .toggle-topbar {
-          a { color: $topbar-menu-link-color-toggled;
-      span::after {
+          a {
+            color: $topbar-menu-link-color-toggled;
+
+            span::after {
               // Shh, don't tell, but box-shadows create the menu icon :)
               // Shh, don't tell, but box-shadows create the menu icon :)
               // Change the color of the bars when the menu is expanded, using given thickness from hamburger() above
               // Change the color of the bars when the menu is expanded, using given thickness from hamburger() above
               box-shadow: 0 0 0 1px $topbar-menu-icon-color-toggled,
               box-shadow: 0 0 0 1px $topbar-menu-icon-color-toggled,
@@ -286,6 +286,21 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
             }
             }
           }
           }
         }
         }
+
+        // Fixes an issue with Desktop and Mobile Safari where deeply-nested menus don't appear
+        @media screen and (-webkit-min-device-pixel-ratio:0) {
+          .top-bar-section {
+            .has-dropdown.moved > .dropdown,
+            .dropdown {
+              clip: initial;
+            }
+
+            // This was needed as parent ul's had padding, and the clip: was allowing content to peak through
+            .has-dropdown:not(.moved) > ul {
+              padding: 0;
+            }
+          }
+        }
       }
       }
     }
     }
 
 
@@ -297,12 +312,12 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
       @include single-transition($default-float, $topbar-transition-speed);
       @include single-transition($default-float, $topbar-transition-speed);
 
 
       ul {
       ul {
-        padding: 0;
-        width: 100%;
-        height: auto;
         display: block;
         display: block;
         font-size: $rem-base;
         font-size: $rem-base;
+        height: auto;
         margin: 0;
         margin: 0;
+        padding: 0;
+        width: 100%;
       }
       }
 
 
       .divider,
       .divider,
@@ -314,55 +329,61 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
       }
       }
 
 
       ul li {
       ul li {
-        background: $topbar-dropdown-bg;
-        & > a {
-          display: block;
-          width: 100%;
+      background: $topbar-dropdown-bg;
+
+        > a {
           color: $topbar-link-color;
           color: $topbar-link-color;
-          padding: 12px 0 12px 0;
-          padding-#{$default-float}: $topbar-link-padding;
+          display: block;
           font-family: $topbar-link-font-family;
           font-family: $topbar-link-font-family;
           font-size: $topbar-link-font-size;
           font-size: $topbar-link-font-size;
           font-weight: $topbar-link-weight;
           font-weight: $topbar-link-weight;
+          padding-#{$default-float}: $topbar-link-padding;
+          padding: 12px 0 12px $topbar-link-padding;
           text-transform: $topbar-link-text-transform;
           text-transform: $topbar-link-text-transform;
+          width: 100%;
 
 
           &.button {
           &.button {
             font-size: $topbar-link-font-size;
             font-size: $topbar-link-font-size;
-            padding-#{$opposite-direction}: $topbar-link-padding;
             padding-#{$default-float}: $topbar-link-padding;
             padding-#{$default-float}: $topbar-link-padding;
+            padding-#{$opposite-direction}: $topbar-link-padding;
             @include button-style($bg:$primary-color);
             @include button-style($bg:$primary-color);
           }
           }
+
           &.button.secondary { @include button-style($bg:$secondary-color); }
           &.button.secondary { @include button-style($bg:$secondary-color); }
           &.button.success { @include button-style($bg:$success-color); }
           &.button.success { @include button-style($bg:$success-color); }
           &.button.alert { @include button-style($bg:$alert-color); }
           &.button.alert { @include button-style($bg:$alert-color); }
           &.button.warning { @include button-style($bg:$warning-color); }
           &.button.warning { @include button-style($bg:$warning-color); }
+          &.button.info { @include button-style($bg:$info-color); }
         }
         }
 
 
         > button {
         > button {
           font-size: $topbar-link-font-size;
           font-size: $topbar-link-font-size;
-          padding-#{$opposite-direction}: $topbar-link-padding;
           padding-#{$default-float}: $topbar-link-padding;
           padding-#{$default-float}: $topbar-link-padding;
+          padding-#{$opposite-direction}: $topbar-link-padding;
           @include button-style($bg:$primary-color);
           @include button-style($bg:$primary-color);
 
 
           &.secondary { @include button-style($bg:$secondary-color); }
           &.secondary { @include button-style($bg:$secondary-color); }
           &.success { @include button-style($bg:$success-color); }
           &.success { @include button-style($bg:$success-color); }
           &.alert { @include button-style($bg:$alert-color); }
           &.alert { @include button-style($bg:$alert-color); }
           &.warning { @include button-style($bg:$warning-color); }
           &.warning { @include button-style($bg:$warning-color); }
+          &.info { @include button-style($bg:$info-color); }
         }
         }
 
 
         // Apply the hover link color when it has that class
         // Apply the hover link color when it has that class
         &:hover:not(.has-form) > a {
         &:hover:not(.has-form) > a {
           background-color: $topbar-link-bg-color-hover;
           background-color: $topbar-link-bg-color-hover;
+          color: $topbar-link-color-hover;
+
           @if ($topbar-link-bg-hover) {
           @if ($topbar-link-bg-hover) {
             background: $topbar-link-bg-hover;
             background: $topbar-link-bg-hover;
           }
           }
-          color: $topbar-link-color-hover;
         }
         }
 
 
         // Apply the active link color when it has that class
         // Apply the active link color when it has that class
         &.active > a {
         &.active > a {
           background: $topbar-link-bg-active;
           background: $topbar-link-bg-active;
           color: $topbar-link-color-active;
           color: $topbar-link-color-active;
+
           &:hover {
           &:hover {
             background: $topbar-link-bg-active-hover;
             background: $topbar-link-bg-active-hover;
             color: $topbar-link-color-active-hover;
             color: $topbar-link-color-active-hover;
@@ -371,17 +392,20 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
       }
       }
 
 
       // Add some extra padding for list items contains buttons
       // Add some extra padding for list items contains buttons
-      .has-form { padding: $topbar-link-padding; }
+      .has-form {
+        padding: $topbar-link-padding;
+      }
 
 
       // Styling for list items that have a dropdown within them.
       // Styling for list items that have a dropdown within them.
       .has-dropdown {
       .has-dropdown {
         position: relative;
         position: relative;
 
 
-        & > a {
+        > a {
           &:after {
           &:after {
-            @if ($topbar-arrows){
+            @if ($topbar-arrows) {
               @include css-triangle($topbar-dropdown-toggle-size, rgba($topbar-dropdown-toggle-color, $topbar-dropdown-toggle-alpha), $default-float);
               @include css-triangle($topbar-dropdown-toggle-size, rgba($topbar-dropdown-toggle-color, $topbar-dropdown-toggle-alpha), $default-float);
             }
             }
+
             margin-#{$opposite-direction}: $topbar-link-padding;
             margin-#{$opposite-direction}: $topbar-link-padding;
             margin-top: -($topbar-dropdown-toggle-size / 2) - 2;
             margin-top: -($topbar-dropdown-toggle-size / 2) - 2;
             position: absolute;
             position: absolute;
@@ -390,12 +414,15 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
           }
           }
         }
         }
 
 
-        &.moved { position: static;
-          & > .dropdown {
+        &.moved {
+          position: static;
+
+          > .dropdown {
             @include topbar-show-dropdown();
             @include topbar-show-dropdown();
             width: 100%;
             width: 100%;
           }
           }
-          & > a:after {
+
+          > a:after {
             display: none;
             display: none;
           }
           }
         }
         }
@@ -403,16 +430,16 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
 
 
       // Styling elements inside of dropdowns
       // Styling elements inside of dropdowns
       .dropdown {
       .dropdown {
+        @include topbar-hide-dropdown();
         padding: 0;
         padding: 0;
         position: absolute;
         position: absolute;
-        #{$default-float}: 100%;
         top: 0;
         top: 0;
         z-index: 99;
         z-index: 99;
-        @include topbar-hide-dropdown();
+        #{$default-float}: 100%;
 
 
         li {
         li {
-          width: 100%;
           height: auto;
           height: auto;
+          width: 100%;
 
 
           a {
           a {
             font-weight: $topbar-dropdown-link-weight;
             font-weight: $topbar-dropdown-link-weight;
@@ -422,7 +449,8 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
             }
             }
           }
           }
 
 
-          &.title h5, &.parent-link {
+          &.title h5,
+          &.parent-link {
             // Back Button
             // Back Button
             margin-bottom: 0;
             margin-bottom: 0;
             margin-top: 0;
             margin-top: 0;
@@ -434,17 +462,24 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
               &:hover { background:none; }
               &:hover { background:none; }
             }
             }
           }
           }
-          &.has-form { padding: 8px $topbar-link-padding; }
-          .button, button { top: auto; }
+
+          &.has-form {
+            padding: 8px $topbar-link-padding;
+          }
+
+          .button,
+          button {
+            top: auto;
+          }
         }
         }
 
 
         label {
         label {
-          padding: 8px $topbar-link-padding 2px;
-          margin-bottom: 0;
-          text-transform: $topbar-dropdown-label-text-transform;
           color: $topbar-dropdown-label-color;
           color: $topbar-dropdown-label-color;
-          font-weight: $topbar-dropdown-label-font-weight;
           font-size: $topbar-dropdown-label-font-size;
           font-size: $topbar-dropdown-label-font-size;
+          font-weight: $topbar-dropdown-label-font-weight;
+          margin-bottom: 0;
+          padding: 8px $topbar-link-padding 2px;
+          text-transform: $topbar-dropdown-label-text-transform;
         }
         }
       }
       }
     }
     }
@@ -455,8 +490,8 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
     // Top Bar styles intended for screen sizes above the breakpoint.
     // Top Bar styles intended for screen sizes above the breakpoint.
     @media #{$topbar-media-query} {
     @media #{$topbar-media-query} {
       .top-bar {
       .top-bar {
-        background: $topbar-bg;
         @include clearfix;
         @include clearfix;
+        background: $topbar-bg;
         overflow: visible;
         overflow: visible;
 
 
         .toggle-topbar { display: none; }
         .toggle-topbar { display: none; }
@@ -470,21 +505,32 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
         .name h6 a { width: auto; }
         .name h6 a { width: auto; }
 
 
         input,
         input,
+        select,
         .button,
         .button,
         button {
         button {
           font-size: rem-calc(14);
           font-size: rem-calc(14);
+          height: $topbar-input-height;
           position: relative;
           position: relative;
+          top: (($topbar-height - $topbar-input-height) / 2);
+        }
+
+        .has-form > .button,
+        .has-form > button {
+          font-size: rem-calc(14);
           height: $topbar-input-height;
           height: $topbar-input-height;
+          position: relative; 
           top: (($topbar-height - $topbar-input-height) / 2);
           top: (($topbar-height - $topbar-input-height) / 2);
         }
         }
 
 
-        &.expanded { background: $topbar-bg; }
+        &.expanded {
+          background: $topbar-bg;
+        }
       }
       }
 
 
       .contain-to-grid .top-bar {
       .contain-to-grid .top-bar {
-        max-width: $row-width;
         margin: 0 auto;
         margin: 0 auto;
         margin-bottom: $topbar-margin-bottom;
         margin-bottom: $topbar-margin-bottom;
+        max-width: $row-width;
       }
       }
 
 
       .top-bar-section {
       .top-bar-section {
@@ -492,9 +538,9 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
         #{$default-float}: 0 !important;
         #{$default-float}: 0 !important;
 
 
         ul {
         ul {
-          width: auto;
-          height: auto !important;
           display: inline;
           display: inline;
+          height: auto !important;
+          width: auto;
 
 
           li {
           li {
             float: $default-float;
             float: $default-float;
@@ -512,11 +558,12 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
               color: $topbar-link-color-hover;
               color: $topbar-link-color-hover;
             }
             }
           }
           }
+
           &:not(.has-form) {
           &:not(.has-form) {
             a:not(.button) {
             a:not(.button) {
-              padding: 0 $topbar-link-padding;
-              line-height: $topbar-height;
               background: $topbar-link-bg;
               background: $topbar-link-bg;
+              line-height: $topbar-height;
+              padding: 0 $topbar-link-padding;
               &:hover {
               &:hover {
                 background-color: $topbar-link-bg-color-hover;
                 background-color: $topbar-link-bg-color-hover;
                 @if ($topbar-link-bg-hover) {
                 @if ($topbar-link-bg-hover) {
@@ -525,12 +572,13 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
               }
               }
             }
             }
           }
           }
+
           &.active:not(.has-form) {
           &.active:not(.has-form) {
             a:not(.button) {
             a:not(.button) {
-              padding: 0 $topbar-link-padding;
-              line-height: $topbar-height;
-              color: $topbar-link-color-active;
               background: $topbar-link-bg-active;
               background: $topbar-link-bg-active;
+              color: $topbar-link-color-active;
+              line-height: $topbar-height;
+              padding: 0 $topbar-link-padding;
               &:hover {
               &:hover {
                 background: $topbar-link-bg-active-hover;
                 background: $topbar-link-bg-active-hover;
                 color: $topbar-link-color-active-hover;
                 color: $topbar-link-color-active-hover;
@@ -540,8 +588,8 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
         }
         }
 
 
         .has-dropdown {
         .has-dropdown {
-          @if($topbar-arrows){
-            & > a {
+          @if $topbar-arrows {
+            > a {
               padding-#{$opposite-direction}: $topbar-link-padding + $topbar-link-dropdown-padding !important;
               padding-#{$opposite-direction}: $topbar-link-padding + $topbar-link-dropdown-padding !important;
               &:after {
               &:after {
                 @include css-triangle($topbar-dropdown-toggle-size, rgba($topbar-dropdown-toggle-color, $topbar-dropdown-toggle-alpha), top);
                 @include css-triangle($topbar-dropdown-toggle-size, rgba($topbar-dropdown-toggle-color, $topbar-dropdown-toggle-alpha), top);
@@ -552,30 +600,30 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
           }
           }
 
 
           &.moved { position: relative;
           &.moved { position: relative;
-            & > .dropdown {
+            > .dropdown {
               @include topbar-hide-dropdown();
               @include topbar-hide-dropdown();
             }
             }
           }
           }
 
 
           &.hover, &.not-click:hover {
           &.hover, &.not-click:hover {
-            & > .dropdown {
+            > .dropdown {
               @include topbar-show-dropdown();
               @include topbar-show-dropdown();
             }
             }
           }
           }
+
           > a:focus + .dropdown {
           > a:focus + .dropdown {
             @include topbar-show-dropdown();
             @include topbar-show-dropdown();
           }
           }
 
 
           .dropdown li.has-dropdown {
           .dropdown li.has-dropdown {
-            & > a {
-              @if ($topbar-dropdown-arrows){
+            > a {
+              @if ($topbar-dropdown-arrows) {
                 &:after {
                 &:after {
                   border: none;
                   border: none;
                   content: "\00bb";
                   content: "\00bb";
-                  top: 1rem;
-                  margin-top: -1px;
+                  top: rem-calc(3);
+
                   #{$opposite-direction}: 5px;
                   #{$opposite-direction}: 5px;
-                  line-height: 1.2;
                 }
                 }
               }
               }
             }
             }
@@ -584,28 +632,28 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
 
 
         .dropdown {
         .dropdown {
           #{$default-float}: 0;
           #{$default-float}: 0;
-          top: auto;
           background: transparent;
           background: transparent;
           min-width: 100%;
           min-width: 100%;
+          top: auto;
 
 
           li {
           li {
             a {
             a {
+              background: $topbar-dropdown-link-bg;
               color: $topbar-dropdown-link-color;
               color: $topbar-dropdown-link-color;
               line-height: $topbar-height;
               line-height: $topbar-height;
-              white-space: nowrap;
               padding: 12px $topbar-link-padding;
               padding: 12px $topbar-link-padding;
-              background: $topbar-dropdown-link-bg;
+              white-space: nowrap;
             }
             }
 
 
             &:not(.has-form):not(.active) {
             &:not(.has-form):not(.active) {
-              & > a:not(.button) {
-                color: $topbar-dropdown-link-color;
+              > a:not(.button) {
                 background: $topbar-dropdown-link-bg;
                 background: $topbar-dropdown-link-bg;
+                color: $topbar-dropdown-link-color;
               }
               }
 
 
               &:hover > a:not(.button) {
               &:hover > a:not(.button) {
-                color: $topbar-dropdown-link-color-hover;
                 background-color: $topbar-link-bg-color-hover;
                 background-color: $topbar-link-bg-color-hover;
+                color: $topbar-dropdown-link-color-hover;
                 @if ($topbar-dropdown-link-bg-hover) {
                 @if ($topbar-dropdown-link-bg-hover) {
                   background: $topbar-dropdown-link-bg-hover;
                   background: $topbar-dropdown-link-bg-hover;
                 }
                 }
@@ -613,8 +661,8 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
             }
             }
 
 
             label {
             label {
-              white-space: nowrap;
               background: $topbar-dropdown-label-bg;
               background: $topbar-dropdown-label-bg;
+              white-space: nowrap;
             }
             }
 
 
             // Second Level Dropdowns
             // Second Level Dropdowns
@@ -625,11 +673,11 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
           }
           }
         }
         }
 
 
-        & > ul > .divider,
-        & > ul > [role="separator"] {
+        > ul > .divider,
+        > ul > [role="separator"] {
+          border-#{$opposite-direction}: $topbar-divider-border-bottom;
           border-bottom: none;
           border-bottom: none;
           border-top: none;
           border-top: none;
-          border-#{$opposite-direction}: $topbar-divider-border-bottom;
           clear: none;
           clear: none;
           height: $topbar-height;
           height: $topbar-height;
           width: 0;
           width: 0;
@@ -637,8 +685,8 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
 
 
         .has-form {
         .has-form {
           background: $topbar-link-bg;
           background: $topbar-link-bg;
-          padding: 0 $topbar-link-padding;
           height: $topbar-height;
           height: $topbar-height;
+          padding: 0 $topbar-link-padding;
         }
         }
 
 
         // Position overrides for ul.right and ul.left
         // Position overrides for ul.right and ul.left
@@ -682,10 +730,11 @@ $topbar-dropdown-arrows: true !default; //Set false to remove the \00bb >> text
 
 
         .has-dropdown {
         .has-dropdown {
           &:hover {
           &:hover {
-            & > .dropdown {
+            > .dropdown {
               @include topbar-show-dropdown();
               @include topbar-show-dropdown();
             }
             }
           }
           }
+
           > a:focus + .dropdown {
           > a:focus + .dropdown {
             @include topbar-show-dropdown();
             @include topbar-show-dropdown();
           }
           }

+ 92 - 31
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_type.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 $include-html-type-classes: $include-html-classes !default;
 $include-html-type-classes: $include-html-classes !default;
 
 
@@ -124,6 +124,9 @@ $microformat-abbr-padding: rem-calc(0 1) !default;
 $microformat-abbr-font-weight: $font-weight-bold !default;
 $microformat-abbr-font-weight: $font-weight-bold !default;
 $microformat-abbr-font-decoration: none !default;
 $microformat-abbr-font-decoration: none !default;
 
 
+// Controls the page margin when printing the website
+$print-margin: 0.34in !default;
+
 // Text alignment class names
 // Text alignment class names
 $align-class-names:
 $align-class-names:
   small-only,
   small-only,
@@ -216,8 +219,8 @@ $align-class-breakpoints:
     /* Default Link Styles */
     /* Default Link Styles */
     a {
     a {
       color: $anchor-font-color;
       color: $anchor-font-color;
-      text-decoration: $anchor-text-decoration;
       line-height: inherit;
       line-height: inherit;
+      text-decoration: $anchor-text-decoration;
 
 
       &:hover,
       &:hover,
       &:focus {
       &:focus {
@@ -233,8 +236,8 @@ $align-class-breakpoints:
     /* Default paragraph styles */
     /* Default paragraph styles */
     p {
     p {
       font-family: $paragraph-font-family;
       font-family: $paragraph-font-family;
-      font-weight: $paragraph-font-weight;
       font-size: $paragraph-font-size;
       font-size: $paragraph-font-size;
+      font-weight: $paragraph-font-weight;
       line-height: $paragraph-line-height;
       line-height: $paragraph-line-height;
       margin-bottom: $paragraph-margin-bottom;
       margin-bottom: $paragraph-margin-bottom;
       text-rendering: $paragraph-text-rendering;
       text-rendering: $paragraph-text-rendering;
@@ -243,25 +246,25 @@ $align-class-breakpoints:
 
 
       & aside {
       & aside {
         font-size: $paragraph-aside-font-size;
         font-size: $paragraph-aside-font-size;
-        line-height: $paragraph-aside-line-height;
         font-style: $paragraph-aside-font-style;
         font-style: $paragraph-aside-font-style;
+        line-height: $paragraph-aside-line-height;
       }
       }
     }
     }
 
 
     /* Default header styles */
     /* Default header styles */
     h1, h2, h3, h4, h5, h6 {
     h1, h2, h3, h4, h5, h6 {
+      color: $header-font-color;
       font-family: $header-font-family;
       font-family: $header-font-family;
-      font-weight: $header-font-weight;
       font-style: $header-font-style;
       font-style: $header-font-style;
-      color: $header-font-color;
-      text-rendering: $header-text-rendering;
-      margin-top: $header-top-margin;
-      margin-bottom: $header-bottom-margin;
+      font-weight: $header-font-weight;
       line-height: $header-line-height;
       line-height: $header-line-height;
+      margin-bottom: $header-bottom-margin;
+      margin-top: $header-top-margin;
+      text-rendering: $header-text-rendering;
 
 
       small {
       small {
-        font-size: $small-font-size;
         color: $small-font-color;
         color: $small-font-color;
+        font-size: $small-font-size;
         line-height: 0;
         line-height: 0;
       }
       }
     }
     }
@@ -279,8 +282,8 @@ $align-class-breakpoints:
       border: $hr-border-style $hr-border-color;
       border: $hr-border-style $hr-border-color;
       border-width: $hr-border-width 0 0;
       border-width: $hr-border-width 0 0;
       clear: both;
       clear: both;
-      margin: $hr-margin 0 ($hr-margin - rem-calc($hr-border-width));
       height: 0;
       height: 0;
+      margin: $hr-margin 0 ($hr-margin - rem-calc($hr-border-width));
     }
     }
 
 
     /* Helpful Typography Defaults */
     /* Helpful Typography Defaults */
@@ -302,13 +305,13 @@ $align-class-breakpoints:
     }
     }
 
 
     code {
     code {
-      font-family: $code-font-family;
-      font-weight: $code-font-weight;
-      color: $code-color;
       background-color: $code-background-color;
       background-color: $code-background-color;
-      border-width: $code-border-size;
-      border-style: $code-border-style;
       border-color: $code-border-color;
       border-color: $code-border-color;
+      border-style: $code-border-style;
+      border-width: $code-border-size;
+      color: $code-color;
+      font-family: $code-font-family;
+      font-weight: $code-font-weight;
       padding: $code-padding;
       padding: $code-padding;
     }
     }
 
 
@@ -316,26 +319,15 @@ $align-class-breakpoints:
     ul,
     ul,
     ol,
     ol,
     dl {
     dl {
+      font-family: $list-font-family;
       font-size: $list-font-size;
       font-size: $list-font-size;
       line-height: $list-line-height;
       line-height: $list-line-height;
-      margin-bottom: $list-margin-bottom;
       list-style-position: $list-style-position;
       list-style-position: $list-style-position;
-      font-family: $list-font-family;
+      margin-bottom: $list-margin-bottom;
     }
     }
 
 
     ul {
     ul {
       margin-#{$default-float}: $list-side-margin;
       margin-#{$default-float}: $list-side-margin;
-      &.no-bullet {
-        margin-#{$default-float}: $list-side-margin-no-bullet;
-        li {
-          ul,
-          ol {
-            margin-#{$default-float}: $list-nested-margin;
-            margin-bottom: 0;
-            list-style: none;
-          }
-        }
-      }
     }
     }
 
 
     /* Unordered Lists */
     /* Unordered Lists */
@@ -356,7 +348,6 @@ $align-class-breakpoints:
       &.square { list-style-type: square; margin-#{$default-float}: $list-side-margin;}
       &.square { list-style-type: square; margin-#{$default-float}: $list-side-margin;}
       &.circle { list-style-type: circle; margin-#{$default-float}: $list-side-margin;}
       &.circle { list-style-type: circle; margin-#{$default-float}: $list-side-margin;}
       &.disc { list-style-type: disc; margin-#{$default-float}: $list-side-margin;}
       &.disc { list-style-type: disc; margin-#{$default-float}: $list-side-margin;}
-      &.no-bullet { list-style: none; }
     }
     }
 
 
     /* Ordered Lists */
     /* Ordered Lists */
@@ -371,6 +362,21 @@ $align-class-breakpoints:
       }
       }
     }
     }
 
 
+    // Lists without bullets
+    .no-bullet {
+      list-style-type: none;
+      margin-#{$default-float}: $list-side-margin-no-bullet;
+      
+      li {
+        ul,
+        ol {
+          margin-#{$default-float}: $list-nested-margin;
+          margin-bottom: 0;
+          list-style: none;
+        }
+      }
+    }
+
     /* Definition Lists */
     /* Definition Lists */
     dl {
     dl {
       dt {
       dt {
@@ -452,7 +458,7 @@ $align-class-breakpoints:
 
 
 
 
     @media #{$medium-up} {
     @media #{$medium-up} {
-      h1,h2,h3,h4,h5,h6 { line-height: $header-line-height; }
+      h1, h2, h3, h4, h5, h6 { line-height: $header-line-height; }
       h1 { font-size: $h1-font-size; }
       h1 { font-size: $h1-font-size; }
       h2 { font-size: $h2-font-size; }
       h2 { font-size: $h2-font-size; }
       h3 { font-size: $h3-font-size; }
       h3 { font-size: $h3-font-size; }
@@ -460,5 +466,60 @@ $align-class-breakpoints:
       h5 { font-size: $h5-font-size; }
       h5 { font-size: $h5-font-size; }
       h6 { font-size: $h6-font-size; }
       h6 { font-size: $h6-font-size; }
     }
     }
+
+    // Only include these styles if you want them.
+    @if $include-print-styles {
+      /*
+       * 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)
+      */
+      @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) ")"; }
+
+        // Don't show links for images, or javascript/internal links
+        .ir a:after,
+        a[href^="javascript:"]:after,
+        a[href^="#"]:after { content: ""; }
+
+        pre,
+        blockquote {
+          border: 1px solid $aluminum;
+          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: $print-margin; }
+
+        p,
+        h2,
+        h3 {
+          orphans: 3;
+          widows: 3;
+        }
+
+        h2,
+        h3 { page-break-after: avoid; }
+      }
+    }
+
   }
   }
 }
 }

+ 22 - 71
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/foundation/components/_visibility.scss

@@ -2,7 +2,7 @@
 // foundation.zurb.com
 // foundation.zurb.com
 // Licensed under MIT Open Source
 // Licensed under MIT Open Source
 
 
-@import "global";
+@import 'global';
 
 
 //
 //
 // Foundation Visibility Classes
 // Foundation Visibility Classes
@@ -276,8 +276,8 @@ $visibility-breakpoint-queries:
   }
   }
 }
 }
 
 
-
-@if $include-html-visibility-classes != false {
+@include exports("visibility"){
+  @if $include-html-visibility-classes != false {
 
 
   @include visibility-loop;
   @include visibility-loop;
 
 
@@ -390,79 +390,28 @@ $visibility-breakpoint-queries:
   th.hide-for-touch { display: table-cell !important; }
   th.hide-for-touch { display: table-cell !important; }
   .touch th.show-for-touch { display: table-cell !important; }
   .touch th.show-for-touch { display: table-cell !important; }
 
 
-  // Only include these styles if you want them.
-    @if $include-print-styles {
-      /*
-       * 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;
-        }
-        .show-for-print { display: block; }
-        .hide-for-print { display: none; }
-
-        table.show-for-print { display: table !important; }
-        thead.show-for-print { display: table-header-group !important; }
-        tbody.show-for-print { display: table-row-group !important; }
-        tr.show-for-print { display: table-row !important; }
-        td.show-for-print { display: table-cell !important; }
-        th.show-for-print { display: table-cell !important; }
-
-        a,
-        a:visited { text-decoration: underline;}
-        a[href]:after { content: " (" attr(href) ")"; }
-
-        abbr[title]:after { content: " (" attr(title) ")"; }
-
-        // Don't show links for images, or javascript/internal links
-        .ir a:after,
-        a[href^="javascript:"]:after,
-        a[href^="#"]:after { content: ""; }
-
-        pre,
-        blockquote {
-          border: 1px solid $aluminum;
-          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; }
+  /* Screen reader-specific classes */
+  .show-for-sr {
+    @include element-invisible;
+  }
+  .show-on-focus {
+    @include element-invisible;
 
 
-        .hide-on-print { display: none !important; }
-        .print-only { display: block !important; }
-        .hide-for-print { display: none !important; }
-        .show-for-print { display: inherit !important; }
-      }
+    &:focus,
+    &:active {
+      @include element-invisible-off;
     }
     }
+  }
 
 
   /* Print visibility */
   /* Print visibility */
+  @if $include-print-styles {
+    .print-only,
+    .show-for-print { display: none !important; }
     @media print {
     @media print {
-      .show-for-print { display: block; }
-      .hide-for-print { display: none; }
+      .print-only,
+      .show-for-print { display: block !important; }
+      .hide-on-print,
+      .hide-for-print { display: none !important; }
 
 
       table.show-for-print { display: table !important; }
       table.show-for-print { display: table !important; }
       thead.show-for-print { display: table-header-group !important; }
       thead.show-for-print { display: table-header-group !important; }
@@ -470,5 +419,7 @@ $visibility-breakpoint-queries:
       tr.show-for-print { display: table-row !important; }
       tr.show-for-print { display: table-row !important; }
       td.show-for-print { display: table-cell !important; }
       td.show-for-print { display: table-cell !important; }
       th.show-for-print { display: table-cell !important; }
       th.show-for-print { display: table-cell !important; }
+    }
+  }
   }
   }
 }
 }

+ 8 - 11
sites/all/themes/gui/materiobasetheme/bower_components/foundation/scss/normalize.scss

@@ -1,9 +1,9 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
 
 
 /**
 /**
  * 1. Set default font family to sans-serif.
  * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- *    user zoom.
+ * 2. Prevent iOS and IE text size adjust after device orientation change,
+ *    without disabling user zoom.
  */
  */
 
 
 html {
 html {
@@ -71,7 +71,7 @@ audio:not([controls]) {
 
 
 /**
 /**
  * Address `[hidden]` styling not present in IE 8/9/10.
  * Address `[hidden]` styling not present in IE 8/9/10.
- * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
+ * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
  */
  */
 
 
 [hidden],
 [hidden],
@@ -91,7 +91,8 @@ a {
 }
 }
 
 
 /**
 /**
- * Improve readability when focused and also mouse hovered in all browsers.
+ * Improve readability of focused elements when they are also in an
+ * active/hover state.
  */
  */
 
 
 a:active,
 a:active,
@@ -209,7 +210,6 @@ figure {
  */
  */
 
 
 hr {
 hr {
-  -moz-box-sizing: content-box;
   box-sizing: content-box;
   box-sizing: content-box;
   height: 0;
   height: 0;
 }
 }
@@ -350,15 +350,12 @@ input[type="number"]::-webkit-outer-spin-button {
 
 
 /**
 /**
  * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
  * 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).
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
  */
  */
 
 
 input[type="search"] {
 input[type="search"] {
   -webkit-appearance: textfield; /* 1 */
   -webkit-appearance: textfield; /* 1 */
-  -moz-box-sizing: content-box;
-  -webkit-box-sizing: content-box; /* 2 */
-  box-sizing: content-box;
+  box-sizing: content-box; /* 2 */
 }
 }
 
 
 /**
 /**

+ 6 - 7
sites/all/themes/gui/materiobasetheme/bower_components/jquery.lazyload/.bower.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "jquery_lazyload",
   "name": "jquery_lazyload",
-  "version": "1.9.5",
+  "version": "1.9.7",
   "homepage": "http://www.appelsiini.net/projects/lazyload",
   "homepage": "http://www.appelsiini.net/projects/lazyload",
   "authors": [
   "authors": [
     "Mika Tuupola <tuupola@appelsiini.net>"
     "Mika Tuupola <tuupola@appelsiini.net>"
@@ -24,14 +24,13 @@
     "test",
     "test",
     "img"
     "img"
   ],
   ],
-  "_release": "1.9.5",
+  "_release": "1.9.7",
   "_resolution": {
   "_resolution": {
     "type": "version",
     "type": "version",
-    "tag": "1.9.5",
-    "commit": "e54df43adef6ba76cb6f73edf80ec7f6935772d0"
+    "tag": "1.9.7",
+    "commit": "218e50eb4999fe59ac94b939a65c8c988d1d420b"
   },
   },
-  "_source": "git://github.com/tuupola/jquery_lazyload.git",
+  "_source": "https://github.com/tuupola/jquery_lazyload.git",
   "_target": "~1.9.5",
   "_target": "~1.9.5",
-  "_originalSource": "jquery.lazyload",
-  "_direct": true
+  "_originalSource": "jquery.lazyload"
 }
 }

+ 4 - 4
sites/all/themes/gui/materiobasetheme/bower_components/jquery.lazyload/README.md

@@ -10,20 +10,20 @@ Lazy Load is inspired by [YUI ImageLoader](http://developer.yahoo.com/yui/imagel
 
 
 Lazy Load depends on jQuery. Include them both in end of your HTML code:
 Lazy Load depends on jQuery. Include them both in end of your HTML code:
 
 
-```
+```html
 <script src="jquery.js" type="text/javascript"></script>
 <script src="jquery.js" type="text/javascript"></script>
 <script src="jquery.lazyload.js" type="text/javascript"></script>
 <script src="jquery.lazyload.js" type="text/javascript"></script>
 ```
 ```
 
 
 You must alter your HTML code. URL of the real image must be put into data-original attribute. It is good idea to give Lazy Loaded image a specific class. This way you can easily control which images plugin is binded to. Note that you should have width and height attributes in your image tag.
 You must alter your HTML code. URL of the real image must be put into data-original attribute. It is good idea to give Lazy Loaded image a specific class. This way you can easily control which images plugin is binded to. Note that you should have width and height attributes in your image tag.
 
 
-```
+```html
 <img class="lazy" data-original="img/example.jpg" width="640" height="480">
 <img class="lazy" data-original="img/example.jpg" width="640" height="480">
 ```
 ```
 
 
 then in your code do:
 then in your code do:
 
 
-```
+```js
 $("img.lazy").lazyload();
 $("img.lazy").lazyload();
 ```
 ```
 
 
@@ -36,7 +36,7 @@ More information on [Lazy Load](http://www.appelsiini.net/projects/lazyload) pro
 You can install with [bower](http://bower.io/) or [npm](https://www.npmjs.com/).
 You can install with [bower](http://bower.io/) or [npm](https://www.npmjs.com/).
 
 
 
 
-```
+```sh
 $ bower install jquery.lazyload
 $ bower install jquery.lazyload
 $ npm install jquery-lazyload
 $ npm install jquery-lazyload
 ```
 ```

+ 2 - 2
sites/all/themes/gui/materiobasetheme/bower_components/jquery.lazyload/jquery.lazyload.js

@@ -1,4 +1,4 @@
-/*
+/*!
  * Lazy Load - jQuery plugin for lazy loading images
  * Lazy Load - jQuery plugin for lazy loading images
  *
  *
  * Copyright (c) 2007-2015 Mika Tuupola
  * Copyright (c) 2007-2015 Mika Tuupola
@@ -9,7 +9,7 @@
  * Project home:
  * Project home:
  *   http://www.appelsiini.net/projects/lazyload
  *   http://www.appelsiini.net/projects/lazyload
  *
  *
- * Version:  1.9.5
+ * Version:  1.9.7
  *
  *
  */
  */
 
 

+ 8 - 20
sites/all/themes/gui/materiobasetheme/bower_components/jquery/.bower.json

@@ -1,37 +1,25 @@
 {
 {
   "name": "jquery",
   "name": "jquery",
-  "version": "2.1.3",
   "main": "dist/jquery.js",
   "main": "dist/jquery.js",
   "license": "MIT",
   "license": "MIT",
   "ignore": [
   "ignore": [
-    "**/.*",
-    "build",
-    "speed",
-    "test",
-    "*.md",
-    "AUTHORS.txt",
-    "Gruntfile.js",
     "package.json"
     "package.json"
   ],
   ],
-  "devDependencies": {
-    "sizzle": "2.1.1-jquery.2.1.2",
-    "requirejs": "2.1.10",
-    "qunit": "1.14.0",
-    "sinon": "1.8.1"
-  },
   "keywords": [
   "keywords": [
     "jquery",
     "jquery",
     "javascript",
     "javascript",
+    "browser",
     "library"
     "library"
   ],
   ],
-  "homepage": "https://github.com/jquery/jquery",
-  "_release": "2.1.3",
+  "homepage": "https://github.com/jquery/jquery-dist",
+  "version": "3.2.1",
+  "_release": "3.2.1",
   "_resolution": {
   "_resolution": {
     "type": "version",
     "type": "version",
-    "tag": "2.1.3",
-    "commit": "8f2a9d9272d6ed7f32d3a484740ab342c02541e0"
+    "tag": "3.2.1",
+    "commit": "77d2a51d0520d2ee44173afdf4e40a9201f5964e"
   },
   },
-  "_source": "git://github.com/jquery/jquery.git",
-  "_target": ">=1.6",
+  "_source": "https://github.com/jquery/jquery-dist.git",
+  "_target": ">= 2.1.0",
   "_originalSource": "jquery"
   "_originalSource": "jquery"
 }
 }

+ 301 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/AUTHORS.txt

@@ -0,0 +1,301 @@
+Authors ordered by first contribution.
+
+John Resig <jeresig@gmail.com>
+Gilles van den Hoven <gilles0181@gmail.com>
+Michael Geary <mike@geary.com>
+Stefan Petre <stefan.petre@gmail.com>
+Yehuda Katz <wycats@gmail.com>
+Corey Jewett <cj@syntheticplayground.com>
+Klaus Hartl <klaus.hartl@gmail.com>
+Franck Marcia <franck.marcia@gmail.com>
+Jörn Zaefferer <joern.zaefferer@gmail.com>
+Paul Bakaus <paul.bakaus@gmail.com>
+Brandon Aaron <brandon.aaron@gmail.com>
+Mike Alsup <malsup@gmail.com>
+Dave Methvin <dave.methvin@gmail.com>
+Ed Engelhardt <edengelhardt@gmail.com>
+Sean Catchpole <littlecooldude@gmail.com>
+Paul Mclanahan <pmclanahan@gmail.com>
+David Serduke <davidserduke@gmail.com>
+Richard D. Worth <rdworth@gmail.com>
+Scott González <scott.gonzalez@gmail.com>
+Ariel Flesler <aflesler@gmail.com>
+Jon Evans <jon@springyweb.com>
+TJ Holowaychuk <tj@vision-media.ca>
+Michael Bensoussan <mickey@seesmic.com>
+Robert Katić <robert.katic@gmail.com>
+Louis-Rémi Babé <lrbabe@gmail.com>
+Earle Castledine <mrspeaker@gmail.com>
+Damian Janowski <damian.janowski@gmail.com>
+Rich Dougherty <rich@rd.gen.nz>
+Kim Dalsgaard <kim@kimdalsgaard.com>
+Andrea Giammarchi <andrea.giammarchi@gmail.com>
+Mark Gibson <jollytoad@gmail.com>
+Karl Swedberg <kswedberg@gmail.com>
+Justin Meyer <justinbmeyer@gmail.com>
+Ben Alman <cowboy@rj3.net>
+James Padolsey <cla@padolsey.net>
+David Petersen <public@petersendidit.com>
+Batiste Bieler <batiste.bieler@gmail.com>
+Alexander Farkas <info@corrupt-system.de>
+Rick Waldron <waldron.rick@gmail.com>
+Filipe Fortes <filipe@fortes.com>
+Neeraj Singh <neerajdotname@gmail.com>
+Paul Irish <paul.irish@gmail.com>
+Iraê Carvalho <irae@irae.pro.br>
+Matt Curry <matt@pseudocoder.com>
+Michael Monteleone <michael@michaelmonteleone.net>
+Noah Sloan <noah.sloan@gmail.com>
+Tom Viner <github@viner.tv>
+Douglas Neiner <doug@dougneiner.com>
+Adam J. Sontag <ajpiano@ajpiano.com>
+Dave Reed <dareed@microsoft.com>
+Ralph Whitbeck <ralph.whitbeck@gmail.com>
+Carl Fürstenberg <azatoth@gmail.com>
+Jacob Wright <jacwright@gmail.com>
+J. Ryan Stinnett <jryans@gmail.com>
+unknown <Igen005@.upcorp.ad.uprr.com>
+temp01 <temp01irc@gmail.com>
+Heungsub Lee <h@subl.ee>
+Colin Snover <github.com@zetafleet.com>
+Ryan W Tenney <ryan@10e.us>
+Pinhook <contact@pinhooklabs.com>
+Ron Otten <r.j.g.otten@gmail.com>
+Jephte Clain <Jephte.Clain@univ-reunion.fr>
+Anton Matzneller <obhvsbypqghgc@gmail.com>
+Alex Sexton <AlexSexton@gmail.com>
+Dan Heberden <danheberden@gmail.com>
+Henri Wiechers <hwiechers@gmail.com>
+Russell Holbrook <russell.holbrook@patch.com>
+Julian Aubourg <aubourg.julian@gmail.com>
+Gianni Alessandro Chiappetta <gianni@runlevel6.org>
+Scott Jehl <scottjehl@gmail.com>
+James Burke <jrburke@gmail.com>
+Jonas Pfenniger <jonas@pfenniger.name>
+Xavi Ramirez <xavi.rmz@gmail.com>
+Jared Grippe <jared@deadlyicon.com>
+Sylvester Keil <sylvester@keil.or.at>
+Brandon Sterne <bsterne@mozilla.com>
+Mathias Bynens <mathias@qiwi.be>
+Timmy Willison <4timmywil@gmail.com>
+Corey Frang <gnarf37@gmail.com>
+Digitalxero <digitalxero>
+Anton Kovalyov <anton@kovalyov.net>
+David Murdoch <david@davidmurdoch.com>
+Josh Varner <josh.varner@gmail.com>
+Charles McNulty <cmcnulty@kznf.com>
+Jordan Boesch <jboesch26@gmail.com>
+Jess Thrysoee <jess@thrysoee.dk>
+Michael Murray <m@murz.net>
+Lee Carpenter <elcarpie@gmail.com>
+Alexis Abril <me@alexisabril.com>
+Rob Morgan <robbym@gmail.com>
+John Firebaugh <john_firebaugh@bigfix.com>
+Sam Bisbee <sam@sbisbee.com>
+Gilmore Davidson <gilmoreorless@gmail.com>
+Brian Brennan <me@brianlovesthings.com>
+Xavier Montillet <xavierm02.net@gmail.com>
+Daniel Pihlstrom <sciolist.se@gmail.com>
+Sahab Yazdani <sahab.yazdani+github@gmail.com>
+avaly <github-com@agachi.name>
+Scott Hughes <hi@scott-hughes.me>
+Mike Sherov <mike.sherov@gmail.com>
+Greg Hazel <ghazel@gmail.com>
+Schalk Neethling <schalk@ossreleasefeed.com>
+Denis Knauf <Denis.Knauf@gmail.com>
+Timo Tijhof <krinklemail@gmail.com>
+Steen Nielsen <swinedk@gmail.com>
+Anton Ryzhov <anton@ryzhov.me>
+Shi Chuan <shichuanr@gmail.com>
+Berker Peksag <berker.peksag@gmail.com>
+Toby Brain <tobyb@freshview.com>
+Matt Mueller <mattmuelle@gmail.com>
+Justin <drakefjustin@gmail.com>
+Daniel Herman <daniel.c.herman@gmail.com>
+Oleg Gaidarenko <markelog@gmail.com>
+Richard Gibson <richard.gibson@gmail.com>
+Rafaël Blais Masson <rafbmasson@gmail.com>
+cmc3cn <59194618@qq.com>
+Joe Presbrey <presbrey@gmail.com>
+Sindre Sorhus <sindresorhus@gmail.com>
+Arne de Bree <arne@bukkie.nl>
+Vladislav Zarakovsky <vlad.zar@gmail.com>
+Andrew E Monat <amonat@gmail.com>
+Oskari <admin@o-programs.com>
+Joao Henrique de Andrade Bruni <joaohbruni@yahoo.com.br>
+tsinha <tsinha@Anthonys-MacBook-Pro.local>
+Matt Farmer <matt@frmr.me>
+Trey Hunner <treyhunner@gmail.com>
+Jason Moon <jmoon@socialcast.com>
+Jeffery To <jeffery.to@gmail.com>
+Kris Borchers <kris.borchers@gmail.com>
+Vladimir Zhuravlev <private.face@gmail.com>
+Jacob Thornton <jacobthornton@gmail.com>
+Chad Killingsworth <chadkillingsworth@missouristate.edu>
+Nowres Rafid <nowres.rafed@gmail.com>
+David Benjamin <davidben@mit.edu>
+Uri Gilad <antishok@gmail.com>
+Chris Faulkner <thefaulkner@gmail.com>
+Elijah Manor <elijah.manor@gmail.com>
+Daniel Chatfield <chatfielddaniel@gmail.com>
+Nikita Govorov <nikita.govorov@gmail.com>
+Wesley Walser <waw325@gmail.com>
+Mike Pennisi <mike@mikepennisi.com>
+Markus Staab <markus.staab@redaxo.de>
+Dave Riddle <david@joyvuu.com>
+Callum Macrae <callum@lynxphp.com>
+Benjamin Truyman <bentruyman@gmail.com>
+James Huston <james@jameshuston.net>
+Erick Ruiz de Chávez <erickrdch@gmail.com>
+David Bonner <dbonner@cogolabs.com>
+Akintayo Akinwunmi <aakinwunmi@judge.com>
+MORGAN <morgan@morgangraphics.com>
+Ismail Khair <ismail.khair@gmail.com>
+Carl Danley <carldanley@gmail.com>
+Mike Petrovich <michael.c.petrovich@gmail.com>
+Greg Lavallee <greglavallee@wapolabs.com>
+Daniel Gálvez <dgalvez@editablething.com>
+Sai Lung Wong <sai.wong@huffingtonpost.com>
+Tom H Fuertes <TomFuertes@gmail.com>
+Roland Eckl <eckl.roland@googlemail.com>
+Jay Merrifield <fracmak@gmail.com>
+Allen J Schmidt Jr <cobrasoft@gmail.com>
+Jonathan Sampson <jjdsampson@gmail.com>
+Marcel Greter <marcel.greter@ocbnet.ch>
+Matthias Jäggli <matthias.jaeggli@gmail.com>
+David Fox <dfoxinator@gmail.com>
+Yiming He <yiminghe@gmail.com>
+Devin Cooper <cooper.semantics@gmail.com>
+Paul Ramos <paul.b.ramos@gmail.com>
+Rod Vagg <rod@vagg.org>
+Bennett Sorbo <bsorbo@gmail.com>
+Sebastian Burkhard <sebi.burkhard@gmail.com>
+Zachary Adam Kaplan <razic@viralkitty.com>
+nanto_vi <nanto@moon.email.ne.jp>
+nanto <nanto@moon.email.ne.jp>
+Danil Somsikov <danilasomsikov@gmail.com>
+Ryunosuke SATO <tricknotes.rs@gmail.com>
+Jean Boussier <jean.boussier@gmail.com>
+Adam Coulombe <me@adam.co>
+Andrew Plummer <plummer.andrew@gmail.com>
+Mark Raddatz <mraddatz@gmail.com>
+Isaac Z. Schlueter <i@izs.me>
+Karl Sieburg <ksieburg@yahoo.com>
+Pascal Borreli <pascal@borreli.com>
+Nguyen Phuc Lam <ruado1987@gmail.com>
+Dmitry Gusev <dmitry.gusev@gmail.com>
+Michał Gołębiowski <m.goleb@gmail.com>
+Li Xudong <istonelee@gmail.com>
+Steven Benner <admin@stevenbenner.com>
+Tom H Fuertes <tomfuertes@gmail.com>
+Renato Oliveira dos Santos <ros3@cin.ufpe.br>
+ros3cin <ros3@cin.ufpe.br>
+Jason Bedard <jason+jquery@jbedard.ca>
+Kyle Robinson Young <kyle@dontkry.com>
+Chris Talkington <chris@talkingtontech.com>
+Eddie Monge <eddie@eddiemonge.com>
+Terry Jones <terry@jon.es>
+Jason Merino <jasonmerino@gmail.com>
+Jeremy Dunck <jdunck@gmail.com>
+Chris Price <price.c@gmail.com>
+Guy Bedford <guybedford@gmail.com>
+Amey Sakhadeo <me@ameyms.com>
+Mike Sidorov <mikes.ekb@gmail.com>
+Anthony Ryan <anthonyryan1@gmail.com>
+Dominik D. Geyer <dominik.geyer@gmail.com>
+George Kats <katsgeorgeek@gmail.com>
+Lihan Li <frankieteardrop@gmail.com>
+Ronny Springer <springer.ronny@gmail.com>
+Chris Antaki <ChrisAntaki@gmail.com>
+Marian Sollmann <marian.sollmann@cargomedia.ch>
+njhamann <njhamann@gmail.com>
+Ilya Kantor <iliakan@gmail.com>
+David Hong <d.hong@me.com>
+John Paul <john@johnkpaul.com>
+Jakob Stoeck <jakob@pokermania.de>
+Christopher Jones <chris@cjqed.com>
+Forbes Lindesay <forbes@lindesay.co.uk>
+S. Andrew Sheppard <andrew@wq.io>
+Leonardo Balter <leonardo.balter@gmail.com>
+Roman Reiß <me@silverwind.io>
+Benjy Cui <benjytrys@gmail.com>
+Rodrigo Rosenfeld Rosas <rr.rosas@gmail.com>
+John Hoven <hovenj@gmail.com>
+Philip Jägenstedt <philip@foolip.org>
+Christian Kosmowski <ksmwsk@gmail.com>
+Liang Peng <poppinlp@gmail.com>
+TJ VanToll <tj.vantoll@gmail.com>
+Senya Pugach <upisfree@outlook.com>
+Aurelio De Rosa <aurelioderosa@gmail.com>
+Nazar Mokrynskyi <nazar@mokrynskyi.com>
+Amit Merchant <bullredeyes@gmail.com>
+Jason Bedard <jason+github@jbedard.ca>
+Arthur Verschaeve <contact@arthurverschaeve.be>
+Dan Hart <danhart@notonthehighstreet.com>
+Bin Xin <rhyzix@gmail.com>
+David Corbacho <davidcorbacho@gmail.com>
+Veaceslav Grimalschi <grimalschi@yandex.ru>
+Daniel Husar <dano.husar@gmail.com>
+Frederic Hemberger <mail@frederic-hemberger.de>
+Ben Toews <mastahyeti@gmail.com>
+Aditya Raghavan <araghavan3@gmail.com>
+Victor Homyakov <vkhomyackov@gmail.com>
+Shivaji Varma <contact@shivajivarma.com>
+Nicolas HENRY <icewil@gmail.com>
+Anne-Gaelle Colom <coloma@westminster.ac.uk>
+George Mauer <gmauer@gmail.com>
+Leonardo Braga <leonardo.braga@gmail.com>
+Stephen Edgar <stephen@netweb.com.au>
+Thomas Tortorini <thomastortorini@gmail.com>
+Winston Howes <winstonhowes@gmail.com>
+Jon Hester <jon.d.hester@gmail.com>
+Alexander O'Mara <me@alexomara.com>
+Bastian Buchholz <buchholz.bastian@googlemail.com>
+Arthur Stolyar <nekr.fabula@gmail.com>
+Calvin Metcalf <calvin.metcalf@gmail.com>
+Mu Haibao <mhbseal@163.com>
+Richard McDaniel <rm0026@uah.edu>
+Chris Rebert <github@rebertia.com>
+Gabriel Schulhof <gabriel.schulhof@intel.com>
+Gilad Peleg <giladp007@gmail.com>
+Martin Naumann <martin@geekonaut.de>
+Marek Lewandowski <m.lewandowski@cksource.com>
+Bruno Pérel <brunoperel@gmail.com>
+Reed Loden <reed@reedloden.com>
+Daniel Nill <daniellnill@gmail.com>
+Yongwoo Jeon <yongwoo.jeon@navercorp.com>
+Sean Henderson <seanh.za@gmail.com>
+Richard Kraaijenhagen <stdin+git@riichard.com>
+Connor Atherton <c.liam.atherton@gmail.com>
+Gary Ye <garysye@gmail.com>
+Christian Grete <webmaster@christiangrete.com>
+Liza Ramo <liza.h.ramo@gmail.com>
+Julian Alexander Murillo <julian.alexander.murillo@gmail.com>
+Joelle Fleurantin <joasqueeniebee@gmail.com>
+Jae Sung Park <alberto.park@gmail.com>
+Jun Sun <klsforever@gmail.com>
+Josh Soref <apache@soref.com>
+Henry Wong <henryw4k@gmail.com>
+Jon Dufresne <jon.dufresne@gmail.com>
+Martijn W. van der Lee <martijn@vanderlee.com>
+Devin Wilson <dwilson6.github@gmail.com>
+Steve Mao <maochenyan@gmail.com>
+Zack Hall <zackhall@outlook.com>
+Bernhard M. Wiedemann <jquerybmw@lsmod.de>
+Todor Prikumov <tono_pr@abv.bg>
+Jha Naman <createnaman@gmail.com>
+William Robinet <william.robinet@conostix.com>
+Alexander Lisianoi <all3fox@gmail.com>
+Vitaliy Terziev <vitaliyterziev@gmail.com>
+Joe Trumbull <trumbull.j@gmail.com>
+Alexander K <xpyro@ya.ru>
+Damian Senn <jquery@topaxi.codes>
+Ralin Chimev <ralin.chimev@gmail.com>
+Felipe Sateler <fsateler@gmail.com>
+Christophe Tafani-Dereeper <christophetd@hotmail.fr>
+Manoj Kumar <nithmanoj@gmail.com>
+David Broder-Rodgers <broder93@gmail.com>
+Alex Louden <alex@louden.com>
+Alex Padilla <alexonezero@outlook.com>
+南漂一卒 <shiy007@qq.com>
+karan-96 <karanbatra96@gmail.com>

+ 36 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/LICENSE.txt

@@ -0,0 +1,36 @@
+Copyright JS Foundation and other contributors, https://js.foundation/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/jquery
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.

+ 67 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/README.md

@@ -0,0 +1,67 @@
+# jQuery
+
+> jQuery is a fast, small, and feature-rich JavaScript library.
+
+For information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).
+For source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).
+
+If upgrading, please see the [blog post for 3.2.1](https://blog.jquery.com/2017/03/20/jquery-3-2-1-now-available/). This includes notable differences from the previous version and a more readable changelog.
+
+## Including jQuery
+
+Below are some of the most common ways to include jQuery.
+
+### Browser
+
+#### Script tag
+
+```html
+<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
+```
+
+#### Babel
+
+[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.
+
+```js
+import $ from "jquery";
+```
+
+#### Browserify/Webpack
+
+There are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...
+
+```js
+var $ = require("jquery");
+```
+
+#### AMD (Asynchronous Module Definition)
+
+AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).
+
+```js
+define(["jquery"], function($) {
+
+});
+```
+
+### Node
+
+To include jQuery in [Node](nodejs.org), first install with npm.
+
+```sh
+npm install jquery
+```
+
+For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.
+
+```js
+require("jsdom").env("", function(err, window) {
+	if (err) {
+		console.error(err);
+		return;
+	}
+
+	var $ = require("jquery")(window);
+});
+```

+ 2 - 15
sites/all/themes/gui/materiobasetheme/bower_components/jquery/bower.json

@@ -1,27 +1,14 @@
 {
 {
   "name": "jquery",
   "name": "jquery",
-  "version": "2.1.3",
   "main": "dist/jquery.js",
   "main": "dist/jquery.js",
   "license": "MIT",
   "license": "MIT",
   "ignore": [
   "ignore": [
-    "**/.*",
-    "build",
-    "speed",
-    "test",
-    "*.md",
-    "AUTHORS.txt",
-    "Gruntfile.js",
     "package.json"
     "package.json"
   ],
   ],
-  "devDependencies": {
-    "sizzle": "2.1.1-jquery.2.1.2",
-    "requirejs": "2.1.10",
-    "qunit": "1.14.0",
-    "sinon": "1.8.1"
-  },
   "keywords": [
   "keywords": [
     "jquery",
     "jquery",
     "javascript",
     "javascript",
+    "browser",
     "library"
     "library"
   ]
   ]
-}
+}

+ 476 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/core.js

@@ -0,0 +1,476 @@
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+define( [
+	"./var/arr",
+	"./var/document",
+	"./var/getProto",
+	"./var/slice",
+	"./var/concat",
+	"./var/push",
+	"./var/indexOf",
+	"./var/class2type",
+	"./var/toString",
+	"./var/hasOwn",
+	"./var/fnToString",
+	"./var/ObjectFunctionString",
+	"./var/support",
+	"./core/DOMEval"
+], function( arr, document, getProto, slice, concat, push, indexOf,
+	class2type, toString, hasOwn, fnToString, ObjectFunctionString,
+	support, DOMEval ) {
+
+"use strict";
+
+var
+	version = "3.2.1",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+	// Matches dashed string for camelizing
+	rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g,
+
+	// Used by jQuery.camelCase as callback to replace()
+	fcamelCase = function( all, letter ) {
+		return letter.toUpperCase();
+	};
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isFunction: function( obj ) {
+		return jQuery.type( obj ) === "function";
+	},
+
+	isWindow: function( obj ) {
+		return obj != null && obj === obj.window;
+	},
+
+	isNumeric: function( obj ) {
+
+		// As of jQuery 3.0, isNumeric is limited to
+		// strings and numbers (primitives or objects)
+		// that can be coerced to finite numbers (gh-2662)
+		var type = jQuery.type( obj );
+		return ( type === "number" || type === "string" ) &&
+
+			// parseFloat NaNs numeric-cast false positives ("")
+			// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+			// subtraction forces infinities to NaN
+			!isNaN( obj - parseFloat( obj ) );
+	},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	type: function( obj ) {
+		if ( obj == null ) {
+			return obj + "";
+		}
+
+		// Support: Android <=2.3 only (functionish RegExp)
+		return typeof obj === "object" || typeof obj === "function" ?
+			class2type[ toString.call( obj ) ] || "object" :
+			typeof obj;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	// Convert dashed to camelCase; used by the css and data modules
+	// Support: IE <=9 - 11, Edge 12 - 13
+	// Microsoft forgot to hump their vendor prefix (#9572)
+	camelCase: function( string ) {
+		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// Bind a function to a context, optionally partially applying any
+	// arguments.
+	proxy: function( fn, context ) {
+		var tmp, args, proxy;
+
+		if ( typeof context === "string" ) {
+			tmp = fn[ context ];
+			context = fn;
+			fn = tmp;
+		}
+
+		// Quick check to determine if target is callable, in the spec
+		// this throws a TypeError, but we will just return undefined.
+		if ( !jQuery.isFunction( fn ) ) {
+			return undefined;
+		}
+
+		// Simulated bind
+		args = slice.call( arguments, 2 );
+		proxy = function() {
+			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+		};
+
+		// Set the guid of unique handler to the same of original handler, so it can be removed
+		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+		return proxy;
+	},
+
+	now: Date.now,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = jQuery.type( obj );
+
+	if ( type === "function" || jQuery.isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+
+return jQuery;
+} );

File diff suppressed because it is too large
+ 405 - 293
sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.js


File diff suppressed because it is too large
+ 0 - 1
sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.min.js


File diff suppressed because it is too large
+ 0 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.min.map


+ 8160 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.slim.js

@@ -0,0 +1,8160 @@
+/*!
+ * jQuery JavaScript Library v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2017-03-20T19:00Z
+ */
+( function( global, factory ) {
+
+	"use strict";
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+
+
+	function DOMEval( code, doc ) {
+		doc = doc || document;
+
+		var script = doc.createElement( "script" );
+
+		script.text = code;
+		doc.head.appendChild( script ).parentNode.removeChild( script );
+	}
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+	version = "3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+	// Matches dashed string for camelizing
+	rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g,
+
+	// Used by jQuery.camelCase as callback to replace()
+	fcamelCase = function( all, letter ) {
+		return letter.toUpperCase();
+	};
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isFunction: function( obj ) {
+		return jQuery.type( obj ) === "function";
+	},
+
+	isWindow: function( obj ) {
+		return obj != null && obj === obj.window;
+	},
+
+	isNumeric: function( obj ) {
+
+		// As of jQuery 3.0, isNumeric is limited to
+		// strings and numbers (primitives or objects)
+		// that can be coerced to finite numbers (gh-2662)
+		var type = jQuery.type( obj );
+		return ( type === "number" || type === "string" ) &&
+
+			// parseFloat NaNs numeric-cast false positives ("")
+			// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+			// subtraction forces infinities to NaN
+			!isNaN( obj - parseFloat( obj ) );
+	},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	type: function( obj ) {
+		if ( obj == null ) {
+			return obj + "";
+		}
+
+		// Support: Android <=2.3 only (functionish RegExp)
+		return typeof obj === "object" || typeof obj === "function" ?
+			class2type[ toString.call( obj ) ] || "object" :
+			typeof obj;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	// Convert dashed to camelCase; used by the css and data modules
+	// Support: IE <=9 - 11, Edge 12 - 13
+	// Microsoft forgot to hump their vendor prefix (#9572)
+	camelCase: function( string ) {
+		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// Bind a function to a context, optionally partially applying any
+	// arguments.
+	proxy: function( fn, context ) {
+		var tmp, args, proxy;
+
+		if ( typeof context === "string" ) {
+			tmp = fn[ context ];
+			context = fn;
+			fn = tmp;
+		}
+
+		// Quick check to determine if target is callable, in the spec
+		// this throws a TypeError, but we will just return undefined.
+		if ( !jQuery.isFunction( fn ) ) {
+			return undefined;
+		}
+
+		// Simulated bind
+		args = slice.call( arguments, 2 );
+		proxy = function() {
+			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+		};
+
+		// Set the guid of unique handler to the same of original handler, so it can be removed
+		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+		return proxy;
+	},
+
+	now: Date.now,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = jQuery.type( obj );
+
+	if ( type === "function" || jQuery.isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// https://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+
+	// CSS escapes
+	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// CSS string/identifier serialization
+	// https://drafts.csswg.org/cssom/#common-serializing-idioms
+	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+	fcssescape = function( ch, asCodePoint ) {
+		if ( asCodePoint ) {
+
+			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+			if ( ch === "\0" ) {
+				return "\uFFFD";
+			}
+
+			// Control characters and (dependent upon position) numbers get escaped as code points
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+		}
+
+		// Other potentially-special ASCII characters get backslash-escaped
+		return "\\" + ch;
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	},
+
+	disabledAncestor = addCombinator(
+		function( elem ) {
+			return elem.disabled === true && ("form" in elem || "label" in elem);
+		},
+		{ dir: "parentNode", next: "legend" }
+	);
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rcssescape, fcssescape );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					while ( i-- ) {
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+	var el = document.createElement("fieldset");
+
+	try {
+		return !!fn( el );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( el.parentNode ) {
+			el.parentNode.removeChild( el );
+		}
+		// release memory in IE
+		el = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			a.sourceIndex - b.sourceIndex;
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+	return function( elem ) {
+
+		// Only certain elements can match :enabled or :disabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+		if ( "form" in elem ) {
+
+			// Check for inherited disabledness on relevant non-disabled elements:
+			// * listed form-associated elements in a disabled fieldset
+			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+			// * option elements in a disabled optgroup
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+			// All such elements have a "form" property.
+			if ( elem.parentNode && elem.disabled === false ) {
+
+				// Option elements defer to a parent optgroup if present
+				if ( "label" in elem ) {
+					if ( "label" in elem.parentNode ) {
+						return elem.parentNode.disabled === disabled;
+					} else {
+						return elem.disabled === disabled;
+					}
+				}
+
+				// Support: IE 6 - 11
+				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
+				return elem.isDisabled === disabled ||
+
+					// Where there is no isDisabled, check manually
+					/* jshint -W018 */
+					elem.isDisabled !== !disabled &&
+						disabledAncestor( elem ) === disabled;
+			}
+
+			return elem.disabled === disabled;
+
+		// Try to winnow out elements that can't be disabled before trusting the disabled property.
+		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+		// even exist on them, let alone have a boolean value.
+		} else if ( "label" in elem ) {
+			return elem.disabled === disabled;
+		}
+
+		// Remaining elements are neither :enabled nor :disabled
+		return false;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, subWindow,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+		// Support: IE 11, Edge
+		if ( subWindow.addEventListener ) {
+			subWindow.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( subWindow.attachEvent ) {
+			subWindow.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( el ) {
+		el.className = "i";
+		return !el.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programmatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( el ) {
+		docElem.appendChild( el ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID filter and find
+	if ( support.getById ) {
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var elem = context.getElementById( id );
+				return elem ? [ elem ] : [];
+			}
+		};
+	} else {
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+
+		// Support: IE 6 - 7 only
+		// getElementById is not reliable as a find shortcut
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var node, i, elems,
+					elem = context.getElementById( id );
+
+				if ( elem ) {
+
+					// Verify the id attribute
+					node = elem.getAttributeNode("id");
+					if ( node && node.value === id ) {
+						return [ elem ];
+					}
+
+					// Fall back on getElementsByName
+					elems = context.getElementsByName( id );
+					i = 0;
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
+						if ( node && node.value === id ) {
+							return [ elem ];
+						}
+					}
+				}
+
+				return [];
+			}
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See https://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( el ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// https://bugs.jquery.com/ticket/12359
+			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !el.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !el.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibling-combinator selector` fails
+			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( el ) {
+			el.innerHTML = "<a href='' disabled='disabled'></a>" +
+				"<select disabled='disabled'><option/></select>";
+
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			el.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( el.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Support: IE9-11+
+			// IE's :disabled selector does not pick up the children of disabled fieldsets
+			docElem.appendChild( el ).disabled = true;
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( el ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( el, "*" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( el, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.escape = function( sel ) {
+	return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": createDisabledPseudo( false ),
+		"disabled": createDisabledPseudo( true ),
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		skip = combinator.next,
+		key = skip || dir,
+		checkNonElements = base && key === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+			return false;
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( skip && skip === elem.nodeName.toLowerCase() ) {
+							elem = elem[ dir ] || elem;
+						} else if ( (oldCache = uniqueCache[ key ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ key ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+			return false;
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+	// Should return 1, but returns 4 (following)
+	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+	el.innerHTML = "<a href='#'></a>";
+	return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+	el.innerHTML = "<input/>";
+	el.firstChild.setAttribute( "value", "" );
+	return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+	return el.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( jQuery.isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+	}
+
+	// Single element
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+	}
+
+	// Arraylike of elements (jQuery, arguments, Array)
+	if ( typeof qualifier !== "string" ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+		} );
+	}
+
+	// Simple selector that can be filtered directly, removing non-Elements
+	if ( risSimple.test( qualifier ) ) {
+		return jQuery.filter( qualifier, elements, not );
+	}
+
+	// Complex selector, compare the two sets, removing non-Elements
+	qualifier = jQuery.filter( qualifier, elements );
+	return jQuery.grep( elements, function( elem ) {
+		return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
+	} );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	if ( elems.length === 1 && elem.nodeType === 1 ) {
+		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+	}
+
+	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+		return elem.nodeType === 1;
+	} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i, ret,
+			len = this.length,
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		ret = this.pushStack( [] );
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	// Shortcut simple #id case for speed
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( jQuery.isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					if ( elem ) {
+
+						// Inject the element directly into the jQuery object
+						this[ 0 ] = elem;
+						this.length = 1;
+					}
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( jQuery.isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			targets = typeof selectors !== "string" && jQuery( selectors );
+
+		// Positional selectors never match, since there's no _selection_ context
+		if ( !rneedsContext.test( selectors ) ) {
+			for ( ; i < l; i++ ) {
+				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+					// Always skip document fragments
+					if ( cur.nodeType < 11 && ( targets ?
+						targets.index( cur ) > -1 :
+
+						// Don't pass non-elements to Sizzle
+						cur.nodeType === 1 &&
+							jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+						matched.push( cur );
+						break;
+					}
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = locked || options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( jQuery.isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory && !firing ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+function Identity( v ) {
+	return v;
+}
+function Thrower( ex ) {
+	throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+	var method;
+
+	try {
+
+		// Check for promise aspect first to privilege synchronous behavior
+		if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+			method.call( value ).done( resolve ).fail( reject );
+
+		// Other thenables
+		} else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+			method.call( value, resolve, reject );
+
+		// Other non-thenables
+		} else {
+
+			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+			// * false: [ value ].slice( 0 ) => resolve( value )
+			// * true: [ value ].slice( 1 ) => resolve()
+			resolve.apply( undefined, [ value ].slice( noValue ) );
+		}
+
+	// For Promises/A+, convert exceptions into rejections
+	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+	// Deferred#then to conditionally suppress rejection.
+	} catch ( value ) {
+
+		// Support: Android 4.0 only
+		// Strict mode functions invoked without .call/.apply get global-object context
+		reject.apply( undefined, [ value ] );
+	}
+}
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, callbacks,
+				// ... .then handlers, argument index, [final state]
+				[ "notify", "progress", jQuery.Callbacks( "memory" ),
+					jQuery.Callbacks( "memory" ), 2 ],
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				"catch": function( fn ) {
+					return promise.then( null, fn );
+				},
+
+				// Keep pipe for back-compat
+				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+
+							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
+							var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+							// deferred.progress(function() { bind to newDefer or newDefer.notify })
+							// deferred.done(function() { bind to newDefer or newDefer.resolve })
+							// deferred.fail(function() { bind to newDefer or newDefer.reject })
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && jQuery.isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+				then: function( onFulfilled, onRejected, onProgress ) {
+					var maxDepth = 0;
+					function resolve( depth, deferred, handler, special ) {
+						return function() {
+							var that = this,
+								args = arguments,
+								mightThrow = function() {
+									var returned, then;
+
+									// Support: Promises/A+ section 2.3.3.3.3
+									// https://promisesaplus.com/#point-59
+									// Ignore double-resolution attempts
+									if ( depth < maxDepth ) {
+										return;
+									}
+
+									returned = handler.apply( that, args );
+
+									// Support: Promises/A+ section 2.3.1
+									// https://promisesaplus.com/#point-48
+									if ( returned === deferred.promise() ) {
+										throw new TypeError( "Thenable self-resolution" );
+									}
+
+									// Support: Promises/A+ sections 2.3.3.1, 3.5
+									// https://promisesaplus.com/#point-54
+									// https://promisesaplus.com/#point-75
+									// Retrieve `then` only once
+									then = returned &&
+
+										// Support: Promises/A+ section 2.3.4
+										// https://promisesaplus.com/#point-64
+										// Only check objects and functions for thenability
+										( typeof returned === "object" ||
+											typeof returned === "function" ) &&
+										returned.then;
+
+									// Handle a returned thenable
+									if ( jQuery.isFunction( then ) ) {
+
+										// Special processors (notify) just wait for resolution
+										if ( special ) {
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special )
+											);
+
+										// Normal processors (resolve) also hook into progress
+										} else {
+
+											// ...and disregard older resolution values
+											maxDepth++;
+
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special ),
+												resolve( maxDepth, deferred, Identity,
+													deferred.notifyWith )
+											);
+										}
+
+									// Handle all other returned values
+									} else {
+
+										// Only substitute handlers pass on context
+										// and multiple values (non-spec behavior)
+										if ( handler !== Identity ) {
+											that = undefined;
+											args = [ returned ];
+										}
+
+										// Process the value(s)
+										// Default process is resolve
+										( special || deferred.resolveWith )( that, args );
+									}
+								},
+
+								// Only normal processors (resolve) catch and reject exceptions
+								process = special ?
+									mightThrow :
+									function() {
+										try {
+											mightThrow();
+										} catch ( e ) {
+
+											if ( jQuery.Deferred.exceptionHook ) {
+												jQuery.Deferred.exceptionHook( e,
+													process.stackTrace );
+											}
+
+											// Support: Promises/A+ section 2.3.3.3.4.1
+											// https://promisesaplus.com/#point-61
+											// Ignore post-resolution exceptions
+											if ( depth + 1 >= maxDepth ) {
+
+												// Only substitute handlers pass on context
+												// and multiple values (non-spec behavior)
+												if ( handler !== Thrower ) {
+													that = undefined;
+													args = [ e ];
+												}
+
+												deferred.rejectWith( that, args );
+											}
+										}
+									};
+
+							// Support: Promises/A+ section 2.3.3.3.1
+							// https://promisesaplus.com/#point-57
+							// Re-resolve promises immediately to dodge false rejection from
+							// subsequent errors
+							if ( depth ) {
+								process();
+							} else {
+
+								// Call an optional hook to record the stack, in case of exception
+								// since it's otherwise lost when execution goes async
+								if ( jQuery.Deferred.getStackHook ) {
+									process.stackTrace = jQuery.Deferred.getStackHook();
+								}
+								window.setTimeout( process );
+							}
+						};
+					}
+
+					return jQuery.Deferred( function( newDefer ) {
+
+						// progress_handlers.add( ... )
+						tuples[ 0 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								jQuery.isFunction( onProgress ) ?
+									onProgress :
+									Identity,
+								newDefer.notifyWith
+							)
+						);
+
+						// fulfilled_handlers.add( ... )
+						tuples[ 1 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								jQuery.isFunction( onFulfilled ) ?
+									onFulfilled :
+									Identity
+							)
+						);
+
+						// rejected_handlers.add( ... )
+						tuples[ 2 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								jQuery.isFunction( onRejected ) ?
+									onRejected :
+									Thrower
+							)
+						);
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 5 ];
+
+			// promise.progress = list.add
+			// promise.done = list.add
+			// promise.fail = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(
+					function() {
+
+						// state = "resolved" (i.e., fulfilled)
+						// state = "rejected"
+						state = stateString;
+					},
+
+					// rejected_callbacks.disable
+					// fulfilled_callbacks.disable
+					tuples[ 3 - i ][ 2 ].disable,
+
+					// progress_callbacks.lock
+					tuples[ 0 ][ 2 ].lock
+				);
+			}
+
+			// progress_handlers.fire
+			// fulfilled_handlers.fire
+			// rejected_handlers.fire
+			list.add( tuple[ 3 ].fire );
+
+			// deferred.notify = function() { deferred.notifyWith(...) }
+			// deferred.resolve = function() { deferred.resolveWith(...) }
+			// deferred.reject = function() { deferred.rejectWith(...) }
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+				return this;
+			};
+
+			// deferred.notifyWith = list.fireWith
+			// deferred.resolveWith = list.fireWith
+			// deferred.rejectWith = list.fireWith
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( singleValue ) {
+		var
+
+			// count of uncompleted subordinates
+			remaining = arguments.length,
+
+			// count of unprocessed arguments
+			i = remaining,
+
+			// subordinate fulfillment data
+			resolveContexts = Array( i ),
+			resolveValues = slice.call( arguments ),
+
+			// the master Deferred
+			master = jQuery.Deferred(),
+
+			// subordinate callback factory
+			updateFunc = function( i ) {
+				return function( value ) {
+					resolveContexts[ i ] = this;
+					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( !( --remaining ) ) {
+						master.resolveWith( resolveContexts, resolveValues );
+					}
+				};
+			};
+
+		// Single- and empty arguments are adopted like Promise.resolve
+		if ( remaining <= 1 ) {
+			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+				!remaining );
+
+			// Use .then() to unwrap secondary thenables (cf. gh-3000)
+			if ( master.state() === "pending" ||
+				jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+				return master.then();
+			}
+		}
+
+		// Multiple arguments are aggregated like Promise.all array elements
+		while ( i-- ) {
+			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+		}
+
+		return master.promise();
+	}
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+	// Support: IE 8 - 9 only
+	// Console exists when dev tools are open, which can happen at any time
+	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+	}
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+	window.setTimeout( function() {
+		throw error;
+	} );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+	readyList
+		.then( fn )
+
+		// Wrap jQuery.readyException in a function so that the lookup
+		// happens at the time of error handling instead of callback
+		// registration.
+		.catch( function( error ) {
+			jQuery.readyException( error );
+		} );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+	}
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+	// Handle it asynchronously to allow scripts the opportunity to delay ready
+	window.setTimeout( jQuery.ready );
+
+} else {
+
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( jQuery.type( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !jQuery.isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	if ( chainable ) {
+		return elems;
+	}
+
+	// Gets
+	if ( bulk ) {
+		return fn.call( elems );
+	}
+
+	return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	cache: function( owner ) {
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		// Always use camelCase key (gh-2257)
+		if ( typeof data === "string" ) {
+			cache[ jQuery.camelCase( data ) ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+
+			// Always use camelCase key (gh-2257)
+			owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+	},
+	access: function( owner, key, value ) {
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			return this.get( owner, key );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key !== undefined ) {
+
+			// Support array or space separated string of keys
+			if ( Array.isArray( key ) ) {
+
+				// If key is an array of keys...
+				// We always set camelCase keys, so remove that.
+				key = key.map( jQuery.camelCase );
+			} else {
+				key = jQuery.camelCase( key );
+
+				// If a key with the spaces exists, use it.
+				// Otherwise, create an array by matching non-whitespace
+				key = key in cache ?
+					[ key ] :
+					( key.match( rnothtmlwhite ) || [] );
+			}
+
+			i = key.length;
+
+			while ( i-- ) {
+				delete cache[ key[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <=35 - 45
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+	if ( data === "true" ) {
+		return true;
+	}
+
+	if ( data === "false" ) {
+		return false;
+	}
+
+	if ( data === "null" ) {
+		return null;
+	}
+
+	// Only convert to a number if it doesn't change the string
+	if ( data === +data + "" ) {
+		return +data;
+	}
+
+	if ( rbrace.test( data ) ) {
+		return JSON.parse( data );
+	}
+
+	return data;
+}
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = getData( data );
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE 11 only
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = jQuery.camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// The key will always be camelCased in Data
+				data = dataUser.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each( function() {
+
+				// We always store the camelCased key
+				dataUser.set( this, key, value );
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || Array.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			jQuery.contains( elem.ownerDocument, elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted,
+		scale = 1,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() {
+				return tween.cur();
+			} :
+			function() {
+				return jQuery.css( elem, prop, "" );
+			},
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		do {
+
+			// If previous iteration zeroed out, double until we get *something*.
+			// Use string for doubling so we don't accidentally see scale as unchanged below
+			scale = scale || ".5";
+
+			// Adjust and apply
+			initialInUnit = initialInUnit / scale;
+			jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Update scale, tolerating zero or NaN from tween.cur()
+		// Break the loop if scale is unchanged or perfect, or if we've just had enough.
+		} while (
+			scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+		);
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+	var temp,
+		doc = elem.ownerDocument,
+		nodeName = elem.nodeName,
+		display = defaultDisplayMap[ nodeName ];
+
+	if ( display ) {
+		return display;
+	}
+
+	temp = doc.body.appendChild( doc.createElement( nodeName ) );
+	display = jQuery.css( temp, "display" );
+
+	temp.parentNode.removeChild( temp );
+
+	if ( display === "none" ) {
+		display = "block";
+	}
+	defaultDisplayMap[ nodeName ] = display;
+
+	return display;
+}
+
+function showHide( elements, show ) {
+	var display, elem,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	// Determine new display value for elements that need to change
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		display = elem.style.display;
+		if ( show ) {
+
+			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+			// check is required in this first loop unless we have a nonempty display value (either
+			// inline or about-to-be-restored)
+			if ( display === "none" ) {
+				values[ index ] = dataPriv.get( elem, "display" ) || null;
+				if ( !values[ index ] ) {
+					elem.style.display = "";
+				}
+			}
+			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+				values[ index ] = getDefaultDisplay( elem );
+			}
+		} else {
+			if ( display !== "none" ) {
+				values[ index ] = "none";
+
+				// Remember what we're overwriting
+				dataPriv.set( elem, "display", display );
+			}
+		}
+	}
+
+	// Set the display of the elements in a second loop to avoid constant reflow
+	for ( index = 0; index < length; index++ ) {
+		if ( values[ index ] != null ) {
+			elements[ index ].style.display = values[ index ];
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend( {
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHiddenWithinTree( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE <=9 only
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE <=9 - 11 only
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret;
+
+	if ( typeof context.getElementsByTagName !== "undefined" ) {
+		ret = context.getElementsByTagName( tag || "*" );
+
+	} else if ( typeof context.querySelectorAll !== "undefined" ) {
+		ret = context.querySelectorAll( tag || "*" );
+
+	} else {
+		ret = [];
+	}
+
+	if ( tag === undefined || tag && nodeName( context, tag ) ) {
+		return jQuery.merge( [ context ], ret );
+	}
+
+	return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( jQuery.type( elem ) === "object" ) {
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Ensure that invalid selectors throw exceptions at attach time
+		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
+		if ( selector ) {
+			jQuery.find.matchesSelector( documentElement, selector );
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( nativeEvent ) {
+
+		// Make a writable jQuery.Event from the native event object
+		var event = jQuery.event.fix( nativeEvent );
+
+		var i, j, ret, matched, handleObj, handlerQueue,
+			args = new Array( arguments.length ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+
+		for ( i = 1; i < arguments.length; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, handleObj, sel, matchedHandlers, matchedSelectors,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		if ( delegateCount &&
+
+			// Support: IE <=9
+			// Black-hole SVG <use> instance trees (trac-13180)
+			cur.nodeType &&
+
+			// Support: Firefox <=42
+			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+			// Support: IE 11 only
+			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+			!( event.type === "click" && event.button >= 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+					matchedHandlers = [];
+					matchedSelectors = {};
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matchedSelectors[ sel ] === undefined ) {
+							matchedSelectors[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matchedSelectors[ sel ] ) {
+							matchedHandlers.push( handleObj );
+						}
+					}
+					if ( matchedHandlers.length ) {
+						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		cur = this;
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	addProp: function( name, hook ) {
+		Object.defineProperty( jQuery.Event.prototype, name, {
+			enumerable: true,
+			configurable: true,
+
+			get: jQuery.isFunction( hook ) ?
+				function() {
+					if ( this.originalEvent ) {
+							return hook( this.originalEvent );
+					}
+				} :
+				function() {
+					if ( this.originalEvent ) {
+							return this.originalEvent[ name ];
+					}
+				},
+
+			set: function( value ) {
+				Object.defineProperty( this, name, {
+					enumerable: true,
+					configurable: true,
+					writable: true,
+					value: value
+				} );
+			}
+		} );
+	},
+
+	fix: function( originalEvent ) {
+		return originalEvent[ jQuery.expando ] ?
+			originalEvent :
+			new jQuery.Event( originalEvent );
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android <=2.3 only
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+		// Create target properties
+		// Support: Safari <=6 - 7 only
+		// Target should not be a text node (#504, #13143)
+		this.target = ( src.target && src.target.nodeType === 3 ) ?
+			src.target.parentNode :
+			src.target;
+
+		this.currentTarget = src.currentTarget;
+		this.relatedTarget = src.relatedTarget;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || jQuery.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+	altKey: true,
+	bubbles: true,
+	cancelable: true,
+	changedTouches: true,
+	ctrlKey: true,
+	detail: true,
+	eventPhase: true,
+	metaKey: true,
+	pageX: true,
+	pageY: true,
+	shiftKey: true,
+	view: true,
+	"char": true,
+	charCode: true,
+	key: true,
+	keyCode: true,
+	button: true,
+	buttons: true,
+	clientX: true,
+	clientY: true,
+	offsetX: true,
+	offsetY: true,
+	pointerId: true,
+	pointerType: true,
+	screenX: true,
+	screenY: true,
+	targetTouches: true,
+	toElement: true,
+	touches: true,
+
+	which: function( event ) {
+		var button = event.button;
+
+		// Add which for key events
+		if ( event.which == null && rkeyEvent.test( event.type ) ) {
+			return event.charCode != null ? event.charCode : event.keyCode;
+		}
+
+		// Add which for click: 1 === left; 2 === middle; 3 === right
+		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+			if ( button & 1 ) {
+				return 1;
+			}
+
+			if ( button & 2 ) {
+				return 3;
+			}
+
+			if ( button & 4 ) {
+				return 2;
+			}
+
+			return 0;
+		}
+
+		return event.which;
+	}
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+
+	/* eslint-disable max-len */
+
+	// See https://github.com/eslint/eslint/issues/3229
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+	/* eslint-enable */
+
+	// Support: IE <=10 - 11, Edge 12 - 13
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rscriptTypeMasked = /^true\/(.*)/,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+	if ( nodeName( elem, "table" ) &&
+		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+		return jQuery( ">tbody", elem )[ 0 ] || elem;
+	}
+
+	return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	var match = rscriptTypeMasked.exec( elem.type );
+
+	if ( match ) {
+		elem.type = match[ 1 ];
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		isFunction = jQuery.isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( isFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( isFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android <=4.0 only, PhantomJS 1 only
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: Android <=4.0 only, PhantomJS 1 only
+			// .get() because push.apply(_, arraylike) throws on ancient WebKit
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+var rmargin = ( /^margin/ );
+
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+
+
+( function() {
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+
+		// This is a singleton, we need to execute it only once
+		if ( !div ) {
+			return;
+		}
+
+		div.style.cssText =
+			"box-sizing:border-box;" +
+			"position:relative;display:block;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"top:1%;width:50%";
+		div.innerHTML = "";
+		documentElement.appendChild( container );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+
+		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+		reliableMarginLeftVal = divStyle.marginLeft === "2px";
+		boxSizingReliableVal = divStyle.width === "4px";
+
+		// Support: Android 4.0 - 4.3 only
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.marginRight = "50%";
+		pixelMarginRightVal = divStyle.marginRight === "4px";
+
+		documentElement.removeChild( container );
+
+		// Nullify the div so it wouldn't be stored in the memory and
+		// it will also be a sign that checks already performed
+		div = null;
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE <=9 - 11 only
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+		"padding:0;margin-top:1px;position:absolute";
+	container.appendChild( div );
+
+	jQuery.extend( support, {
+		pixelPosition: function() {
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		boxSizingReliable: function() {
+			computeStyleTests();
+			return boxSizingReliableVal;
+		},
+		pixelMarginRight: function() {
+			computeStyleTests();
+			return pixelMarginRightVal;
+		},
+		reliableMarginLeft: function() {
+			computeStyleTests();
+			return reliableMarginLeftVal;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+
+		// Support: Firefox 51+
+		// Retrieving style before computed somehow
+		// fixes an issue with getting wrong values
+		// on detached elements
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// getPropertyValue is needed for:
+	//   .css('filter') (IE 9 only, #12537)
+	//   .css('--customProperty) (#3144)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// https://drafts.csswg.org/cssom/#resolved-values
+		if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE <=9 - 11 only
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rcustomProp = /^--/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	}
+	return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+	var i,
+		val = 0;
+
+	// If we already have the right measurement, avoid augmentation
+	if ( extra === ( isBorderBox ? "border" : "content" ) ) {
+		i = 4;
+
+	// Otherwise initialize for horizontal or vertical properties
+	} else {
+		i = name === "width" ? 1 : 0;
+	}
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin, so add it if we want it
+		if ( extra === "margin" ) {
+			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+		}
+
+		if ( isBorderBox ) {
+
+			// border-box includes padding, so remove it if we want content
+			if ( extra === "content" ) {
+				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// At this point, extra isn't border nor margin, so remove border
+			if ( extra !== "margin" ) {
+				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		} else {
+
+			// At this point, extra isn't content, so add padding
+			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// At this point, extra isn't content nor padding, so add border
+			if ( extra !== "padding" ) {
+				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+	// Start with computed style
+	var valueIsBorderBox,
+		styles = getStyles( elem ),
+		val = curCSS( elem, name, styles ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+	// Computed unit is not pixels. Stop here and return.
+	if ( rnumnonpx.test( val ) ) {
+		return val;
+	}
+
+	// Check for style in case a browser which returns unreliable values
+	// for getComputedStyle silently falls back to the reliable elem.style
+	valueIsBorderBox = isBorderBox &&
+		( support.boxSizingReliable() || val === elem.style[ name ] );
+
+	// Fall back to offsetWidth/Height when value is "auto"
+	// This happens for inline elements with no explicit setting (gh-3571)
+	if ( val === "auto" ) {
+		val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
+	}
+
+	// Normalize "", auto, and prepare for extra
+	val = parseFloat( val ) || 0;
+
+	// Use the active box-sizing model to add/subtract irrelevant styles
+	return ( val +
+		augmentWidthOrHeight(
+			elem,
+			name,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles
+		)
+	) + "px";
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {
+		"float": "cssFloat"
+	},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = jQuery.camelCase( name ),
+			isCustomProp = rcustomProp.test( name ),
+			style = elem.style;
+
+		// Make sure that we're working with the right name. We don't
+		// want to query the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				if ( isCustomProp ) {
+					style.setProperty( name, value );
+				} else {
+					style[ name ] = value;
+				}
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = jQuery.camelCase( name ),
+			isCustomProp = rcustomProp.test( name );
+
+		// Make sure that we're working with the right name. We don't
+		// want to modify the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+	jQuery.cssHooks[ name ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+					// Support: Safari 8+
+					// Table columns in Safari have non-zero offsetWidth & zero
+					// getBoundingClientRect().width unless display is changed.
+					// Support: IE <=11 only
+					// Running getBoundingClientRect on a disconnected node
+					// in IE throws an error.
+					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, name, extra );
+						} ) :
+						getWidthOrHeight( elem, name, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = extra && getStyles( elem ),
+				subtract = extra && augmentWidthOrHeight(
+					elem,
+					name,
+					extra,
+					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+					styles
+				);
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ name ] = value;
+				value = jQuery.css( elem, name );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( !rmargin.test( prefix ) ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( Array.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	}
+} );
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: Android <=4.3 only
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE <=11 only
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: IE <=11 only
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// Attribute hooks are determined by the lowercase version
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name,
+			i = 0,
+
+			// Attribute names can contain non-HTML whitespace characters
+			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+			attrNames = value && value.match( rnothtmlwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle,
+			lowercaseName = name.toLowerCase();
+
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ lowercaseName ];
+			attrHandle[ lowercaseName ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				lowercaseName :
+				null;
+			attrHandle[ lowercaseName ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// Support: IE <=9 - 11 only
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				if ( tabindex ) {
+					return parseInt( tabindex, 10 );
+				}
+
+				if (
+					rfocusable.test( elem.nodeName ) ||
+					rclickable.test( elem.nodeName ) &&
+					elem.href
+				) {
+					return 0;
+				}
+
+				return -1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+	// Strip and collapse whitespace according to HTML spec
+	// https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
+	function stripAndCollapse( value ) {
+		var tokens = value.match( rnothtmlwhite ) || [];
+		return tokens.join( " " );
+	}
+
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( typeof value === "string" && value ) {
+			classes = value.match( rnothtmlwhite ) || [];
+
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		if ( typeof value === "string" && value ) {
+			classes = value.match( rnothtmlwhite ) || [];
+
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value;
+
+		if ( typeof stateVal === "boolean" && type === "string" ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( type === "string" ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = value.match( rnothtmlwhite ) || [];
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+					return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, isFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				// Handle most common string cases
+				if ( typeof ret === "string" ) {
+					return ret.replace( rreturn, "" );
+				}
+
+				// Handle cases where value is null/undef or number
+				return ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		isFunction = jQuery.isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( isFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( Array.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE <=10 - 11 only
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					stripAndCollapse( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option, i,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one",
+					values = one ? null : [],
+					max = one ? index + 1 : options.length;
+
+				if ( index < 0 ) {
+					i = max;
+
+				} else {
+					i = one ? index : 0;
+				}
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Support: IE <=9 only
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							!option.disabled &&
+							( !option.parentNode.disabled ||
+								!nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+
+					/* eslint-disable no-cond-assign */
+
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+
+					/* eslint-enable no-cond-assign */
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( Array.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+					elem[ type ]();
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+support.focusin = "onfocusin" in window;
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+
+
+var
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( Array.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, valueOrFunction ) {
+
+			// If value is a function, invoke it and use its return value
+			var value = jQuery.isFunction( valueOrFunction ) ?
+				valueOrFunction() :
+				valueOrFunction;
+
+			s[ s.length ] = encodeURIComponent( key ) + "=" +
+				encodeURIComponent( value == null ? "" : value );
+		};
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			if ( val == null ) {
+				return null;
+			}
+
+			if ( Array.isArray( val ) ) {
+				return jQuery.map( val, function( val ) {
+					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+				} );
+			}
+
+			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( this[ 0 ] ) {
+			if ( jQuery.isFunction( html ) ) {
+				html = html.call( this[ 0 ] );
+			}
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( jQuery.isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var isFunction = jQuery.isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function( selector ) {
+		this.parent( selector ).not( "body" ).each( function() {
+			jQuery( this ).replaceWith( this.childNodes );
+		} );
+		return this;
+	}
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+	return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+	var body = document.implementation.createHTMLDocument( "" ).body;
+	body.innerHTML = "<form></form><form></form>";
+	return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( typeof data !== "string" ) {
+		return [];
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+
+	var base, parsed, scripts;
+
+	if ( !context ) {
+
+		// Stop scripts or inline event handlers from being executed immediately
+		// by using document.implementation
+		if ( support.createHTMLDocument ) {
+			context = document.implementation.createHTMLDocument( "" );
+
+			// Set the base href for the created document
+			// so any parsed elements with URLs
+			// are based on the document's URL (gh-2965)
+			base = context.createElement( "base" );
+			base.href = document.location.href;
+			context.head.appendChild( base );
+		} else {
+			context = document;
+		}
+	}
+
+	parsed = rsingleTag.exec( data );
+	scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( jQuery.isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+	offset: function( options ) {
+
+		// Preserve chaining for setter
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var doc, docElem, rect, win,
+			elem = this[ 0 ];
+
+		if ( !elem ) {
+			return;
+		}
+
+		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+		// Support: IE <=11 only
+		// Running getBoundingClientRect on a
+		// disconnected node in IE throws an error
+		if ( !elem.getClientRects().length ) {
+			return { top: 0, left: 0 };
+		}
+
+		rect = elem.getBoundingClientRect();
+
+		doc = elem.ownerDocument;
+		docElem = doc.documentElement;
+		win = doc.defaultView;
+
+		return {
+			top: rect.top + win.pageYOffset - docElem.clientTop,
+			left: rect.left + win.pageXOffset - docElem.clientLeft
+		};
+	},
+
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+		// because it is its only offset parent
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume getBoundingClientRect is there when computed position is fixed
+			offset = elem.getBoundingClientRect();
+
+		} else {
+
+			// Get *real* offsetParent
+			offsetParent = this.offsetParent();
+
+			// Get correct offsets
+			offset = this.offset();
+			if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
+				parentOffset = offsetParent.offset();
+			}
+
+			// Add offsetParent borders
+			parentOffset = {
+				top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
+				left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
+			};
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+
+			// Coalesce documents and windows
+			var win;
+			if ( jQuery.isWindow( elem ) ) {
+				win = elem;
+			} else if ( elem.nodeType === 9 ) {
+				win = elem.defaultView;
+			}
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( jQuery.isWindow( elem ) ) {
+
+					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+					return funcName.indexOf( "outer" ) === 0 ?
+						elem[ "inner" + name ] :
+						elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable );
+		};
+	} );
+} );
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	}
+} );
+
+jQuery.holdReady = function( hold ) {
+	if ( hold ) {
+		jQuery.readyWait++;
+	} else {
+		jQuery.ready( true );
+	}
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );

File diff suppressed because it is too large
+ 1 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.slim.min.js


File diff suppressed because it is too large
+ 0 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/dist/jquery.slim.min.map


+ 36 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/external/sizzle/LICENSE.txt

@@ -0,0 +1,36 @@
+Copyright jQuery Foundation and other contributors, https://jquery.org/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/sizzle
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.

File diff suppressed because it is too large
+ 401 - 219
sites/all/themes/gui/materiobasetheme/bower_components/jquery/external/sizzle/dist/sizzle.js


File diff suppressed because it is too large
+ 1 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/external/sizzle/dist/sizzle.min.js


File diff suppressed because it is too large
+ 0 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/external/sizzle/dist/sizzle.min.map


+ 5 - 0
sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/.eslintrc.json

@@ -0,0 +1,5 @@
+{
+	"root": true,
+
+	"extends": "../.eslintrc-browser.json"
+}

+ 174 - 105
sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/ajax.js

@@ -1,23 +1,30 @@
-define([
+define( [
 	"./core",
 	"./core",
-	"./var/rnotwhite",
+	"./var/document",
+	"./var/rnothtmlwhite",
+	"./ajax/var/location",
 	"./ajax/var/nonce",
 	"./ajax/var/nonce",
 	"./ajax/var/rquery",
 	"./ajax/var/rquery",
+
 	"./core/init",
 	"./core/init",
-	"./ajax/parseJSON",
 	"./ajax/parseXML",
 	"./ajax/parseXML",
-	"./deferred"
-], function( jQuery, rnotwhite, nonce, rquery ) {
+	"./event/trigger",
+	"./deferred",
+	"./serialize" // jQuery.param
+], function( jQuery, document, rnothtmlwhite, location, nonce, rquery ) {
+
+"use strict";
 
 
 var
 var
+	r20 = /%20/g,
 	rhash = /#.*$/,
 	rhash = /#.*$/,
-	rts = /([?&])_=[^&]*/,
+	rantiCache = /([?&])_=[^&]*/,
 	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
 	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
 	// #7653, #8125, #8152: local protocol detection
 	// #7653, #8125, #8152: local protocol detection
 	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
 	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
 	rnoContent = /^(?:GET|HEAD)$/,
 	rnoContent = /^(?:GET|HEAD)$/,
 	rprotocol = /^\/\//,
 	rprotocol = /^\/\//,
-	rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
 
 
 	/* Prefilters
 	/* Prefilters
 	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
 	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
@@ -40,11 +47,9 @@ var
 	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
 	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
 	allTypes = "*/".concat( "*" ),
 	allTypes = "*/".concat( "*" ),
 
 
-	// Document location
-	ajaxLocation = window.location.href,
-
-	// Segment location into parts
-	ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
 
 
 // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
 // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
 function addToPrefiltersOrTransports( structure ) {
 function addToPrefiltersOrTransports( structure ) {
@@ -59,19 +64,21 @@ function addToPrefiltersOrTransports( structure ) {
 
 
 		var dataType,
 		var dataType,
 			i = 0,
 			i = 0,
-			dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
+			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
 
 
 		if ( jQuery.isFunction( func ) ) {
 		if ( jQuery.isFunction( func ) ) {
+
 			// For each dataType in the dataTypeExpression
 			// For each dataType in the dataTypeExpression
-			while ( (dataType = dataTypes[i++]) ) {
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
 				// Prepend if requested
 				// Prepend if requested
-				if ( dataType[0] === "+" ) {
+				if ( dataType[ 0 ] === "+" ) {
 					dataType = dataType.slice( 1 ) || "*";
 					dataType = dataType.slice( 1 ) || "*";
-					(structure[ dataType ] = structure[ dataType ] || []).unshift( func );
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
 
 
 				// Otherwise append
 				// Otherwise append
 				} else {
 				} else {
-					(structure[ dataType ] = structure[ dataType ] || []).push( func );
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
 				}
 				}
 			}
 			}
 		}
 		}
@@ -89,14 +96,16 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX
 		inspected[ dataType ] = true;
 		inspected[ dataType ] = true;
 		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
 		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
 			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
 			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
-			if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
 				options.dataTypes.unshift( dataTypeOrTransport );
 				options.dataTypes.unshift( dataTypeOrTransport );
 				inspect( dataTypeOrTransport );
 				inspect( dataTypeOrTransport );
 				return false;
 				return false;
 			} else if ( seekingTransport ) {
 			} else if ( seekingTransport ) {
 				return !( selected = dataTypeOrTransport );
 				return !( selected = dataTypeOrTransport );
 			}
 			}
-		});
+		} );
 		return selected;
 		return selected;
 	}
 	}
 
 
@@ -112,7 +121,7 @@ function ajaxExtend( target, src ) {
 
 
 	for ( key in src ) {
 	for ( key in src ) {
 		if ( src[ key ] !== undefined ) {
 		if ( src[ key ] !== undefined ) {
-			( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
 		}
 		}
 	}
 	}
 	if ( deep ) {
 	if ( deep ) {
@@ -136,7 +145,7 @@ function ajaxHandleResponses( s, jqXHR, responses ) {
 	while ( dataTypes[ 0 ] === "*" ) {
 	while ( dataTypes[ 0 ] === "*" ) {
 		dataTypes.shift();
 		dataTypes.shift();
 		if ( ct === undefined ) {
 		if ( ct === undefined ) {
-			ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
 		}
 		}
 	}
 	}
 
 
@@ -154,9 +163,10 @@ function ajaxHandleResponses( s, jqXHR, responses ) {
 	if ( dataTypes[ 0 ] in responses ) {
 	if ( dataTypes[ 0 ] in responses ) {
 		finalDataType = dataTypes[ 0 ];
 		finalDataType = dataTypes[ 0 ];
 	} else {
 	} else {
+
 		// Try convertible dataTypes
 		// Try convertible dataTypes
 		for ( type in responses ) {
 		for ( type in responses ) {
-			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
 				finalDataType = type;
 				finalDataType = type;
 				break;
 				break;
 			}
 			}
@@ -164,6 +174,7 @@ function ajaxHandleResponses( s, jqXHR, responses ) {
 				firstDataType = type;
 				firstDataType = type;
 			}
 			}
 		}
 		}
+
 		// Or just use first one
 		// Or just use first one
 		finalDataType = finalDataType || firstDataType;
 		finalDataType = finalDataType || firstDataType;
 	}
 	}
@@ -185,6 +196,7 @@ function ajaxHandleResponses( s, jqXHR, responses ) {
 function ajaxConvert( s, response, jqXHR, isSuccess ) {
 function ajaxConvert( s, response, jqXHR, isSuccess ) {
 	var conv2, current, conv, tmp, prev,
 	var conv2, current, conv, tmp, prev,
 		converters = {},
 		converters = {},
+
 		// Work with a copy of dataTypes in case we need to modify it for conversion
 		// Work with a copy of dataTypes in case we need to modify it for conversion
 		dataTypes = s.dataTypes.slice();
 		dataTypes = s.dataTypes.slice();
 
 
@@ -214,7 +226,7 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) {
 
 
 		if ( current ) {
 		if ( current ) {
 
 
-		// There's only work to do if current dataType is non-auto
+			// There's only work to do if current dataType is non-auto
 			if ( current === "*" ) {
 			if ( current === "*" ) {
 
 
 				current = prev;
 				current = prev;
@@ -237,6 +249,7 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) {
 							conv = converters[ prev + " " + tmp[ 0 ] ] ||
 							conv = converters[ prev + " " + tmp[ 0 ] ] ||
 								converters[ "* " + tmp[ 0 ] ];
 								converters[ "* " + tmp[ 0 ] ];
 							if ( conv ) {
 							if ( conv ) {
+
 								// Condense equivalence converters
 								// Condense equivalence converters
 								if ( conv === true ) {
 								if ( conv === true ) {
 									conv = converters[ conv2 ];
 									conv = converters[ conv2 ];
@@ -256,13 +269,16 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) {
 				if ( conv !== true ) {
 				if ( conv !== true ) {
 
 
 					// Unless errors are allowed to bubble, catch and return them
 					// Unless errors are allowed to bubble, catch and return them
-					if ( conv && s[ "throws" ] ) {
+					if ( conv && s.throws ) {
 						response = conv( response );
 						response = conv( response );
 					} else {
 					} else {
 						try {
 						try {
 							response = conv( response );
 							response = conv( response );
 						} catch ( e ) {
 						} catch ( e ) {
-							return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
 						}
 						}
 					}
 					}
 				}
 				}
@@ -273,7 +289,7 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) {
 	return { state: "success", data: response };
 	return { state: "success", data: response };
 }
 }
 
 
-jQuery.extend({
+jQuery.extend( {
 
 
 	// Counter for holding the number of active queries
 	// Counter for holding the number of active queries
 	active: 0,
 	active: 0,
@@ -283,13 +299,14 @@ jQuery.extend({
 	etag: {},
 	etag: {},
 
 
 	ajaxSettings: {
 	ajaxSettings: {
-		url: ajaxLocation,
+		url: location.href,
 		type: "GET",
 		type: "GET",
-		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+		isLocal: rlocalProtocol.test( location.protocol ),
 		global: true,
 		global: true,
 		processData: true,
 		processData: true,
 		async: true,
 		async: true,
 		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
 		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
 		/*
 		/*
 		timeout: 0,
 		timeout: 0,
 		data: null,
 		data: null,
@@ -311,9 +328,9 @@ jQuery.extend({
 		},
 		},
 
 
 		contents: {
 		contents: {
-			xml: /xml/,
-			html: /html/,
-			json: /json/
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
 		},
 		},
 
 
 		responseFields: {
 		responseFields: {
@@ -333,7 +350,7 @@ jQuery.extend({
 			"text html": true,
 			"text html": true,
 
 
 			// Evaluate text as a json expression
 			// Evaluate text as a json expression
-			"text json": jQuery.parseJSON,
+			"text json": JSON.parse,
 
 
 			// Parse text as xml
 			// Parse text as xml
 			"text xml": jQuery.parseXML
 			"text xml": jQuery.parseXML
@@ -378,39 +395,58 @@ jQuery.extend({
 		options = options || {};
 		options = options || {};
 
 
 		var transport,
 		var transport,
+
 			// URL without anti-cache param
 			// URL without anti-cache param
 			cacheURL,
 			cacheURL,
+
 			// Response headers
 			// Response headers
 			responseHeadersString,
 			responseHeadersString,
 			responseHeaders,
 			responseHeaders,
+
 			// timeout handle
 			// timeout handle
 			timeoutTimer,
 			timeoutTimer,
-			// Cross-domain detection vars
-			parts,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// Request state (becomes false upon send and true upon completion)
+			completed,
+
 			// To know if global events are to be dispatched
 			// To know if global events are to be dispatched
 			fireGlobals,
 			fireGlobals,
+
 			// Loop variable
 			// Loop variable
 			i,
 			i,
+
+			// uncached part of the url
+			uncached,
+
 			// Create the final options object
 			// Create the final options object
 			s = jQuery.ajaxSetup( {}, options ),
 			s = jQuery.ajaxSetup( {}, options ),
+
 			// Callbacks context
 			// Callbacks context
 			callbackContext = s.context || s,
 			callbackContext = s.context || s,
+
 			// Context for global events is callbackContext if it is a DOM node or jQuery collection
 			// Context for global events is callbackContext if it is a DOM node or jQuery collection
-			globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
-				jQuery( callbackContext ) :
-				jQuery.event,
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
 			// Deferreds
 			// Deferreds
 			deferred = jQuery.Deferred(),
 			deferred = jQuery.Deferred(),
-			completeDeferred = jQuery.Callbacks("once memory"),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
 			// Status-dependent callbacks
 			// Status-dependent callbacks
 			statusCode = s.statusCode || {},
 			statusCode = s.statusCode || {},
+
 			// Headers (they are sent all at once)
 			// Headers (they are sent all at once)
 			requestHeaders = {},
 			requestHeaders = {},
 			requestHeadersNames = {},
 			requestHeadersNames = {},
-			// The jqXHR state
-			state = 0,
+
 			// Default abort message
 			// Default abort message
 			strAbort = "canceled",
 			strAbort = "canceled",
+
 			// Fake xhr
 			// Fake xhr
 			jqXHR = {
 			jqXHR = {
 				readyState: 0,
 				readyState: 0,
@@ -418,11 +454,11 @@ jQuery.extend({
 				// Builds headers hashtable if needed
 				// Builds headers hashtable if needed
 				getResponseHeader: function( key ) {
 				getResponseHeader: function( key ) {
 					var match;
 					var match;
-					if ( state === 2 ) {
+					if ( completed ) {
 						if ( !responseHeaders ) {
 						if ( !responseHeaders ) {
 							responseHeaders = {};
 							responseHeaders = {};
-							while ( (match = rheaders.exec( responseHeadersString )) ) {
-								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
 							}
 							}
 						}
 						}
 						match = responseHeaders[ key.toLowerCase() ];
 						match = responseHeaders[ key.toLowerCase() ];
@@ -432,14 +468,14 @@ jQuery.extend({
 
 
 				// Raw string
 				// Raw string
 				getAllResponseHeaders: function() {
 				getAllResponseHeaders: function() {
-					return state === 2 ? responseHeadersString : null;
+					return completed ? responseHeadersString : null;
 				},
 				},
 
 
 				// Caches the header
 				// Caches the header
 				setRequestHeader: function( name, value ) {
 				setRequestHeader: function( name, value ) {
-					var lname = name.toLowerCase();
-					if ( !state ) {
-						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+					if ( completed == null ) {
+						name = requestHeadersNames[ name.toLowerCase() ] =
+							requestHeadersNames[ name.toLowerCase() ] || name;
 						requestHeaders[ name ] = value;
 						requestHeaders[ name ] = value;
 					}
 					}
 					return this;
 					return this;
@@ -447,7 +483,7 @@ jQuery.extend({
 
 
 				// Overrides response content-type header
 				// Overrides response content-type header
 				overrideMimeType: function( type ) {
 				overrideMimeType: function( type ) {
-					if ( !state ) {
+					if ( completed == null ) {
 						s.mimeType = type;
 						s.mimeType = type;
 					}
 					}
 					return this;
 					return this;
@@ -457,14 +493,16 @@ jQuery.extend({
 				statusCode: function( map ) {
 				statusCode: function( map ) {
 					var code;
 					var code;
 					if ( map ) {
 					if ( map ) {
-						if ( state < 2 ) {
+						if ( completed ) {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						} else {
+
+							// Lazy-add the new callbacks in a way that preserves old ones
 							for ( code in map ) {
 							for ( code in map ) {
-								// Lazy-add the new callback in a way that preserves old ones
 								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
 								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
 							}
 							}
-						} else {
-							// Execute the appropriate callbacks
-							jqXHR.always( map[ jqXHR.status ] );
 						}
 						}
 					}
 					}
 					return this;
 					return this;
@@ -482,31 +520,41 @@ jQuery.extend({
 			};
 			};
 
 
 		// Attach deferreds
 		// Attach deferreds
-		deferred.promise( jqXHR ).complete = completeDeferred.add;
-		jqXHR.success = jqXHR.done;
-		jqXHR.error = jqXHR.fail;
+		deferred.promise( jqXHR );
 
 
-		// Remove hash character (#7531: and string promotion)
 		// Add protocol if not provided (prefilters might expect it)
 		// Add protocol if not provided (prefilters might expect it)
 		// Handle falsy url in the settings object (#10093: consistency with old signature)
 		// Handle falsy url in the settings object (#10093: consistency with old signature)
 		// We also use the url parameter if available
 		// We also use the url parameter if available
-		s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" )
-			.replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+		s.url = ( ( url || s.url || location.href ) + "" )
+			.replace( rprotocol, location.protocol + "//" );
 
 
 		// Alias method option to type as per ticket #12004
 		// Alias method option to type as per ticket #12004
 		s.type = options.method || options.type || s.method || s.type;
 		s.type = options.method || options.type || s.method || s.type;
 
 
 		// Extract dataTypes list
 		// Extract dataTypes list
-		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
+		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
 
 
-		// A cross-domain request is in order when we have a protocol:host:port mismatch
+		// A cross-domain request is in order when the origin doesn't match the current origin.
 		if ( s.crossDomain == null ) {
 		if ( s.crossDomain == null ) {
-			parts = rurl.exec( s.url.toLowerCase() );
-			s.crossDomain = !!( parts &&
-				( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
-					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
-						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
-			);
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE <=8 - 11, Edge 12 - 13
+			// IE throws exception on accessing the href property if url is malformed,
+			// e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE <=8 - 11 only
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
 		}
 		}
 
 
 		// Convert data if not already a string
 		// Convert data if not already a string
@@ -518,7 +566,7 @@ jQuery.extend({
 		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
 		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
 
 
 		// If request was aborted inside a prefilter, stop there
 		// If request was aborted inside a prefilter, stop there
-		if ( state === 2 ) {
+		if ( completed ) {
 			return jqXHR;
 			return jqXHR;
 		}
 		}
 
 
@@ -528,7 +576,7 @@ jQuery.extend({
 
 
 		// Watch for a new set of requests
 		// Watch for a new set of requests
 		if ( fireGlobals && jQuery.active++ === 0 ) {
 		if ( fireGlobals && jQuery.active++ === 0 ) {
-			jQuery.event.trigger("ajaxStart");
+			jQuery.event.trigger( "ajaxStart" );
 		}
 		}
 
 
 		// Uppercase the type
 		// Uppercase the type
@@ -539,28 +587,36 @@ jQuery.extend({
 
 
 		// Save the URL in case we're toying with the If-Modified-Since
 		// Save the URL in case we're toying with the If-Modified-Since
 		// and/or If-None-Match header later on
 		// and/or If-None-Match header later on
-		cacheURL = s.url;
+		// Remove hash to simplify url manipulation
+		cacheURL = s.url.replace( rhash, "" );
 
 
 		// More options handling for requests with no content
 		// More options handling for requests with no content
 		if ( !s.hasContent ) {
 		if ( !s.hasContent ) {
 
 
+			// Remember the hash so we can put it back
+			uncached = s.url.slice( cacheURL.length );
+
 			// If data is available, append data to url
 			// If data is available, append data to url
 			if ( s.data ) {
 			if ( s.data ) {
-				cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
+				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
 				// #9682: remove data so that it's not used in an eventual retry
 				// #9682: remove data so that it's not used in an eventual retry
 				delete s.data;
 				delete s.data;
 			}
 			}
 
 
-			// Add anti-cache in url if needed
+			// Add or update anti-cache param if needed
 			if ( s.cache === false ) {
 			if ( s.cache === false ) {
-				s.url = rts.test( cacheURL ) ?
+				cacheURL = cacheURL.replace( rantiCache, "$1" );
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+			}
 
 
-					// If there is already a '_' parameter, set its value
-					cacheURL.replace( rts, "$1_=" + nonce++ ) :
+			// Put hash and anti-cache on the URL that will be requested (gh-1732)
+			s.url = cacheURL + uncached;
 
 
-					// Otherwise add one to the end
-					cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
-			}
+		// Change '%20' to '+' if this is encoded form body content (gh-2658)
+		} else if ( s.data && s.processData &&
+			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+			s.data = s.data.replace( r20, "+" );
 		}
 		}
 
 
 		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
 		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
@@ -581,8 +637,9 @@ jQuery.extend({
 		// Set the Accepts header for the server, depending on the dataType
 		// Set the Accepts header for the server, depending on the dataType
 		jqXHR.setRequestHeader(
 		jqXHR.setRequestHeader(
 			"Accept",
 			"Accept",
-			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
-				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
 				s.accepts[ "*" ]
 				s.accepts[ "*" ]
 		);
 		);
 
 
@@ -592,7 +649,9 @@ jQuery.extend({
 		}
 		}
 
 
 		// Allow custom headers/mimetypes and early abort
 		// Allow custom headers/mimetypes and early abort
-		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
 			// Abort if not done already and return
 			// Abort if not done already and return
 			return jqXHR.abort();
 			return jqXHR.abort();
 		}
 		}
@@ -601,9 +660,9 @@ jQuery.extend({
 		strAbort = "abort";
 		strAbort = "abort";
 
 
 		// Install callbacks on deferreds
 		// Install callbacks on deferreds
-		for ( i in { success: 1, error: 1, complete: 1 } ) {
-			jqXHR[ i ]( s[ i ] );
-		}
+		completeDeferred.add( s.complete );
+		jqXHR.done( s.success );
+		jqXHR.fail( s.error );
 
 
 		// Get transport
 		// Get transport
 		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
 		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
@@ -618,24 +677,31 @@ jQuery.extend({
 			if ( fireGlobals ) {
 			if ( fireGlobals ) {
 				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
 				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
 			}
 			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( completed ) {
+				return jqXHR;
+			}
+
 			// Timeout
 			// Timeout
 			if ( s.async && s.timeout > 0 ) {
 			if ( s.async && s.timeout > 0 ) {
-				timeoutTimer = setTimeout(function() {
-					jqXHR.abort("timeout");
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
 				}, s.timeout );
 				}, s.timeout );
 			}
 			}
 
 
 			try {
 			try {
-				state = 1;
+				completed = false;
 				transport.send( requestHeaders, done );
 				transport.send( requestHeaders, done );
 			} catch ( e ) {
 			} catch ( e ) {
-				// Propagate exception as error if not done
-				if ( state < 2 ) {
-					done( -1, e );
-				// Simply rethrow otherwise
-				} else {
+
+				// Rethrow post-completion exceptions
+				if ( completed ) {
 					throw e;
 					throw e;
 				}
 				}
+
+				// Propagate others as results
+				done( -1, e );
 			}
 			}
 		}
 		}
 
 
@@ -644,17 +710,16 @@ jQuery.extend({
 			var isSuccess, success, error, response, modified,
 			var isSuccess, success, error, response, modified,
 				statusText = nativeStatusText;
 				statusText = nativeStatusText;
 
 
-			// Called once
-			if ( state === 2 ) {
+			// Ignore repeat invocations
+			if ( completed ) {
 				return;
 				return;
 			}
 			}
 
 
-			// State is "done" now
-			state = 2;
+			completed = true;
 
 
 			// Clear timeout if it exists
 			// Clear timeout if it exists
 			if ( timeoutTimer ) {
 			if ( timeoutTimer ) {
-				clearTimeout( timeoutTimer );
+				window.clearTimeout( timeoutTimer );
 			}
 			}
 
 
 			// Dereference transport for early garbage collection
 			// Dereference transport for early garbage collection
@@ -683,11 +748,11 @@ jQuery.extend({
 
 
 				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
 				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
 				if ( s.ifModified ) {
 				if ( s.ifModified ) {
-					modified = jqXHR.getResponseHeader("Last-Modified");
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
 					if ( modified ) {
 					if ( modified ) {
 						jQuery.lastModified[ cacheURL ] = modified;
 						jQuery.lastModified[ cacheURL ] = modified;
 					}
 					}
-					modified = jqXHR.getResponseHeader("etag");
+					modified = jqXHR.getResponseHeader( "etag" );
 					if ( modified ) {
 					if ( modified ) {
 						jQuery.etag[ cacheURL ] = modified;
 						jQuery.etag[ cacheURL ] = modified;
 					}
 					}
@@ -709,6 +774,7 @@ jQuery.extend({
 					isSuccess = !error;
 					isSuccess = !error;
 				}
 				}
 			} else {
 			} else {
+
 				// Extract error from statusText and normalize for non-aborts
 				// Extract error from statusText and normalize for non-aborts
 				error = statusText;
 				error = statusText;
 				if ( status || !statusText ) {
 				if ( status || !statusText ) {
@@ -744,9 +810,10 @@ jQuery.extend({
 
 
 			if ( fireGlobals ) {
 			if ( fireGlobals ) {
 				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
 				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
 				// Handle the global AJAX counter
 				// Handle the global AJAX counter
 				if ( !( --jQuery.active ) ) {
 				if ( !( --jQuery.active ) ) {
-					jQuery.event.trigger("ajaxStop");
+					jQuery.event.trigger( "ajaxStop" );
 				}
 				}
 			}
 			}
 		}
 		}
@@ -761,10 +828,11 @@ jQuery.extend({
 	getScript: function( url, callback ) {
 	getScript: function( url, callback ) {
 		return jQuery.get( url, undefined, callback, "script" );
 		return jQuery.get( url, undefined, callback, "script" );
 	}
 	}
-});
+} );
 
 
 jQuery.each( [ "get", "post" ], function( i, method ) {
 jQuery.each( [ "get", "post" ], function( i, method ) {
 	jQuery[ method ] = function( url, data, callback, type ) {
 	jQuery[ method ] = function( url, data, callback, type ) {
+
 		// Shift arguments if data argument was omitted
 		// Shift arguments if data argument was omitted
 		if ( jQuery.isFunction( data ) ) {
 		if ( jQuery.isFunction( data ) ) {
 			type = type || callback;
 			type = type || callback;
@@ -772,15 +840,16 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
 			data = undefined;
 			data = undefined;
 		}
 		}
 
 
-		return jQuery.ajax({
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
 			url: url,
 			url: url,
 			type: method,
 			type: method,
 			dataType: type,
 			dataType: type,
 			data: data,
 			data: data,
 			success: callback
 			success: callback
-		});
+		}, jQuery.isPlainObject( url ) && url ) );
 	};
 	};
-});
+} );
 
 
 return jQuery;
 return jQuery;
-});
+} );

+ 27 - 14
sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/ajax/jsonp.js

@@ -1,22 +1,24 @@
-define([
+define( [
 	"../core",
 	"../core",
 	"./var/nonce",
 	"./var/nonce",
 	"./var/rquery",
 	"./var/rquery",
 	"../ajax"
 	"../ajax"
 ], function( jQuery, nonce, rquery ) {
 ], function( jQuery, nonce, rquery ) {
 
 
+"use strict";
+
 var oldCallbacks = [],
 var oldCallbacks = [],
 	rjsonp = /(=)\?(?=&|$)|\?\?/;
 	rjsonp = /(=)\?(?=&|$)|\?\?/;
 
 
 // Default jsonp settings
 // Default jsonp settings
-jQuery.ajaxSetup({
+jQuery.ajaxSetup( {
 	jsonp: "callback",
 	jsonp: "callback",
 	jsonpCallback: function() {
 	jsonpCallback: function() {
 		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
 		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
 		this[ callback ] = true;
 		this[ callback ] = true;
 		return callback;
 		return callback;
 	}
 	}
-});
+} );
 
 
 // Detect, normalize options and install callbacks for jsonp requests
 // Detect, normalize options and install callbacks for jsonp requests
 jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
 jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
@@ -24,7 +26,10 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
 	var callbackName, overwritten, responseContainer,
 	var callbackName, overwritten, responseContainer,
 		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
 		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
 			"url" :
 			"url" :
-			typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
 		);
 		);
 
 
 	// Handle iff the expected data type is "jsonp" or we have a parameter to set
 	// Handle iff the expected data type is "jsonp" or we have a parameter to set
@@ -43,14 +48,14 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
 		}
 		}
 
 
 		// Use data converter to retrieve json after script execution
 		// Use data converter to retrieve json after script execution
-		s.converters["script json"] = function() {
+		s.converters[ "script json" ] = function() {
 			if ( !responseContainer ) {
 			if ( !responseContainer ) {
 				jQuery.error( callbackName + " was not called" );
 				jQuery.error( callbackName + " was not called" );
 			}
 			}
 			return responseContainer[ 0 ];
 			return responseContainer[ 0 ];
 		};
 		};
 
 
-		// force json dataType
+		// Force json dataType
 		s.dataTypes[ 0 ] = "json";
 		s.dataTypes[ 0 ] = "json";
 
 
 		// Install callback
 		// Install callback
@@ -60,16 +65,24 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
 		};
 		};
 
 
 		// Clean-up function (fires after converters)
 		// Clean-up function (fires after converters)
-		jqXHR.always(function() {
-			// Restore preexisting value
-			window[ callbackName ] = overwritten;
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
 
 
 			// Save back as free
 			// Save back as free
 			if ( s[ callbackName ] ) {
 			if ( s[ callbackName ] ) {
-				// make sure that re-using the options doesn't screw things around
+
+				// Make sure that re-using the options doesn't screw things around
 				s.jsonpCallback = originalSettings.jsonpCallback;
 				s.jsonpCallback = originalSettings.jsonpCallback;
 
 
-				// save the callback name for future use
+				// Save the callback name for future use
 				oldCallbacks.push( callbackName );
 				oldCallbacks.push( callbackName );
 			}
 			}
 
 
@@ -79,11 +92,11 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
 			}
 			}
 
 
 			responseContainer = overwritten = undefined;
 			responseContainer = overwritten = undefined;
-		});
+		} );
 
 
 		// Delegate to script
 		// Delegate to script
 		return "script";
 		return "script";
 	}
 	}
-});
+} );
 
 
-});
+} );

+ 24 - 23
sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/ajax/load.js

@@ -1,31 +1,25 @@
-define([
+define( [
 	"../core",
 	"../core",
+	"../core/stripAndCollapse",
 	"../core/parseHTML",
 	"../core/parseHTML",
 	"../ajax",
 	"../ajax",
 	"../traversing",
 	"../traversing",
 	"../manipulation",
 	"../manipulation",
-	"../selector",
-	// Optional event/alias dependency
-	"../event/alias"
-], function( jQuery ) {
+	"../selector"
+], function( jQuery, stripAndCollapse ) {
 
 
-// Keep a copy of the old load method
-var _load = jQuery.fn.load;
+"use strict";
 
 
 /**
 /**
  * Load a url into a page
  * Load a url into a page
  */
  */
 jQuery.fn.load = function( url, params, callback ) {
 jQuery.fn.load = function( url, params, callback ) {
-	if ( typeof url !== "string" && _load ) {
-		return _load.apply( this, arguments );
-	}
-
 	var selector, type, response,
 	var selector, type, response,
 		self = this,
 		self = this,
-		off = url.indexOf(" ");
+		off = url.indexOf( " " );
 
 
-	if ( off >= 0 ) {
-		selector = jQuery.trim( url.slice( off ) );
+	if ( off > -1 ) {
+		selector = stripAndCollapse( url.slice( off ) );
 		url = url.slice( 0, off );
 		url = url.slice( 0, off );
 	}
 	}
 
 
@@ -43,14 +37,16 @@ jQuery.fn.load = function( url, params, callback ) {
 
 
 	// If we have elements to modify, make the request
 	// If we have elements to modify, make the request
 	if ( self.length > 0 ) {
 	if ( self.length > 0 ) {
-		jQuery.ajax({
+		jQuery.ajax( {
 			url: url,
 			url: url,
 
 
-			// if "type" variable is undefined, then "GET" method will be used
-			type: type,
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
 			dataType: "html",
 			dataType: "html",
 			data: params
 			data: params
-		}).done(function( responseText ) {
+		} ).done( function( responseText ) {
 
 
 			// Save response for use in complete callback
 			// Save response for use in complete callback
 			response = arguments;
 			response = arguments;
@@ -59,17 +55,22 @@ jQuery.fn.load = function( url, params, callback ) {
 
 
 				// If a selector was specified, locate the right elements in a dummy div
 				// If a selector was specified, locate the right elements in a dummy div
 				// Exclude scripts to avoid IE 'Permission Denied' errors
 				// Exclude scripts to avoid IE 'Permission Denied' errors
-				jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
 
 
 				// Otherwise use the full result
 				// Otherwise use the full result
 				responseText );
 				responseText );
 
 
-		}).complete( callback && function( jqXHR, status ) {
-			self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
-		});
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
 	}
 	}
 
 
 	return this;
 	return this;
 };
 };
 
 
-});
+} );

+ 0 - 13
sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/ajax/parseJSON.js

@@ -1,13 +0,0 @@
-define([
-	"../core"
-], function( jQuery ) {
-
-// Support: Android 2.3
-// Workaround failure to string-cast null input
-jQuery.parseJSON = function( data ) {
-	return JSON.parse( data + "" );
-};
-
-return jQuery.parseJSON;
-
-});

+ 8 - 6
sites/all/themes/gui/materiobasetheme/bower_components/jquery/src/ajax/parseXML.js

@@ -1,18 +1,20 @@
-define([
+define( [
 	"../core"
 	"../core"
 ], function( jQuery ) {
 ], function( jQuery ) {
 
 
+"use strict";
+
 // Cross-browser xml parsing
 // Cross-browser xml parsing
 jQuery.parseXML = function( data ) {
 jQuery.parseXML = function( data ) {
-	var xml, tmp;
+	var xml;
 	if ( !data || typeof data !== "string" ) {
 	if ( !data || typeof data !== "string" ) {
 		return null;
 		return null;
 	}
 	}
 
 
-	// Support: IE9
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
 	try {
 	try {
-		tmp = new DOMParser();
-		xml = tmp.parseFromString( data, "text/xml" );
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
 	} catch ( e ) {
 	} catch ( e ) {
 		xml = undefined;
 		xml = undefined;
 	}
 	}
@@ -25,4 +27,4 @@ jQuery.parseXML = function( data ) {
 
 
 return jQuery.parseXML;
 return jQuery.parseXML;
 
 
-});
+} );

Some files were not shown because too many files changed in this diff