diff --git a/example.html b/example.html
index e62aed1..3d0371b 100644
--- a/example.html
+++ b/example.html
@@ -15,9 +15,9 @@
-
-
-
+
+
+
diff --git a/foundation/css/foundation.css b/foundation/css/foundation.css
new file mode 100644
index 0000000..190bdd1
--- /dev/null
+++ b/foundation/css/foundation.css
@@ -0,0 +1,6191 @@
+meta.foundation-version {
+ font-family: "/5.4.7/"; }
+
+meta.foundation-mq-small {
+ font-family: "/only screen/";
+ width: 0em; }
+
+meta.foundation-mq-medium {
+ font-family: "/only screen and (min-width:40.063em)/";
+ width: 40.063em; }
+
+meta.foundation-mq-large {
+ font-family: "/only screen and (min-width:64.063em)/";
+ width: 64.063em; }
+
+meta.foundation-mq-xlarge {
+ font-family: "/only screen and (min-width:90.063em)/";
+ width: 90.063em; }
+
+meta.foundation-mq-xxlarge {
+ font-family: "/only screen and (min-width:120.063em)/";
+ width: 120.063em; }
+
+meta.foundation-data-attribute-namespace {
+ font-family: false; }
+
+html, body {
+ height: 100%; }
+
+*,
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+
+html,
+body {
+ font-size: 100%; }
+
+body {
+ background: white;
+ color: #222222;
+ padding: 0;
+ margin: 0;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ font-weight: normal;
+ font-style: normal;
+ line-height: 1.5;
+ position: relative;
+ cursor: auto; }
+
+a:hover {
+ cursor: pointer; }
+
+img {
+ max-width: 100%;
+ height: auto; }
+
+img {
+ -ms-interpolation-mode: bicubic; }
+
+#map_canvas img,
+#map_canvas embed,
+#map_canvas object,
+.map_canvas img,
+.map_canvas embed,
+.map_canvas object {
+ max-width: none !important; }
+
+.left {
+ float: left !important; }
+
+.right {
+ float: right !important; }
+
+.clearfix:before, .clearfix:after {
+ content: " ";
+ display: table; }
+.clearfix:after {
+ clear: both; }
+
+.hide {
+ display: none !important;
+ visibility: hidden; }
+
+.invisible {
+ visibility: hidden; }
+
+.antialiased {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale; }
+
+img {
+ display: inline-block;
+ vertical-align: middle; }
+
+textarea {
+ height: auto;
+ min-height: 50px; }
+
+select {
+ width: 100%; }
+
+.row {
+ width: 100%;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 0;
+ margin-bottom: 0;
+ max-width: 62.5rem; }
+ .row:before, .row:after {
+ content: " ";
+ display: table; }
+ .row:after {
+ clear: both; }
+ .row.collapse > .column,
+ .row.collapse > .columns {
+ padding-left: 0;
+ padding-right: 0; }
+ .row.collapse .row {
+ margin-left: 0;
+ margin-right: 0; }
+ .row .row {
+ width: auto;
+ margin-left: -0.9375rem;
+ margin-right: -0.9375rem;
+ margin-top: 0;
+ margin-bottom: 0;
+ max-width: none; }
+ .row .row:before, .row .row:after {
+ content: " ";
+ display: table; }
+ .row .row:after {
+ clear: both; }
+ .row .row.collapse {
+ width: auto;
+ margin: 0;
+ max-width: none; }
+ .row .row.collapse:before, .row .row.collapse:after {
+ content: " ";
+ display: table; }
+ .row .row.collapse:after {
+ clear: both; }
+
+.column,
+.columns {
+ padding-left: 0.9375rem;
+ padding-right: 0.9375rem;
+ width: 100%;
+ float: left; }
+
+[class*="column"] + [class*="column"]:last-child {
+ float: right; }
+
+[class*="column"] + [class*="column"].end {
+ float: left; }
+
+@media only screen {
+ .small-push-0 {
+ position: relative;
+ left: 0%;
+ right: auto; }
+
+ .small-pull-0 {
+ position: relative;
+ right: 0%;
+ left: auto; }
+
+ .small-push-1 {
+ position: relative;
+ left: 8.33333%;
+ right: auto; }
+
+ .small-pull-1 {
+ position: relative;
+ right: 8.33333%;
+ left: auto; }
+
+ .small-push-2 {
+ position: relative;
+ left: 16.66667%;
+ right: auto; }
+
+ .small-pull-2 {
+ position: relative;
+ right: 16.66667%;
+ left: auto; }
+
+ .small-push-3 {
+ position: relative;
+ left: 25%;
+ right: auto; }
+
+ .small-pull-3 {
+ position: relative;
+ right: 25%;
+ left: auto; }
+
+ .small-push-4 {
+ position: relative;
+ left: 33.33333%;
+ right: auto; }
+
+ .small-pull-4 {
+ position: relative;
+ right: 33.33333%;
+ left: auto; }
+
+ .small-push-5 {
+ position: relative;
+ left: 41.66667%;
+ right: auto; }
+
+ .small-pull-5 {
+ position: relative;
+ right: 41.66667%;
+ left: auto; }
+
+ .small-push-6 {
+ position: relative;
+ left: 50%;
+ right: auto; }
+
+ .small-pull-6 {
+ position: relative;
+ right: 50%;
+ left: auto; }
+
+ .small-push-7 {
+ position: relative;
+ left: 58.33333%;
+ right: auto; }
+
+ .small-pull-7 {
+ position: relative;
+ right: 58.33333%;
+ left: auto; }
+
+ .small-push-8 {
+ position: relative;
+ left: 66.66667%;
+ right: auto; }
+
+ .small-pull-8 {
+ position: relative;
+ right: 66.66667%;
+ left: auto; }
+
+ .small-push-9 {
+ position: relative;
+ left: 75%;
+ right: auto; }
+
+ .small-pull-9 {
+ position: relative;
+ right: 75%;
+ left: auto; }
+
+ .small-push-10 {
+ position: relative;
+ left: 83.33333%;
+ right: auto; }
+
+ .small-pull-10 {
+ position: relative;
+ right: 83.33333%;
+ left: auto; }
+
+ .small-push-11 {
+ position: relative;
+ left: 91.66667%;
+ right: auto; }
+
+ .small-pull-11 {
+ position: relative;
+ right: 91.66667%;
+ left: auto; }
+
+ .column,
+ .columns {
+ position: relative;
+ padding-left: 0.9375rem;
+ padding-right: 0.9375rem;
+ float: left; }
+
+ .small-1 {
+ width: 8.33333%; }
+
+ .small-2 {
+ width: 16.66667%; }
+
+ .small-3 {
+ width: 25%; }
+
+ .small-4 {
+ width: 33.33333%; }
+
+ .small-5 {
+ width: 41.66667%; }
+
+ .small-6 {
+ width: 50%; }
+
+ .small-7 {
+ width: 58.33333%; }
+
+ .small-8 {
+ width: 66.66667%; }
+
+ .small-9 {
+ width: 75%; }
+
+ .small-10 {
+ width: 83.33333%; }
+
+ .small-11 {
+ width: 91.66667%; }
+
+ .small-12 {
+ width: 100%; }
+
+ .small-offset-0 {
+ margin-left: 0% !important; }
+
+ .small-offset-1 {
+ margin-left: 8.33333% !important; }
+
+ .small-offset-2 {
+ margin-left: 16.66667% !important; }
+
+ .small-offset-3 {
+ margin-left: 25% !important; }
+
+ .small-offset-4 {
+ margin-left: 33.33333% !important; }
+
+ .small-offset-5 {
+ margin-left: 41.66667% !important; }
+
+ .small-offset-6 {
+ margin-left: 50% !important; }
+
+ .small-offset-7 {
+ margin-left: 58.33333% !important; }
+
+ .small-offset-8 {
+ margin-left: 66.66667% !important; }
+
+ .small-offset-9 {
+ margin-left: 75% !important; }
+
+ .small-offset-10 {
+ margin-left: 83.33333% !important; }
+
+ .small-offset-11 {
+ margin-left: 91.66667% !important; }
+
+ .small-reset-order {
+ margin-left: 0;
+ margin-right: 0;
+ left: auto;
+ right: auto;
+ float: left; }
+
+ .column.small-centered,
+ .columns.small-centered {
+ margin-left: auto;
+ margin-right: auto;
+ float: none; }
+
+ .column.small-uncentered,
+ .columns.small-uncentered {
+ margin-left: 0;
+ margin-right: 0;
+ float: left; }
+
+ .column.small-centered:last-child,
+ .columns.small-centered:last-child {
+ float: none; }
+
+ .column.small-uncentered:last-child,
+ .columns.small-uncentered:last-child {
+ float: left; }
+
+ .column.small-uncentered.opposite,
+ .columns.small-uncentered.opposite {
+ float: right; } }
+@media only screen and (min-width: 40.063em) {
+ .medium-push-0 {
+ position: relative;
+ left: 0%;
+ right: auto; }
+
+ .medium-pull-0 {
+ position: relative;
+ right: 0%;
+ left: auto; }
+
+ .medium-push-1 {
+ position: relative;
+ left: 8.33333%;
+ right: auto; }
+
+ .medium-pull-1 {
+ position: relative;
+ right: 8.33333%;
+ left: auto; }
+
+ .medium-push-2 {
+ position: relative;
+ left: 16.66667%;
+ right: auto; }
+
+ .medium-pull-2 {
+ position: relative;
+ right: 16.66667%;
+ left: auto; }
+
+ .medium-push-3 {
+ position: relative;
+ left: 25%;
+ right: auto; }
+
+ .medium-pull-3 {
+ position: relative;
+ right: 25%;
+ left: auto; }
+
+ .medium-push-4 {
+ position: relative;
+ left: 33.33333%;
+ right: auto; }
+
+ .medium-pull-4 {
+ position: relative;
+ right: 33.33333%;
+ left: auto; }
+
+ .medium-push-5 {
+ position: relative;
+ left: 41.66667%;
+ right: auto; }
+
+ .medium-pull-5 {
+ position: relative;
+ right: 41.66667%;
+ left: auto; }
+
+ .medium-push-6 {
+ position: relative;
+ left: 50%;
+ right: auto; }
+
+ .medium-pull-6 {
+ position: relative;
+ right: 50%;
+ left: auto; }
+
+ .medium-push-7 {
+ position: relative;
+ left: 58.33333%;
+ right: auto; }
+
+ .medium-pull-7 {
+ position: relative;
+ right: 58.33333%;
+ left: auto; }
+
+ .medium-push-8 {
+ position: relative;
+ left: 66.66667%;
+ right: auto; }
+
+ .medium-pull-8 {
+ position: relative;
+ right: 66.66667%;
+ left: auto; }
+
+ .medium-push-9 {
+ position: relative;
+ left: 75%;
+ right: auto; }
+
+ .medium-pull-9 {
+ position: relative;
+ right: 75%;
+ left: auto; }
+
+ .medium-push-10 {
+ position: relative;
+ left: 83.33333%;
+ right: auto; }
+
+ .medium-pull-10 {
+ position: relative;
+ right: 83.33333%;
+ left: auto; }
+
+ .medium-push-11 {
+ position: relative;
+ left: 91.66667%;
+ right: auto; }
+
+ .medium-pull-11 {
+ position: relative;
+ right: 91.66667%;
+ left: auto; }
+
+ .column,
+ .columns {
+ position: relative;
+ padding-left: 0.9375rem;
+ padding-right: 0.9375rem;
+ float: left; }
+
+ .medium-1 {
+ width: 8.33333%; }
+
+ .medium-2 {
+ width: 16.66667%; }
+
+ .medium-3 {
+ width: 25%; }
+
+ .medium-4 {
+ width: 33.33333%; }
+
+ .medium-5 {
+ width: 41.66667%; }
+
+ .medium-6 {
+ width: 50%; }
+
+ .medium-7 {
+ width: 58.33333%; }
+
+ .medium-8 {
+ width: 66.66667%; }
+
+ .medium-9 {
+ width: 75%; }
+
+ .medium-10 {
+ width: 83.33333%; }
+
+ .medium-11 {
+ width: 91.66667%; }
+
+ .medium-12 {
+ width: 100%; }
+
+ .medium-offset-0 {
+ margin-left: 0% !important; }
+
+ .medium-offset-1 {
+ margin-left: 8.33333% !important; }
+
+ .medium-offset-2 {
+ margin-left: 16.66667% !important; }
+
+ .medium-offset-3 {
+ margin-left: 25% !important; }
+
+ .medium-offset-4 {
+ margin-left: 33.33333% !important; }
+
+ .medium-offset-5 {
+ margin-left: 41.66667% !important; }
+
+ .medium-offset-6 {
+ margin-left: 50% !important; }
+
+ .medium-offset-7 {
+ margin-left: 58.33333% !important; }
+
+ .medium-offset-8 {
+ margin-left: 66.66667% !important; }
+
+ .medium-offset-9 {
+ margin-left: 75% !important; }
+
+ .medium-offset-10 {
+ margin-left: 83.33333% !important; }
+
+ .medium-offset-11 {
+ margin-left: 91.66667% !important; }
+
+ .medium-reset-order {
+ margin-left: 0;
+ margin-right: 0;
+ left: auto;
+ right: auto;
+ float: left; }
+
+ .column.medium-centered,
+ .columns.medium-centered {
+ margin-left: auto;
+ margin-right: auto;
+ float: none; }
+
+ .column.medium-uncentered,
+ .columns.medium-uncentered {
+ margin-left: 0;
+ margin-right: 0;
+ float: left; }
+
+ .column.medium-centered:last-child,
+ .columns.medium-centered:last-child {
+ float: none; }
+
+ .column.medium-uncentered:last-child,
+ .columns.medium-uncentered:last-child {
+ float: left; }
+
+ .column.medium-uncentered.opposite,
+ .columns.medium-uncentered.opposite {
+ float: right; }
+
+ .push-0 {
+ position: relative;
+ left: 0%;
+ right: auto; }
+
+ .pull-0 {
+ position: relative;
+ right: 0%;
+ left: auto; }
+
+ .push-1 {
+ position: relative;
+ left: 8.33333%;
+ right: auto; }
+
+ .pull-1 {
+ position: relative;
+ right: 8.33333%;
+ left: auto; }
+
+ .push-2 {
+ position: relative;
+ left: 16.66667%;
+ right: auto; }
+
+ .pull-2 {
+ position: relative;
+ right: 16.66667%;
+ left: auto; }
+
+ .push-3 {
+ position: relative;
+ left: 25%;
+ right: auto; }
+
+ .pull-3 {
+ position: relative;
+ right: 25%;
+ left: auto; }
+
+ .push-4 {
+ position: relative;
+ left: 33.33333%;
+ right: auto; }
+
+ .pull-4 {
+ position: relative;
+ right: 33.33333%;
+ left: auto; }
+
+ .push-5 {
+ position: relative;
+ left: 41.66667%;
+ right: auto; }
+
+ .pull-5 {
+ position: relative;
+ right: 41.66667%;
+ left: auto; }
+
+ .push-6 {
+ position: relative;
+ left: 50%;
+ right: auto; }
+
+ .pull-6 {
+ position: relative;
+ right: 50%;
+ left: auto; }
+
+ .push-7 {
+ position: relative;
+ left: 58.33333%;
+ right: auto; }
+
+ .pull-7 {
+ position: relative;
+ right: 58.33333%;
+ left: auto; }
+
+ .push-8 {
+ position: relative;
+ left: 66.66667%;
+ right: auto; }
+
+ .pull-8 {
+ position: relative;
+ right: 66.66667%;
+ left: auto; }
+
+ .push-9 {
+ position: relative;
+ left: 75%;
+ right: auto; }
+
+ .pull-9 {
+ position: relative;
+ right: 75%;
+ left: auto; }
+
+ .push-10 {
+ position: relative;
+ left: 83.33333%;
+ right: auto; }
+
+ .pull-10 {
+ position: relative;
+ right: 83.33333%;
+ left: auto; }
+
+ .push-11 {
+ position: relative;
+ left: 91.66667%;
+ right: auto; }
+
+ .pull-11 {
+ position: relative;
+ right: 91.66667%;
+ left: auto; } }
+@media only screen and (min-width: 64.063em) {
+ .large-push-0 {
+ position: relative;
+ left: 0%;
+ right: auto; }
+
+ .large-pull-0 {
+ position: relative;
+ right: 0%;
+ left: auto; }
+
+ .large-push-1 {
+ position: relative;
+ left: 8.33333%;
+ right: auto; }
+
+ .large-pull-1 {
+ position: relative;
+ right: 8.33333%;
+ left: auto; }
+
+ .large-push-2 {
+ position: relative;
+ left: 16.66667%;
+ right: auto; }
+
+ .large-pull-2 {
+ position: relative;
+ right: 16.66667%;
+ left: auto; }
+
+ .large-push-3 {
+ position: relative;
+ left: 25%;
+ right: auto; }
+
+ .large-pull-3 {
+ position: relative;
+ right: 25%;
+ left: auto; }
+
+ .large-push-4 {
+ position: relative;
+ left: 33.33333%;
+ right: auto; }
+
+ .large-pull-4 {
+ position: relative;
+ right: 33.33333%;
+ left: auto; }
+
+ .large-push-5 {
+ position: relative;
+ left: 41.66667%;
+ right: auto; }
+
+ .large-pull-5 {
+ position: relative;
+ right: 41.66667%;
+ left: auto; }
+
+ .large-push-6 {
+ position: relative;
+ left: 50%;
+ right: auto; }
+
+ .large-pull-6 {
+ position: relative;
+ right: 50%;
+ left: auto; }
+
+ .large-push-7 {
+ position: relative;
+ left: 58.33333%;
+ right: auto; }
+
+ .large-pull-7 {
+ position: relative;
+ right: 58.33333%;
+ left: auto; }
+
+ .large-push-8 {
+ position: relative;
+ left: 66.66667%;
+ right: auto; }
+
+ .large-pull-8 {
+ position: relative;
+ right: 66.66667%;
+ left: auto; }
+
+ .large-push-9 {
+ position: relative;
+ left: 75%;
+ right: auto; }
+
+ .large-pull-9 {
+ position: relative;
+ right: 75%;
+ left: auto; }
+
+ .large-push-10 {
+ position: relative;
+ left: 83.33333%;
+ right: auto; }
+
+ .large-pull-10 {
+ position: relative;
+ right: 83.33333%;
+ left: auto; }
+
+ .large-push-11 {
+ position: relative;
+ left: 91.66667%;
+ right: auto; }
+
+ .large-pull-11 {
+ position: relative;
+ right: 91.66667%;
+ left: auto; }
+
+ .column,
+ .columns {
+ position: relative;
+ padding-left: 0.9375rem;
+ padding-right: 0.9375rem;
+ float: left; }
+
+ .large-1 {
+ width: 8.33333%; }
+
+ .large-2 {
+ width: 16.66667%; }
+
+ .large-3 {
+ width: 25%; }
+
+ .large-4 {
+ width: 33.33333%; }
+
+ .large-5 {
+ width: 41.66667%; }
+
+ .large-6 {
+ width: 50%; }
+
+ .large-7 {
+ width: 58.33333%; }
+
+ .large-8 {
+ width: 66.66667%; }
+
+ .large-9 {
+ width: 75%; }
+
+ .large-10 {
+ width: 83.33333%; }
+
+ .large-11 {
+ width: 91.66667%; }
+
+ .large-12 {
+ width: 100%; }
+
+ .large-offset-0 {
+ margin-left: 0% !important; }
+
+ .large-offset-1 {
+ margin-left: 8.33333% !important; }
+
+ .large-offset-2 {
+ margin-left: 16.66667% !important; }
+
+ .large-offset-3 {
+ margin-left: 25% !important; }
+
+ .large-offset-4 {
+ margin-left: 33.33333% !important; }
+
+ .large-offset-5 {
+ margin-left: 41.66667% !important; }
+
+ .large-offset-6 {
+ margin-left: 50% !important; }
+
+ .large-offset-7 {
+ margin-left: 58.33333% !important; }
+
+ .large-offset-8 {
+ margin-left: 66.66667% !important; }
+
+ .large-offset-9 {
+ margin-left: 75% !important; }
+
+ .large-offset-10 {
+ margin-left: 83.33333% !important; }
+
+ .large-offset-11 {
+ margin-left: 91.66667% !important; }
+
+ .large-reset-order {
+ margin-left: 0;
+ margin-right: 0;
+ left: auto;
+ right: auto;
+ float: left; }
+
+ .column.large-centered,
+ .columns.large-centered {
+ margin-left: auto;
+ margin-right: auto;
+ float: none; }
+
+ .column.large-uncentered,
+ .columns.large-uncentered {
+ margin-left: 0;
+ margin-right: 0;
+ float: left; }
+
+ .column.large-centered:last-child,
+ .columns.large-centered:last-child {
+ float: none; }
+
+ .column.large-uncentered:last-child,
+ .columns.large-uncentered:last-child {
+ float: left; }
+
+ .column.large-uncentered.opposite,
+ .columns.large-uncentered.opposite {
+ float: right; }
+
+ .push-0 {
+ position: relative;
+ left: 0%;
+ right: auto; }
+
+ .pull-0 {
+ position: relative;
+ right: 0%;
+ left: auto; }
+
+ .push-1 {
+ position: relative;
+ left: 8.33333%;
+ right: auto; }
+
+ .pull-1 {
+ position: relative;
+ right: 8.33333%;
+ left: auto; }
+
+ .push-2 {
+ position: relative;
+ left: 16.66667%;
+ right: auto; }
+
+ .pull-2 {
+ position: relative;
+ right: 16.66667%;
+ left: auto; }
+
+ .push-3 {
+ position: relative;
+ left: 25%;
+ right: auto; }
+
+ .pull-3 {
+ position: relative;
+ right: 25%;
+ left: auto; }
+
+ .push-4 {
+ position: relative;
+ left: 33.33333%;
+ right: auto; }
+
+ .pull-4 {
+ position: relative;
+ right: 33.33333%;
+ left: auto; }
+
+ .push-5 {
+ position: relative;
+ left: 41.66667%;
+ right: auto; }
+
+ .pull-5 {
+ position: relative;
+ right: 41.66667%;
+ left: auto; }
+
+ .push-6 {
+ position: relative;
+ left: 50%;
+ right: auto; }
+
+ .pull-6 {
+ position: relative;
+ right: 50%;
+ left: auto; }
+
+ .push-7 {
+ position: relative;
+ left: 58.33333%;
+ right: auto; }
+
+ .pull-7 {
+ position: relative;
+ right: 58.33333%;
+ left: auto; }
+
+ .push-8 {
+ position: relative;
+ left: 66.66667%;
+ right: auto; }
+
+ .pull-8 {
+ position: relative;
+ right: 66.66667%;
+ left: auto; }
+
+ .push-9 {
+ position: relative;
+ left: 75%;
+ right: auto; }
+
+ .pull-9 {
+ position: relative;
+ right: 75%;
+ left: auto; }
+
+ .push-10 {
+ position: relative;
+ left: 83.33333%;
+ right: auto; }
+
+ .pull-10 {
+ position: relative;
+ right: 83.33333%;
+ left: auto; }
+
+ .push-11 {
+ position: relative;
+ left: 91.66667%;
+ right: auto; }
+
+ .pull-11 {
+ position: relative;
+ right: 91.66667%;
+ left: auto; } }
+button, .button {
+ border-style: solid;
+ border-width: 0px;
+ cursor: pointer;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ font-weight: normal;
+ line-height: normal;
+ margin: 0 0 1.25rem;
+ position: relative;
+ text-decoration: none;
+ text-align: center;
+ -webkit-appearance: none;
+ -webkit-border-radius: 0;
+ display: inline-block;
+ padding-top: 1rem;
+ padding-right: 2rem;
+ padding-bottom: 1.0625rem;
+ padding-left: 2rem;
+ font-size: 1rem;
+ background-color: #008cba;
+ border-color: #007095;
+ color: white;
+ transition: background-color 300ms ease-out; }
+ button:hover, button:focus, .button:hover, .button:focus {
+ background-color: #007095; }
+ button:hover, button:focus, .button:hover, .button:focus {
+ color: white; }
+ button.secondary, .button.secondary {
+ background-color: #e7e7e7;
+ border-color: #b9b9b9;
+ color: #333333; }
+ button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
+ background-color: #b9b9b9; }
+ button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
+ color: #333333; }
+ button.success, .button.success {
+ background-color: #43ac6a;
+ border-color: #368a55;
+ color: white; }
+ button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
+ background-color: #368a55; }
+ button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
+ color: white; }
+ button.alert, .button.alert {
+ background-color: #f04124;
+ border-color: #cf2a0e;
+ color: white; }
+ button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
+ background-color: #cf2a0e; }
+ button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
+ color: white; }
+ button.warning, .button.warning {
+ background-color: #f08a24;
+ border-color: #cf6e0e;
+ color: white; }
+ button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
+ background-color: #cf6e0e; }
+ button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
+ color: white; }
+ button.info, .button.info {
+ background-color: #a0d3e8;
+ border-color: #61b6d9;
+ color: #333333; }
+ button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
+ background-color: #61b6d9; }
+ button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
+ color: white; }
+ button.large, .button.large {
+ padding-top: 1.125rem;
+ padding-right: 2.25rem;
+ padding-bottom: 1.1875rem;
+ padding-left: 2.25rem;
+ font-size: 1.25rem; }
+ button.small, .button.small {
+ padding-top: 0.875rem;
+ padding-right: 1.75rem;
+ padding-bottom: 0.9375rem;
+ padding-left: 1.75rem;
+ font-size: 0.8125rem; }
+ button.tiny, .button.tiny {
+ padding-top: 0.625rem;
+ padding-right: 1.25rem;
+ padding-bottom: 0.6875rem;
+ padding-left: 1.25rem;
+ font-size: 0.6875rem; }
+ button.expand, .button.expand {
+ padding-right: 0;
+ padding-left: 0;
+ width: 100%; }
+ button.left-align, .button.left-align {
+ text-align: left;
+ text-indent: 0.75rem; }
+ button.right-align, .button.right-align {
+ text-align: right;
+ padding-right: 0.75rem; }
+ button.radius, .button.radius {
+ border-radius: 3px; }
+ button.round, .button.round {
+ border-radius: 1000px; }
+ button.disabled, button[disabled], .button.disabled, .button[disabled] {
+ background-color: #008cba;
+ border-color: #007095;
+ color: white;
+ cursor: default;
+ opacity: 0.7;
+ box-shadow: none; }
+ button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
+ background-color: #007095; }
+ button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
+ color: white; }
+ button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
+ background-color: #008cba; }
+ button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
+ background-color: #e7e7e7;
+ border-color: #b9b9b9;
+ color: #333333;
+ cursor: default;
+ opacity: 0.7;
+ box-shadow: none; }
+ button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
+ background-color: #b9b9b9; }
+ button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
+ color: #333333; }
+ button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
+ background-color: #e7e7e7; }
+ button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success {
+ background-color: #43ac6a;
+ border-color: #368a55;
+ color: white;
+ cursor: default;
+ opacity: 0.7;
+ box-shadow: none; }
+ button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
+ background-color: #368a55; }
+ button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
+ color: white; }
+ button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
+ background-color: #43ac6a; }
+ button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert {
+ background-color: #f04124;
+ border-color: #cf2a0e;
+ color: white;
+ cursor: default;
+ opacity: 0.7;
+ box-shadow: none; }
+ button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
+ background-color: #cf2a0e; }
+ button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
+ color: white; }
+ button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
+ background-color: #f04124; }
+ button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning {
+ background-color: #f08a24;
+ border-color: #cf6e0e;
+ color: white;
+ cursor: default;
+ opacity: 0.7;
+ box-shadow: none; }
+ button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
+ background-color: #cf6e0e; }
+ button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
+ color: white; }
+ button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
+ background-color: #f08a24; }
+ button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info {
+ background-color: #a0d3e8;
+ border-color: #61b6d9;
+ color: #333333;
+ cursor: default;
+ opacity: 0.7;
+ box-shadow: none; }
+ button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
+ background-color: #61b6d9; }
+ button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
+ color: white; }
+ button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
+ background-color: #a0d3e8; }
+
+button::-moz-focus-inner {
+ border: 0;
+ padding: 0; }
+
+@media only screen and (min-width: 40.063em) {
+ button, .button {
+ display: inline-block; } }
+/* Standard Forms */
+form {
+ margin: 0 0 1rem; }
+
+/* Using forms within rows, we need to set some defaults */
+form .row .row {
+ margin: 0 -0.5rem; }
+ form .row .row .column,
+ form .row .row .columns {
+ padding: 0 0.5rem; }
+ form .row .row.collapse {
+ margin: 0; }
+ form .row .row.collapse .column,
+ form .row .row.collapse .columns {
+ padding: 0; }
+ form .row .row.collapse input {
+ -webkit-border-bottom-right-radius: 0;
+ -webkit-border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+form .row input.column,
+form .row input.columns,
+form .row textarea.column,
+form .row textarea.columns {
+ padding-left: 0.5rem; }
+
+/* Label Styles */
+label {
+ font-size: 0.875rem;
+ color: #4d4d4d;
+ cursor: pointer;
+ display: block;
+ font-weight: normal;
+ line-height: 1.5;
+ margin-bottom: 0;
+ /* Styles for required inputs */ }
+ label.right {
+ float: none !important;
+ text-align: right; }
+ label.inline {
+ margin: 0 0 1rem 0;
+ padding: 0.5625rem 0; }
+ label small {
+ text-transform: capitalize;
+ color: #676767; }
+
+/* Attach elements to the beginning or end of an input */
+.prefix,
+.postfix {
+ display: block;
+ position: relative;
+ z-index: 2;
+ text-align: center;
+ width: 100%;
+ padding-top: 0;
+ padding-bottom: 0;
+ border-style: solid;
+ border-width: 1px;
+ overflow: hidden;
+ font-size: 0.875rem;
+ height: 2.3125rem;
+ line-height: 2.3125rem; }
+
+/* Adjust padding, alignment and radius if pre/post element is a button */
+.postfix.button {
+ padding-left: 0;
+ padding-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ text-align: center;
+ line-height: 2.125rem;
+ border: none; }
+
+.prefix.button {
+ padding-left: 0;
+ padding-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ text-align: center;
+ line-height: 2.125rem;
+ border: none; }
+
+.prefix.button.radius {
+ border-radius: 0;
+ -webkit-border-bottom-left-radius: 3px;
+ -webkit-border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px; }
+
+.postfix.button.radius {
+ border-radius: 0;
+ -webkit-border-bottom-right-radius: 3px;
+ -webkit-border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px; }
+
+.prefix.button.round {
+ border-radius: 0;
+ -webkit-border-bottom-left-radius: 1000px;
+ -webkit-border-top-left-radius: 1000px;
+ border-bottom-left-radius: 1000px;
+ border-top-left-radius: 1000px; }
+
+.postfix.button.round {
+ border-radius: 0;
+ -webkit-border-bottom-right-radius: 1000px;
+ -webkit-border-top-right-radius: 1000px;
+ border-bottom-right-radius: 1000px;
+ border-top-right-radius: 1000px; }
+
+/* Separate prefix and postfix styles when on span or label so buttons keep their own */
+span.prefix, label.prefix {
+ background: #f2f2f2;
+ border-right: none;
+ color: #333333;
+ border-color: #cccccc; }
+
+span.postfix, label.postfix {
+ background: #f2f2f2;
+ border-left: none;
+ color: #333333;
+ border-color: #cccccc; }
+
+/* We use this to get basic styling on all basic form elements */
+input[type="text"],
+input[type="password"],
+input[type="date"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="month"],
+input[type="week"],
+input[type="email"],
+input[type="number"],
+input[type="search"],
+input[type="tel"],
+input[type="time"],
+input[type="url"],
+input[type="color"],
+textarea {
+ -webkit-appearance: none;
+ -webkit-border-radius: 0px;
+ background-color: white;
+ font-family: inherit;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #cccccc;
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ color: rgba(0, 0, 0, 0.75);
+ display: block;
+ font-size: 0.875rem;
+ margin: 0 0 1rem 0;
+ padding: 0.5rem;
+ height: 2.3125rem;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ transition: box-shadow 0.45s, border-color 0.45s ease-in-out; }
+ input[type="text"]:focus,
+ input[type="password"]:focus,
+ input[type="date"]:focus,
+ input[type="datetime"]:focus,
+ input[type="datetime-local"]:focus,
+ input[type="month"]:focus,
+ input[type="week"]:focus,
+ input[type="email"]:focus,
+ input[type="number"]:focus,
+ input[type="search"]:focus,
+ input[type="tel"]:focus,
+ input[type="time"]:focus,
+ input[type="url"]:focus,
+ input[type="color"]:focus,
+ textarea:focus {
+ box-shadow: 0 0 5px #999999;
+ border-color: #999999; }
+ input[type="text"]:focus,
+ input[type="password"]:focus,
+ input[type="date"]:focus,
+ input[type="datetime"]:focus,
+ input[type="datetime-local"]:focus,
+ input[type="month"]:focus,
+ input[type="week"]:focus,
+ input[type="email"]:focus,
+ input[type="number"]:focus,
+ input[type="search"]:focus,
+ input[type="tel"]:focus,
+ input[type="time"]:focus,
+ input[type="url"]:focus,
+ input[type="color"]:focus,
+ textarea:focus {
+ background: #fafafa;
+ border-color: #999999;
+ outline: none; }
+ input[type="text"]:disabled,
+ input[type="password"]:disabled,
+ input[type="date"]:disabled,
+ input[type="datetime"]:disabled,
+ input[type="datetime-local"]:disabled,
+ input[type="month"]:disabled,
+ input[type="week"]:disabled,
+ input[type="email"]:disabled,
+ input[type="number"]:disabled,
+ input[type="search"]:disabled,
+ input[type="tel"]:disabled,
+ input[type="time"]:disabled,
+ input[type="url"]:disabled,
+ input[type="color"]:disabled,
+ textarea:disabled {
+ background-color: #dddddd;
+ cursor: default; }
+ input[type="text"][disabled], input[type="text"][readonly], fieldset[disabled] input[type="text"],
+ input[type="password"][disabled],
+ input[type="password"][readonly], fieldset[disabled]
+ input[type="password"],
+ input[type="date"][disabled],
+ input[type="date"][readonly], fieldset[disabled]
+ input[type="date"],
+ input[type="datetime"][disabled],
+ input[type="datetime"][readonly], fieldset[disabled]
+ input[type="datetime"],
+ input[type="datetime-local"][disabled],
+ input[type="datetime-local"][readonly], fieldset[disabled]
+ input[type="datetime-local"],
+ input[type="month"][disabled],
+ input[type="month"][readonly], fieldset[disabled]
+ input[type="month"],
+ input[type="week"][disabled],
+ input[type="week"][readonly], fieldset[disabled]
+ input[type="week"],
+ input[type="email"][disabled],
+ input[type="email"][readonly], fieldset[disabled]
+ input[type="email"],
+ input[type="number"][disabled],
+ input[type="number"][readonly], fieldset[disabled]
+ input[type="number"],
+ input[type="search"][disabled],
+ input[type="search"][readonly], fieldset[disabled]
+ input[type="search"],
+ input[type="tel"][disabled],
+ input[type="tel"][readonly], fieldset[disabled]
+ input[type="tel"],
+ input[type="time"][disabled],
+ input[type="time"][readonly], fieldset[disabled]
+ input[type="time"],
+ input[type="url"][disabled],
+ input[type="url"][readonly], fieldset[disabled]
+ input[type="url"],
+ input[type="color"][disabled],
+ input[type="color"][readonly], fieldset[disabled]
+ input[type="color"],
+ textarea[disabled],
+ textarea[readonly], fieldset[disabled]
+ textarea {
+ background-color: #dddddd;
+ cursor: default; }
+ input[type="text"].radius,
+ input[type="password"].radius,
+ input[type="date"].radius,
+ input[type="datetime"].radius,
+ input[type="datetime-local"].radius,
+ input[type="month"].radius,
+ input[type="week"].radius,
+ input[type="email"].radius,
+ input[type="number"].radius,
+ input[type="search"].radius,
+ input[type="tel"].radius,
+ input[type="time"].radius,
+ input[type="url"].radius,
+ input[type="color"].radius,
+ textarea.radius {
+ border-radius: 3px; }
+
+form .row .prefix-radius.row.collapse input,
+form .row .prefix-radius.row.collapse textarea,
+form .row .prefix-radius.row.collapse select {
+ border-radius: 0;
+ -webkit-border-bottom-right-radius: 3px;
+ -webkit-border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px; }
+form .row .prefix-radius.row.collapse .prefix {
+ border-radius: 0;
+ -webkit-border-bottom-left-radius: 3px;
+ -webkit-border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px; }
+form .row .postfix-radius.row.collapse input,
+form .row .postfix-radius.row.collapse textarea,
+form .row .postfix-radius.row.collapse select {
+ border-radius: 0;
+ -webkit-border-bottom-left-radius: 3px;
+ -webkit-border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px; }
+form .row .postfix-radius.row.collapse .postfix {
+ border-radius: 0;
+ -webkit-border-bottom-right-radius: 3px;
+ -webkit-border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px; }
+form .row .prefix-round.row.collapse input,
+form .row .prefix-round.row.collapse textarea,
+form .row .prefix-round.row.collapse select {
+ border-radius: 0;
+ -webkit-border-bottom-right-radius: 1000px;
+ -webkit-border-top-right-radius: 1000px;
+ border-bottom-right-radius: 1000px;
+ border-top-right-radius: 1000px; }
+form .row .prefix-round.row.collapse .prefix {
+ border-radius: 0;
+ -webkit-border-bottom-left-radius: 1000px;
+ -webkit-border-top-left-radius: 1000px;
+ border-bottom-left-radius: 1000px;
+ border-top-left-radius: 1000px; }
+form .row .postfix-round.row.collapse input,
+form .row .postfix-round.row.collapse textarea,
+form .row .postfix-round.row.collapse select {
+ border-radius: 0;
+ -webkit-border-bottom-left-radius: 1000px;
+ -webkit-border-top-left-radius: 1000px;
+ border-bottom-left-radius: 1000px;
+ border-top-left-radius: 1000px; }
+form .row .postfix-round.row.collapse .postfix {
+ border-radius: 0;
+ -webkit-border-bottom-right-radius: 1000px;
+ -webkit-border-top-right-radius: 1000px;
+ border-bottom-right-radius: 1000px;
+ border-top-right-radius: 1000px; }
+
+input[type="submit"] {
+ -webkit-appearance: none;
+ -webkit-border-radius: 0px; }
+
+/* Respect enforced amount of rows for textarea */
+textarea[rows] {
+ height: auto; }
+
+/* Not allow resize out of parent */
+textarea {
+ max-width: 100%; }
+
+/* Add height value for select elements to match text input height */
+select {
+ -webkit-appearance: none !important;
+ -webkit-border-radius: 0px;
+ background-color: #fafafa;
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
+ background-position: 100% center;
+ background-repeat: no-repeat;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #cccccc;
+ padding: 0.5rem;
+ font-size: 0.875rem;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ color: rgba(0, 0, 0, 0.75);
+ line-height: normal;
+ border-radius: 0;
+ height: 2.3125rem; }
+ select::-ms-expand {
+ display: none; }
+ select.radius {
+ border-radius: 3px; }
+ select:hover {
+ background-color: #f3f3f3;
+ border-color: #999999; }
+ select:disabled {
+ background-color: #dddddd;
+ cursor: default; }
+
+/* Adjust margin for form elements below */
+input[type="file"],
+input[type="checkbox"],
+input[type="radio"],
+select {
+ margin: 0 0 1rem 0; }
+
+input[type="checkbox"] + label,
+input[type="radio"] + label {
+ display: inline-block;
+ margin-left: 0.5rem;
+ margin-right: 1rem;
+ margin-bottom: 0;
+ vertical-align: baseline; }
+
+/* Normalize file input width */
+input[type="file"] {
+ width: 100%; }
+
+/* HTML5 Number spinners settings */
+/* We add basic fieldset styling */
+fieldset {
+ border: 1px solid #dddddd;
+ padding: 1.25rem;
+ margin: 1.125rem 0; }
+ fieldset legend {
+ font-weight: bold;
+ background: white;
+ padding: 0 0.1875rem;
+ margin: 0;
+ margin-left: -0.1875rem; }
+
+/* Error Handling */
+[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
+ display: block;
+ padding: 0.375rem 0.5625rem 0.5625rem;
+ margin-top: -1px;
+ margin-bottom: 1rem;
+ font-size: 0.75rem;
+ font-weight: normal;
+ font-style: italic;
+ background: #f04124;
+ color: white; }
+[data-abide] span.error, [data-abide] small.error {
+ display: none; }
+
+span.error, small.error {
+ display: block;
+ padding: 0.375rem 0.5625rem 0.5625rem;
+ margin-top: -1px;
+ margin-bottom: 1rem;
+ font-size: 0.75rem;
+ font-weight: normal;
+ font-style: italic;
+ background: #f04124;
+ color: white; }
+
+.error input,
+.error textarea,
+.error select {
+ margin-bottom: 0; }
+.error input[type="checkbox"],
+.error input[type="radio"] {
+ margin-bottom: 1rem; }
+.error label,
+.error label.error {
+ color: #f04124; }
+.error small.error {
+ display: block;
+ padding: 0.375rem 0.5625rem 0.5625rem;
+ margin-top: -1px;
+ margin-bottom: 1rem;
+ font-size: 0.75rem;
+ font-weight: normal;
+ font-style: italic;
+ background: #f04124;
+ color: white; }
+.error > label > small {
+ color: #676767;
+ background: transparent;
+ padding: 0;
+ text-transform: capitalize;
+ font-style: normal;
+ font-size: 60%;
+ margin: 0;
+ display: inline; }
+.error span.error-message {
+ display: block; }
+
+input.error,
+textarea.error,
+select.error {
+ margin-bottom: 0; }
+
+label.error {
+ color: #f04124; }
+
+meta.foundation-mq-topbar {
+ font-family: "/only screen and (min-width:40.063em)/";
+ width: 40.063em; }
+
+/* Wrapped around .top-bar to contain to grid width */
+.contain-to-grid {
+ width: 100%;
+ background: #333333; }
+ .contain-to-grid .top-bar {
+ margin-bottom: 0; }
+
+.fixed {
+ width: 100%;
+ left: 0;
+ position: fixed;
+ top: 0;
+ z-index: 99; }
+ .fixed.expanded:not(.top-bar) {
+ overflow-y: auto;
+ height: auto;
+ width: 100%;
+ max-height: 100%; }
+ .fixed.expanded:not(.top-bar) .title-area {
+ position: fixed;
+ width: 100%;
+ z-index: 99; }
+ .fixed.expanded:not(.top-bar) .top-bar-section {
+ z-index: 98;
+ margin-top: 45px; }
+
+.top-bar {
+ overflow: hidden;
+ height: 45px;
+ line-height: 45px;
+ position: relative;
+ background: #333333;
+ margin-bottom: 0; }
+ .top-bar ul {
+ margin-bottom: 0;
+ list-style: none; }
+ .top-bar .row {
+ max-width: none; }
+ .top-bar form,
+ .top-bar input {
+ margin-bottom: 0; }
+ .top-bar input {
+ height: 1.8rem;
+ padding-top: .35rem;
+ padding-bottom: .35rem;
+ font-size: 0.75rem; }
+ .top-bar .button, .top-bar button {
+ padding-top: 0.4125rem;
+ padding-bottom: 0.4125rem;
+ margin-bottom: 0;
+ font-size: 0.75rem; }
+ @media only screen and (max-width: 40em) {
+ .top-bar .button, .top-bar button {
+ position: relative;
+ top: -1px; } }
+ .top-bar .title-area {
+ position: relative;
+ margin: 0; }
+ .top-bar .name {
+ height: 45px;
+ margin: 0;
+ font-size: 16px; }
+ .top-bar .name h1 {
+ line-height: 45px;
+ font-size: 1.0625rem;
+ margin: 0; }
+ .top-bar .name h1 a {
+ font-weight: normal;
+ color: white;
+ width: 75%;
+ display: block;
+ padding: 0 15px; }
+ .top-bar .toggle-topbar {
+ position: absolute;
+ right: 0;
+ top: 0; }
+ .top-bar .toggle-topbar a {
+ color: white;
+ text-transform: uppercase;
+ font-size: 0.8125rem;
+ font-weight: bold;
+ position: relative;
+ display: block;
+ padding: 0 15px;
+ height: 45px;
+ line-height: 45px; }
+ .top-bar .toggle-topbar.menu-icon {
+ top: 50%;
+ margin-top: -16px; }
+ .top-bar .toggle-topbar.menu-icon a {
+ height: 34px;
+ line-height: 33px;
+ padding: 0 40px 0 15px;
+ color: white;
+ position: relative; }
+ .top-bar .toggle-topbar.menu-icon a span::after {
+ content: "";
+ position: absolute;
+ display: block;
+ height: 0;
+ top: 50%;
+ margin-top: -8px;
+ right: 15px;
+ box-shadow: 0 0px 0 1px white, 0 7px 0 1px white, 0 14px 0 1px white;
+ width: 16px; }
+ .top-bar .toggle-topbar.menu-icon a span:hover:after {
+ box-shadow: 0 0px 0 1px "", 0 7px 0 1px "", 0 14px 0 1px ""; }
+ .top-bar.expanded {
+ height: auto;
+ background: transparent; }
+ .top-bar.expanded .title-area {
+ background: #333333; }
+ .top-bar.expanded .toggle-topbar a {
+ color: #888888; }
+ .top-bar.expanded .toggle-topbar a span::after {
+ box-shadow: 0 0px 0 1px #888888, 0 7px 0 1px #888888, 0 14px 0 1px #888888; }
+
+.top-bar-section {
+ left: 0;
+ position: relative;
+ width: auto;
+ transition: left 300ms ease-out; }
+ .top-bar-section ul {
+ padding: 0;
+ width: 100%;
+ height: auto;
+ display: block;
+ font-size: 16px;
+ margin: 0; }
+ .top-bar-section .divider,
+ .top-bar-section [role="separator"] {
+ border-top: solid 1px #1a1a1a;
+ clear: both;
+ height: 1px;
+ width: 100%; }
+ .top-bar-section ul li {
+ background: #333333; }
+ .top-bar-section ul li > a {
+ display: block;
+ width: 100%;
+ color: white;
+ padding: 12px 0 12px 0;
+ padding-left: 15px;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ font-size: 0.8125rem;
+ font-weight: normal;
+ text-transform: none; }
+ .top-bar-section ul li > a.button {
+ font-size: 0.8125rem;
+ padding-right: 15px;
+ padding-left: 15px;
+ background-color: #008cba;
+ border-color: #007095;
+ color: white; }
+ .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
+ background-color: #007095; }
+ .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
+ color: white; }
+ .top-bar-section ul li > a.button.secondary {
+ background-color: #e7e7e7;
+ border-color: #b9b9b9;
+ color: #333333; }
+ .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
+ background-color: #b9b9b9; }
+ .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
+ color: #333333; }
+ .top-bar-section ul li > a.button.success {
+ background-color: #43ac6a;
+ border-color: #368a55;
+ color: white; }
+ .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
+ background-color: #368a55; }
+ .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
+ color: white; }
+ .top-bar-section ul li > a.button.alert {
+ background-color: #f04124;
+ border-color: #cf2a0e;
+ color: white; }
+ .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
+ background-color: #cf2a0e; }
+ .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
+ color: white; }
+ .top-bar-section ul li > a.button.warning {
+ background-color: #f08a24;
+ border-color: #cf6e0e;
+ color: white; }
+ .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
+ background-color: #cf6e0e; }
+ .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
+ color: white; }
+ .top-bar-section ul li > button {
+ font-size: 0.8125rem;
+ padding-right: 15px;
+ padding-left: 15px;
+ background-color: #008cba;
+ border-color: #007095;
+ color: white; }
+ .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
+ background-color: #007095; }
+ .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
+ color: white; }
+ .top-bar-section ul li > button.secondary {
+ background-color: #e7e7e7;
+ border-color: #b9b9b9;
+ color: #333333; }
+ .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
+ background-color: #b9b9b9; }
+ .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
+ color: #333333; }
+ .top-bar-section ul li > button.success {
+ background-color: #43ac6a;
+ border-color: #368a55;
+ color: white; }
+ .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
+ background-color: #368a55; }
+ .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
+ color: white; }
+ .top-bar-section ul li > button.alert {
+ background-color: #f04124;
+ border-color: #cf2a0e;
+ color: white; }
+ .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
+ background-color: #cf2a0e; }
+ .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
+ color: white; }
+ .top-bar-section ul li > button.warning {
+ background-color: #f08a24;
+ border-color: #cf6e0e;
+ color: white; }
+ .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
+ background-color: #cf6e0e; }
+ .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
+ color: white; }
+ .top-bar-section ul li:hover:not(.has-form) > a {
+ background-color: #555555;
+ background: #272727;
+ color: white; }
+ .top-bar-section ul li.active > a {
+ background: #008cba;
+ color: white; }
+ .top-bar-section ul li.active > a:hover {
+ background: #0078a0;
+ color: white; }
+ .top-bar-section .has-form {
+ padding: 15px; }
+ .top-bar-section .has-dropdown {
+ position: relative; }
+ .top-bar-section .has-dropdown > a:after {
+ content: "";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: transparent transparent transparent rgba(255, 255, 255, 0.4);
+ border-left-style: solid;
+ margin-right: 15px;
+ margin-top: -4.5px;
+ position: absolute;
+ top: 50%;
+ right: 0; }
+ .top-bar-section .has-dropdown.moved {
+ position: static; }
+ .top-bar-section .has-dropdown.moved > .dropdown {
+ display: block;
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto;
+ position: absolute !important;
+ width: 100%; }
+ .top-bar-section .has-dropdown.moved > a:after {
+ display: none; }
+ .top-bar-section .dropdown {
+ padding: 0;
+ position: absolute;
+ left: 100%;
+ top: 0;
+ z-index: 99;
+ display: block;
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px, 1px, 1px, 1px); }
+ .top-bar-section .dropdown li {
+ width: 100%;
+ height: auto; }
+ .top-bar-section .dropdown li a {
+ font-weight: normal;
+ padding: 8px 15px; }
+ .top-bar-section .dropdown li a.parent-link {
+ font-weight: normal; }
+ .top-bar-section .dropdown li.title h5, .top-bar-section .dropdown li.parent-link {
+ margin-bottom: 0;
+ margin-top: 0;
+ font-size: 1.125rem; }
+ .top-bar-section .dropdown li.title h5 a, .top-bar-section .dropdown li.parent-link a {
+ color: white;
+ display: block; }
+ .top-bar-section .dropdown li.title h5 a:hover, .top-bar-section .dropdown li.parent-link a:hover {
+ background: none; }
+ .top-bar-section .dropdown li.has-form {
+ padding: 8px 15px; }
+ .top-bar-section .dropdown li .button, .top-bar-section .dropdown li button {
+ top: auto; }
+ .top-bar-section .dropdown label {
+ padding: 8px 15px 2px;
+ margin-bottom: 0;
+ text-transform: uppercase;
+ color: #777777;
+ font-weight: bold;
+ font-size: 0.625rem; }
+
+.js-generated {
+ display: block; }
+
+@media only screen and (min-width: 40.063em) {
+ .top-bar {
+ background: #333333;
+ overflow: visible; }
+ .top-bar:before, .top-bar:after {
+ content: " ";
+ display: table; }
+ .top-bar:after {
+ clear: both; }
+ .top-bar .toggle-topbar {
+ display: none; }
+ .top-bar .title-area {
+ float: left; }
+ .top-bar .name h1 a {
+ width: auto; }
+ .top-bar input,
+ .top-bar .button,
+ .top-bar button {
+ font-size: 0.875rem;
+ position: relative;
+ top: 7px; }
+ .top-bar.expanded {
+ background: #333333; }
+
+ .contain-to-grid .top-bar {
+ max-width: 62.5rem;
+ margin: 0 auto;
+ margin-bottom: 0; }
+
+ .top-bar-section {
+ transition: none 0 0;
+ left: 0 !important; }
+ .top-bar-section ul {
+ width: auto;
+ height: auto !important;
+ display: inline; }
+ .top-bar-section ul li {
+ float: left; }
+ .top-bar-section ul li .js-generated {
+ display: none; }
+ .top-bar-section li.hover > a:not(.button) {
+ background-color: #555555;
+ background: #272727;
+ color: white; }
+ .top-bar-section li:not(.has-form) a:not(.button) {
+ padding: 0 15px;
+ line-height: 45px;
+ background: #333333; }
+ .top-bar-section li:not(.has-form) a:not(.button):hover {
+ background-color: #555555;
+ background: #272727; }
+ .top-bar-section li.active:not(.has-form) a:not(.button) {
+ padding: 0 15px;
+ line-height: 45px;
+ color: white;
+ background: #008cba; }
+ .top-bar-section li.active:not(.has-form) a:not(.button):hover {
+ background: #0078a0;
+ color: white; }
+ .top-bar-section .has-dropdown > a {
+ padding-right: 35px !important; }
+ .top-bar-section .has-dropdown > a:after {
+ content: "";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: rgba(255, 255, 255, 0.4) transparent transparent transparent;
+ border-top-style: solid;
+ margin-top: -2.5px;
+ top: 22.5px; }
+ .top-bar-section .has-dropdown.moved {
+ position: relative; }
+ .top-bar-section .has-dropdown.moved > .dropdown {
+ display: block;
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px, 1px, 1px, 1px); }
+ .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown {
+ display: block;
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto;
+ position: absolute !important; }
+ .top-bar-section .has-dropdown > a:focus + .dropdown {
+ display: block;
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto;
+ position: absolute !important; }
+ .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after {
+ border: none;
+ content: "\00bb";
+ top: 1rem;
+ margin-top: -1px;
+ right: 5px;
+ line-height: 1.2; }
+ .top-bar-section .dropdown {
+ left: 0;
+ top: auto;
+ background: transparent;
+ min-width: 100%; }
+ .top-bar-section .dropdown li a {
+ color: white;
+ line-height: 45px;
+ white-space: nowrap;
+ padding: 12px 15px;
+ background: #333333; }
+ .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
+ color: white;
+ background: #333333; }
+ .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) {
+ color: white;
+ background-color: #555555;
+ background: #272727; }
+ .top-bar-section .dropdown li label {
+ white-space: nowrap;
+ background: #333333; }
+ .top-bar-section .dropdown li .dropdown {
+ left: 100%;
+ top: 0; }
+ .top-bar-section > ul > .divider, .top-bar-section > ul > [role="separator"] {
+ border-bottom: none;
+ border-top: none;
+ border-right: solid 1px #4e4e4e;
+ clear: none;
+ height: 45px;
+ width: 0; }
+ .top-bar-section .has-form {
+ background: #333333;
+ padding: 0 15px;
+ height: 45px; }
+ .top-bar-section .right li .dropdown {
+ left: auto;
+ right: 0; }
+ .top-bar-section .right li .dropdown li .dropdown {
+ right: 100%; }
+ .top-bar-section .left li .dropdown {
+ right: auto;
+ left: 0; }
+ .top-bar-section .left li .dropdown li .dropdown {
+ left: 100%; }
+
+ .no-js .top-bar-section ul li:hover > a {
+ background-color: #555555;
+ background: #272727;
+ color: white; }
+ .no-js .top-bar-section ul li:active > a {
+ background: #008cba;
+ color: white; }
+ .no-js .top-bar-section .has-dropdown:hover > .dropdown {
+ display: block;
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto;
+ position: absolute !important; }
+ .no-js .top-bar-section .has-dropdown > a:focus + .dropdown {
+ display: block;
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto;
+ position: absolute !important; } }
+.breadcrumbs {
+ display: block;
+ padding: 0.5625rem 0.875rem 0.5625rem;
+ overflow: hidden;
+ margin-left: 0;
+ list-style: none;
+ border-style: solid;
+ border-width: 1px;
+ background-color: #f4f4f4;
+ border-color: gainsboro;
+ border-radius: 3px; }
+ .breadcrumbs > * {
+ margin: 0;
+ float: left;
+ font-size: 0.6875rem;
+ line-height: 0.6875rem;
+ text-transform: uppercase;
+ color: #008cba; }
+ .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
+ text-decoration: underline; }
+ .breadcrumbs > * a {
+ color: #008cba; }
+ .breadcrumbs > *.current {
+ cursor: default;
+ color: #333333; }
+ .breadcrumbs > *.current a {
+ cursor: default;
+ color: #333333; }
+ .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a {
+ text-decoration: none; }
+ .breadcrumbs > *.unavailable {
+ color: #999999; }
+ .breadcrumbs > *.unavailable a {
+ color: #999999; }
+ .breadcrumbs > *.unavailable:hover, .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus,
+ .breadcrumbs > *.unavailable a:focus {
+ text-decoration: none;
+ color: #999999;
+ cursor: default; }
+ .breadcrumbs > *:before {
+ content: "/";
+ color: #aaaaaa;
+ margin: 0 0.75rem;
+ position: relative;
+ top: 1px; }
+ .breadcrumbs > *:first-child:before {
+ content: " ";
+ margin: 0; }
+
+/* Accessibility - hides the forward slash */
+[aria-label="breadcrumbs"] [aria-hidden="true"]:after {
+ content: "/"; }
+
+.alert-box {
+ border-style: solid;
+ border-width: 1px;
+ display: block;
+ font-weight: normal;
+ margin-bottom: 1.25rem;
+ position: relative;
+ padding: 0.875rem 1.5rem 0.875rem 0.875rem;
+ font-size: 0.8125rem;
+ transition: opacity 300ms ease-out;
+ background-color: #008cba;
+ border-color: #0078a0;
+ color: white; }
+ .alert-box .close {
+ font-size: 1.375rem;
+ padding: 9px 6px 4px;
+ line-height: 0;
+ position: absolute;
+ top: 50%;
+ margin-top: -0.6875rem;
+ right: 0.25rem;
+ color: #333333;
+ opacity: 0.3;
+ background: inherit; }
+ .alert-box .close:hover, .alert-box .close:focus {
+ opacity: 0.5; }
+ .alert-box.radius {
+ border-radius: 3px; }
+ .alert-box.round {
+ border-radius: 1000px; }
+ .alert-box.success {
+ background-color: #43ac6a;
+ border-color: #3a945b;
+ color: white; }
+ .alert-box.alert {
+ background-color: #f04124;
+ border-color: #de2d0f;
+ color: white; }
+ .alert-box.secondary {
+ background-color: #e7e7e7;
+ border-color: #c7c7c7;
+ color: #4f4f4f; }
+ .alert-box.warning {
+ background-color: #f08a24;
+ border-color: #de770f;
+ color: white; }
+ .alert-box.info {
+ background-color: #a0d3e8;
+ border-color: #74bfdd;
+ color: #4f4f4f; }
+ .alert-box.alert-close {
+ opacity: 0; }
+
+.inline-list {
+ margin: 0 auto 1.0625rem auto;
+ margin-left: -1.375rem;
+ margin-right: 0;
+ padding: 0;
+ list-style: none;
+ overflow: hidden; }
+ .inline-list > li {
+ list-style: none;
+ float: left;
+ margin-left: 1.375rem;
+ display: block; }
+ .inline-list > li > * {
+ display: block; }
+
+.button-group {
+ list-style: none;
+ margin: 0;
+ left: 0; }
+ .button-group:before, .button-group:after {
+ content: " ";
+ display: table; }
+ .button-group:after {
+ clear: both; }
+ .button-group > li {
+ margin: 0 -2px;
+ display: inline-block; }
+ .button-group > li > button, .button-group > li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group > li:first-child button, .button-group > li:first-child .button {
+ border-left: 0; }
+ .button-group.stack > li {
+ margin: 0 -2px;
+ display: inline-block;
+ display: block;
+ margin: 0;
+ float: none; }
+ .button-group.stack > li > button, .button-group.stack > li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
+ border-left: 0; }
+ .button-group.stack > li > button, .button-group.stack > li .button {
+ border-top: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5);
+ border-left-width: 0px;
+ margin: 0;
+ display: block; }
+ .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
+ border-top: 0; }
+ .button-group.stack-for-small > li {
+ margin: 0 -2px;
+ display: inline-block; }
+ .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
+ border-left: 0; }
+ @media only screen and (max-width: 40em) {
+ .button-group.stack-for-small > li {
+ margin: 0 -2px;
+ display: inline-block;
+ display: block;
+ margin: 0; }
+ .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
+ border-left: 0; }
+ .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
+ border-top: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5);
+ border-left-width: 0px;
+ margin: 0;
+ display: block; }
+ .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
+ border-top: 0; } }
+ .button-group.radius > * {
+ margin: 0 -2px;
+ display: inline-block; }
+ .button-group.radius > * > button, .button-group.radius > * .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.radius > *:first-child button, .button-group.radius > *:first-child .button {
+ border-left: 0; }
+ .button-group.radius > *, .button-group.radius > * > a, .button-group.radius > * > button, .button-group.radius > * > .button {
+ border-radius: 0; }
+ .button-group.radius > *:first-child, .button-group.radius > *:first-child > a, .button-group.radius > *:first-child > button, .button-group.radius > *:first-child > .button {
+ -webkit-border-bottom-left-radius: 3px;
+ -webkit-border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px; }
+ .button-group.radius > *:last-child, .button-group.radius > *:last-child > a, .button-group.radius > *:last-child > button, .button-group.radius > *:last-child > .button {
+ -webkit-border-bottom-right-radius: 3px;
+ -webkit-border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px; }
+ .button-group.radius.stack > * {
+ margin: 0 -2px;
+ display: inline-block;
+ display: block;
+ margin: 0; }
+ .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
+ border-left: 0; }
+ .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
+ border-top: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5);
+ border-left-width: 0px;
+ margin: 0;
+ display: block; }
+ .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
+ border-top: 0; }
+ .button-group.radius.stack > *, .button-group.radius.stack > * > a, .button-group.radius.stack > * > button, .button-group.radius.stack > * > .button {
+ border-radius: 0; }
+ .button-group.radius.stack > *:first-child, .button-group.radius.stack > *:first-child > a, .button-group.radius.stack > *:first-child > button, .button-group.radius.stack > *:first-child > .button {
+ -webkit-top-left-radius: 3px;
+ -webkit-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px; }
+ .button-group.radius.stack > *:last-child, .button-group.radius.stack > *:last-child > a, .button-group.radius.stack > *:last-child > button, .button-group.radius.stack > *:last-child > .button {
+ -webkit-bottom-left-radius: 3px;
+ -webkit-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-bottom-right-radius: 3px; }
+ @media only screen and (min-width: 40.063em) {
+ .button-group.radius.stack-for-small > * {
+ margin: 0 -2px;
+ display: inline-block; }
+ .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
+ border-left: 0; }
+ .button-group.radius.stack-for-small > *, .button-group.radius.stack-for-small > * > a, .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * > .button {
+ border-radius: 0; }
+ .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button {
+ -webkit-border-bottom-left-radius: 3px;
+ -webkit-border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px; }
+ .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button {
+ -webkit-border-bottom-right-radius: 3px;
+ -webkit-border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px; } }
+ @media only screen and (max-width: 40em) {
+ .button-group.radius.stack-for-small > * {
+ margin: 0 -2px;
+ display: inline-block;
+ display: block;
+ margin: 0; }
+ .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
+ border-left: 0; }
+ .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
+ border-top: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5);
+ border-left-width: 0px;
+ margin: 0;
+ display: block; }
+ .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
+ border-top: 0; }
+ .button-group.radius.stack-for-small > *, .button-group.radius.stack-for-small > * > a, .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * > .button {
+ border-radius: 0; }
+ .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button {
+ -webkit-top-left-radius: 3px;
+ -webkit-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px; }
+ .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button {
+ -webkit-bottom-left-radius: 3px;
+ -webkit-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-bottom-right-radius: 3px; } }
+ .button-group.round > * {
+ margin: 0 -2px;
+ display: inline-block; }
+ .button-group.round > * > button, .button-group.round > * .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.round > *:first-child button, .button-group.round > *:first-child .button {
+ border-left: 0; }
+ .button-group.round > *, .button-group.round > * > a, .button-group.round > * > button, .button-group.round > * > .button {
+ border-radius: 0; }
+ .button-group.round > *:first-child, .button-group.round > *:first-child > a, .button-group.round > *:first-child > button, .button-group.round > *:first-child > .button {
+ -webkit-border-bottom-left-radius: 1000px;
+ -webkit-border-top-left-radius: 1000px;
+ border-bottom-left-radius: 1000px;
+ border-top-left-radius: 1000px; }
+ .button-group.round > *:last-child, .button-group.round > *:last-child > a, .button-group.round > *:last-child > button, .button-group.round > *:last-child > .button {
+ -webkit-border-bottom-right-radius: 1000px;
+ -webkit-border-top-right-radius: 1000px;
+ border-bottom-right-radius: 1000px;
+ border-top-right-radius: 1000px; }
+ .button-group.round.stack > * {
+ margin: 0 -2px;
+ display: inline-block;
+ display: block;
+ margin: 0; }
+ .button-group.round.stack > * > button, .button-group.round.stack > * .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
+ border-left: 0; }
+ .button-group.round.stack > * > button, .button-group.round.stack > * .button {
+ border-top: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5);
+ border-left-width: 0px;
+ margin: 0;
+ display: block; }
+ .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
+ border-top: 0; }
+ .button-group.round.stack > *, .button-group.round.stack > * > a, .button-group.round.stack > * > button, .button-group.round.stack > * > .button {
+ border-radius: 0; }
+ .button-group.round.stack > *:first-child, .button-group.round.stack > *:first-child > a, .button-group.round.stack > *:first-child > button, .button-group.round.stack > *:first-child > .button {
+ -webkit-top-left-radius: 1rem;
+ -webkit-top-right-radius: 1rem;
+ border-top-left-radius: 1rem;
+ border-top-right-radius: 1rem; }
+ .button-group.round.stack > *:last-child, .button-group.round.stack > *:last-child > a, .button-group.round.stack > *:last-child > button, .button-group.round.stack > *:last-child > .button {
+ -webkit-bottom-left-radius: 1rem;
+ -webkit-bottom-right-radius: 1rem;
+ border-bottom-left-radius: 1rem;
+ border-bottom-right-radius: 1rem; }
+ @media only screen and (min-width: 40.063em) {
+ .button-group.round.stack-for-small > * {
+ margin: 0 -2px;
+ display: inline-block; }
+ .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
+ border-left: 0; }
+ .button-group.round.stack-for-small > *, .button-group.round.stack-for-small > * > a, .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * > .button {
+ border-radius: 0; }
+ .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button {
+ -webkit-border-bottom-left-radius: 1000px;
+ -webkit-border-top-left-radius: 1000px;
+ border-bottom-left-radius: 1000px;
+ border-top-left-radius: 1000px; }
+ .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button {
+ -webkit-border-bottom-right-radius: 1000px;
+ -webkit-border-top-right-radius: 1000px;
+ border-bottom-right-radius: 1000px;
+ border-top-right-radius: 1000px; } }
+ @media only screen and (max-width: 40em) {
+ .button-group.round.stack-for-small > * {
+ margin: 0 -2px;
+ display: inline-block;
+ display: block;
+ margin: 0; }
+ .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
+ border-left: 0; }
+ .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
+ border-top: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5);
+ border-left-width: 0px;
+ margin: 0;
+ display: block; }
+ .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
+ border-top: 0; }
+ .button-group.round.stack-for-small > *, .button-group.round.stack-for-small > * > a, .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * > .button {
+ border-radius: 0; }
+ .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button {
+ -webkit-top-left-radius: 1rem;
+ -webkit-top-right-radius: 1rem;
+ border-top-left-radius: 1rem;
+ border-top-right-radius: 1rem; }
+ .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button {
+ -webkit-bottom-left-radius: 1rem;
+ -webkit-bottom-right-radius: 1rem;
+ border-bottom-left-radius: 1rem;
+ border-bottom-right-radius: 1rem; } }
+ .button-group.even-2 li {
+ margin: 0 -2px;
+ display: inline-block;
+ width: 50%; }
+ .button-group.even-2 li > button, .button-group.even-2 li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button {
+ border-left: 0; }
+ .button-group.even-2 li button, .button-group.even-2 li .button {
+ width: 100%; }
+ .button-group.even-3 li {
+ margin: 0 -2px;
+ display: inline-block;
+ width: 33.33333%; }
+ .button-group.even-3 li > button, .button-group.even-3 li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button {
+ border-left: 0; }
+ .button-group.even-3 li button, .button-group.even-3 li .button {
+ width: 100%; }
+ .button-group.even-4 li {
+ margin: 0 -2px;
+ display: inline-block;
+ width: 25%; }
+ .button-group.even-4 li > button, .button-group.even-4 li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button {
+ border-left: 0; }
+ .button-group.even-4 li button, .button-group.even-4 li .button {
+ width: 100%; }
+ .button-group.even-5 li {
+ margin: 0 -2px;
+ display: inline-block;
+ width: 20%; }
+ .button-group.even-5 li > button, .button-group.even-5 li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button {
+ border-left: 0; }
+ .button-group.even-5 li button, .button-group.even-5 li .button {
+ width: 100%; }
+ .button-group.even-6 li {
+ margin: 0 -2px;
+ display: inline-block;
+ width: 16.66667%; }
+ .button-group.even-6 li > button, .button-group.even-6 li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button {
+ border-left: 0; }
+ .button-group.even-6 li button, .button-group.even-6 li .button {
+ width: 100%; }
+ .button-group.even-7 li {
+ margin: 0 -2px;
+ display: inline-block;
+ width: 14.28571%; }
+ .button-group.even-7 li > button, .button-group.even-7 li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button {
+ border-left: 0; }
+ .button-group.even-7 li button, .button-group.even-7 li .button {
+ width: 100%; }
+ .button-group.even-8 li {
+ margin: 0 -2px;
+ display: inline-block;
+ width: 12.5%; }
+ .button-group.even-8 li > button, .button-group.even-8 li .button {
+ border-left: 1px solid;
+ border-color: rgba(255, 255, 255, 0.5); }
+ .button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button {
+ border-left: 0; }
+ .button-group.even-8 li button, .button-group.even-8 li .button {
+ width: 100%; }
+
+.button-bar:before, .button-bar:after {
+ content: " ";
+ display: table; }
+.button-bar:after {
+ clear: both; }
+.button-bar .button-group {
+ float: left;
+ margin-right: 0.625rem; }
+ .button-bar .button-group div {
+ overflow: hidden; }
+
+/* Panels */
+.panel {
+ border-style: solid;
+ border-width: 1px;
+ border-color: #d8d8d8;
+ margin-bottom: 1.25rem;
+ padding: 1.25rem;
+ background: #f2f2f2;
+ color: #333333; }
+ .panel > :first-child {
+ margin-top: 0; }
+ .panel > :last-child {
+ margin-bottom: 0; }
+ .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6, .panel p, .panel li, .panel dl {
+ color: #333333; }
+ .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 {
+ line-height: 1;
+ margin-bottom: 0.625rem; }
+ .panel h1.subheader, .panel h2.subheader, .panel h3.subheader, .panel h4.subheader, .panel h5.subheader, .panel h6.subheader {
+ line-height: 1.4; }
+ .panel.callout {
+ border-style: solid;
+ border-width: 1px;
+ border-color: #b6edff;
+ margin-bottom: 1.25rem;
+ padding: 1.25rem;
+ background: #ecfaff;
+ color: #333333; }
+ .panel.callout > :first-child {
+ margin-top: 0; }
+ .panel.callout > :last-child {
+ margin-bottom: 0; }
+ .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6, .panel.callout p, .panel.callout li, .panel.callout dl {
+ color: #333333; }
+ .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6 {
+ line-height: 1;
+ margin-bottom: 0.625rem; }
+ .panel.callout h1.subheader, .panel.callout h2.subheader, .panel.callout h3.subheader, .panel.callout h4.subheader, .panel.callout h5.subheader, .panel.callout h6.subheader {
+ line-height: 1.4; }
+ .panel.callout a:not(.button) {
+ color: #008cba; }
+ .panel.radius {
+ border-radius: 3px; }
+
+.dropdown.button, button.dropdown {
+ position: relative;
+ outline: none;
+ padding-right: 3.5625rem; }
+ .dropdown.button::after, button.dropdown::after {
+ position: absolute;
+ content: "";
+ width: 0;
+ height: 0;
+ display: block;
+ border-style: solid;
+ border-color: white transparent transparent transparent;
+ top: 50%; }
+ .dropdown.button::after, button.dropdown::after {
+ border-width: 0.375rem;
+ right: 1.40625rem;
+ margin-top: -0.15625rem; }
+ .dropdown.button::after, button.dropdown::after {
+ border-color: white transparent transparent transparent; }
+ .dropdown.button.tiny, button.dropdown.tiny {
+ padding-right: 2.625rem; }
+ .dropdown.button.tiny:after, button.dropdown.tiny:after {
+ border-width: 0.375rem;
+ right: 1.125rem;
+ margin-top: -0.125rem; }
+ .dropdown.button.tiny::after, button.dropdown.tiny::after {
+ border-color: white transparent transparent transparent; }
+ .dropdown.button.small, button.dropdown.small {
+ padding-right: 3.0625rem; }
+ .dropdown.button.small::after, button.dropdown.small::after {
+ border-width: 0.4375rem;
+ right: 1.3125rem;
+ margin-top: -0.15625rem; }
+ .dropdown.button.small::after, button.dropdown.small::after {
+ border-color: white transparent transparent transparent; }
+ .dropdown.button.large, button.dropdown.large {
+ padding-right: 3.625rem; }
+ .dropdown.button.large::after, button.dropdown.large::after {
+ border-width: 0.3125rem;
+ right: 1.71875rem;
+ margin-top: -0.15625rem; }
+ .dropdown.button.large::after, button.dropdown.large::after {
+ border-color: white transparent transparent transparent; }
+ .dropdown.button.secondary:after, button.dropdown.secondary:after {
+ border-color: #333333 transparent transparent transparent; }
+
+/* Image Thumbnails */
+.th {
+ line-height: 0;
+ display: inline-block;
+ border: solid 4px white;
+ max-width: 100%;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
+ transition: all 200ms ease-out; }
+ .th:hover, .th:focus {
+ box-shadow: 0 0 6px 1px rgba(0, 140, 186, 0.5); }
+ .th.radius {
+ border-radius: 3px; }
+
+.toolbar {
+ background: #333333;
+ width: 100%;
+ font-size: 0;
+ display: inline-block; }
+ .toolbar.label-bottom .tab .tab-content i, .toolbar.label-bottom .tab .tab-content img {
+ margin-bottom: 10px; }
+ .toolbar.label-right .tab .tab-content i, .toolbar.label-right .tab .tab-content img {
+ margin-right: 10px;
+ display: inline-block; }
+ .toolbar.label-right .tab .tab-content label {
+ display: inline-block; }
+ .toolbar.vertical.label-right .tab .tab-content {
+ text-align: left; }
+ .toolbar.vertical {
+ height: 100%;
+ width: auto; }
+ .toolbar.vertical .tab {
+ width: auto;
+ margin: auto;
+ float: none; }
+ .toolbar .tab {
+ text-align: center;
+ width: 25%;
+ margin: 0 auto;
+ display: block;
+ padding: 20px;
+ float: left; }
+ .toolbar .tab:hover {
+ background: rgba(255, 255, 255, 0.1); }
+
+.toolbar .tab-content {
+ font-size: 16px;
+ text-align: center; }
+ .toolbar .tab-content label {
+ color: #cccccc; }
+ .toolbar .tab-content i {
+ font-size: 30px;
+ display: block;
+ margin: 0 auto;
+ color: #cccccc;
+ vertical-align: middle; }
+ .toolbar .tab-content img {
+ width: 30px;
+ height: 30px;
+ display: block;
+ margin: 0 auto; }
+
+/* Pricing Tables */
+.pricing-table {
+ border: solid 1px #dddddd;
+ margin-left: 0;
+ margin-bottom: 1.25rem; }
+ .pricing-table * {
+ list-style: none;
+ line-height: 1; }
+ .pricing-table .title {
+ background-color: #333333;
+ padding: 0.9375rem 1.25rem;
+ text-align: center;
+ color: #eeeeee;
+ font-weight: normal;
+ font-size: 1rem;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; }
+ .pricing-table .price {
+ background-color: #f6f6f6;
+ padding: 0.9375rem 1.25rem;
+ text-align: center;
+ color: #333333;
+ font-weight: normal;
+ font-size: 2rem;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; }
+ .pricing-table .description {
+ background-color: white;
+ padding: 0.9375rem;
+ text-align: center;
+ color: #777777;
+ font-size: 0.75rem;
+ font-weight: normal;
+ line-height: 1.4;
+ border-bottom: dotted 1px #dddddd; }
+ .pricing-table .bullet-item {
+ background-color: white;
+ padding: 0.9375rem;
+ text-align: center;
+ color: #333333;
+ font-size: 0.875rem;
+ font-weight: normal;
+ border-bottom: dotted 1px #dddddd; }
+ .pricing-table .cta-button {
+ background-color: white;
+ text-align: center;
+ padding: 1.25rem 1.25rem 0; }
+
+@-webkit-keyframes rotate {
+ from {
+ -webkit-transform: rotate(0deg); }
+
+ to {
+ -webkit-transform: rotate(360deg); } }
+
+@-moz-keyframes rotate {
+ from {
+ -moz-transform: rotate(0deg); }
+
+ to {
+ -moz-transform: rotate(360deg); } }
+
+@-o-keyframes rotate {
+ from {
+ -o-transform: rotate(0deg); }
+
+ to {
+ -o-transform: rotate(360deg); } }
+
+@keyframes rotate {
+ from {
+ transform: rotate(0deg); }
+
+ to {
+ transform: rotate(360deg); } }
+
+/* Orbit Graceful Loading */
+.slideshow-wrapper {
+ position: relative; }
+ .slideshow-wrapper ul {
+ list-style-type: none;
+ margin: 0; }
+ .slideshow-wrapper ul li,
+ .slideshow-wrapper ul li .orbit-caption {
+ display: none; }
+ .slideshow-wrapper ul li:first-child {
+ display: block; }
+ .slideshow-wrapper .orbit-container {
+ background-color: transparent; }
+ .slideshow-wrapper .orbit-container li {
+ display: block; }
+ .slideshow-wrapper .orbit-container li .orbit-caption {
+ display: block; }
+ .slideshow-wrapper .orbit-container .orbit-bullets li {
+ display: inline-block; }
+ .slideshow-wrapper .preloader {
+ display: block;
+ width: 40px;
+ height: 40px;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin-top: -20px;
+ margin-left: -20px;
+ border: solid 3px;
+ border-color: #555555 white;
+ border-radius: 1000px;
+ animation-name: rotate;
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-timing-function: linear; }
+
+.orbit-container {
+ overflow: hidden;
+ width: 100%;
+ position: relative;
+ background: none; }
+ .orbit-container .orbit-slides-container {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ position: relative;
+ -webkit-transform: translateZ(0); }
+ .orbit-container .orbit-slides-container img {
+ display: block;
+ max-width: 100%; }
+ .orbit-container .orbit-slides-container > * {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ margin-left: 100%; }
+ .orbit-container .orbit-slides-container > *:first-child {
+ margin-left: 0%; }
+ .orbit-container .orbit-slides-container > * .orbit-caption {
+ position: absolute;
+ bottom: 0;
+ background-color: rgba(51, 51, 51, 0.8);
+ color: white;
+ width: 100%;
+ padding: 0.625rem 0.875rem;
+ font-size: 0.875rem; }
+ .orbit-container .orbit-slide-number {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ font-size: 12px;
+ color: white;
+ background: rgba(0, 0, 0, 0);
+ z-index: 10; }
+ .orbit-container .orbit-slide-number span {
+ font-weight: 700;
+ padding: 0.3125rem; }
+ .orbit-container .orbit-timer {
+ position: absolute;
+ top: 12px;
+ right: 10px;
+ height: 6px;
+ width: 100px;
+ z-index: 10; }
+ .orbit-container .orbit-timer .orbit-progress {
+ height: 3px;
+ background-color: rgba(255, 255, 255, 0.3);
+ display: block;
+ width: 0%;
+ position: relative;
+ right: 20px;
+ top: 5px; }
+ .orbit-container .orbit-timer > span {
+ display: none;
+ position: absolute;
+ top: 0px;
+ right: 0;
+ width: 11px;
+ height: 14px;
+ border: solid 4px white;
+ border-top: none;
+ border-bottom: none; }
+ .orbit-container .orbit-timer.paused > span {
+ right: -4px;
+ top: 0px;
+ width: 11px;
+ height: 14px;
+ border: inset 8px;
+ border-left-style: solid;
+ border-color: transparent;
+ border-left-color: white; }
+ .orbit-container .orbit-timer.paused > span.dark {
+ border-left-color: #333333; }
+ .orbit-container:hover .orbit-timer > span {
+ display: block; }
+ .orbit-container .orbit-prev,
+ .orbit-container .orbit-next {
+ position: absolute;
+ top: 45%;
+ margin-top: -25px;
+ width: 36px;
+ height: 60px;
+ line-height: 50px;
+ color: white;
+ background-color: transparent;
+ text-indent: -9999px !important;
+ z-index: 10; }
+ .orbit-container .orbit-prev:hover,
+ .orbit-container .orbit-next:hover {
+ background-color: rgba(0, 0, 0, 0.3); }
+ .orbit-container .orbit-prev > span,
+ .orbit-container .orbit-next > span {
+ position: absolute;
+ top: 50%;
+ margin-top: -10px;
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 10px; }
+ .orbit-container .orbit-prev {
+ left: 0; }
+ .orbit-container .orbit-prev > span {
+ border-right-style: solid;
+ border-color: transparent;
+ border-right-color: white; }
+ .orbit-container .orbit-prev:hover > span {
+ border-right-color: white; }
+ .orbit-container .orbit-next {
+ right: 0; }
+ .orbit-container .orbit-next > span {
+ border-color: transparent;
+ border-left-style: solid;
+ border-left-color: white;
+ left: 50%;
+ margin-left: -4px; }
+ .orbit-container .orbit-next:hover > span {
+ border-left-color: white; }
+
+.orbit-bullets-container {
+ text-align: center; }
+
+.orbit-bullets {
+ margin: 0 auto 30px auto;
+ overflow: hidden;
+ position: relative;
+ top: 10px;
+ float: none;
+ text-align: center;
+ display: block; }
+ .orbit-bullets li {
+ cursor: pointer;
+ display: inline-block;
+ width: 0.5625rem;
+ height: 0.5625rem;
+ background: #cccccc;
+ float: none;
+ margin-right: 6px;
+ border-radius: 1000px; }
+ .orbit-bullets li.active {
+ background: #999999; }
+ .orbit-bullets li:last-child {
+ margin-right: 0; }
+
+.touch .orbit-container .orbit-prev,
+.touch .orbit-container .orbit-next {
+ display: none; }
+.touch .orbit-bullets {
+ display: none; }
+
+@media only screen and (min-width: 40.063em) {
+ .touch .orbit-container .orbit-prev,
+ .touch .orbit-container .orbit-next {
+ display: inherit; }
+ .touch .orbit-bullets {
+ display: block; } }
+@media only screen and (max-width: 40em) {
+ .orbit-stack-on-small .orbit-slides-container {
+ height: auto !important; }
+ .orbit-stack-on-small .orbit-slides-container > * {
+ position: relative;
+ margin: 0% !important;
+ opacity: 1 !important; }
+ .orbit-stack-on-small .orbit-slide-number {
+ display: none; }
+
+ .orbit-timer {
+ display: none; }
+
+ .orbit-next, .orbit-prev {
+ display: none; }
+
+ .orbit-bullets {
+ display: none; } }
+[data-magellan-expedition], [data-magellan-expedition-clone] {
+ background: white;
+ z-index: 50;
+ min-width: 100%;
+ padding: 10px; }
+ [data-magellan-expedition] .sub-nav, [data-magellan-expedition-clone] .sub-nav {
+ margin-bottom: 0; }
+ [data-magellan-expedition] .sub-nav dd, [data-magellan-expedition-clone] .sub-nav dd {
+ margin-bottom: 0; }
+ [data-magellan-expedition] .sub-nav a, [data-magellan-expedition-clone] .sub-nav a {
+ line-height: 1.8em; }
+
+.icon-bar {
+ width: 100%;
+ font-size: 0;
+ display: inline-block;
+ background: #333333; }
+ .icon-bar > * {
+ text-align: center;
+ font-size: 1rem;
+ width: 25%;
+ margin: 0 auto;
+ display: block;
+ padding: 1.25rem;
+ float: left; }
+ .icon-bar > * i, .icon-bar > * img {
+ display: block;
+ margin: 0 auto; }
+ .icon-bar > * i + label, .icon-bar > * img + label {
+ margin-top: .0625rem; }
+ .icon-bar > * i {
+ font-size: 1.875rem;
+ vertical-align: middle; }
+ .icon-bar > * img {
+ width: 1.875rem;
+ height: 1.875rem; }
+ .icon-bar.label-right > * i, .icon-bar.label-right > * img {
+ margin: 0 .0625rem 0 0;
+ display: inline-block; }
+ .icon-bar.label-right > * i + label, .icon-bar.label-right > * img + label {
+ margin-top: 0; }
+ .icon-bar.label-right > * label {
+ display: inline-block; }
+ .icon-bar.vertical.label-right > * {
+ text-align: left; }
+ .icon-bar.vertical, .icon-bar.small-vertical {
+ height: 100%;
+ width: auto; }
+ .icon-bar.vertical .item, .icon-bar.small-vertical .item {
+ width: auto;
+ margin: auto;
+ float: none; }
+ @media only screen and (min-width: 40.063em) {
+ .icon-bar.medium-vertical {
+ height: 100%;
+ width: auto; }
+ .icon-bar.medium-vertical .item {
+ width: auto;
+ margin: auto;
+ float: none; } }
+ @media only screen and (min-width: 64.063em) {
+ .icon-bar.large-vertical {
+ height: 100%;
+ width: auto; }
+ .icon-bar.large-vertical .item {
+ width: auto;
+ margin: auto;
+ float: none; } }
+ .icon-bar > * {
+ font-size: 1rem;
+ padding: 1.25rem; }
+ .icon-bar > * i + label, .icon-bar > * img + label {
+ margin-top: .0625rem; }
+ .icon-bar > * i {
+ font-size: 1.875rem; }
+ .icon-bar > * img {
+ width: 1.875rem;
+ height: 1.875rem; }
+ .icon-bar > *:hover {
+ background: #008cba; }
+ .icon-bar > * label {
+ color: white; }
+ .icon-bar > * i {
+ color: white; }
+
+.icon-bar.two-up .item {
+ width: 50%; }
+.icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item {
+ width: auto; }
+@media only screen and (min-width: 40.063em) {
+ .icon-bar.two-up.medium-vertical .item {
+ width: auto; } }
+@media only screen and (min-width: 64.063em) {
+ .icon-bar.two-up.large-vertical .item {
+ width: auto; } }
+.icon-bar.three-up .item {
+ width: 33.3333%; }
+.icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item {
+ width: auto; }
+@media only screen and (min-width: 40.063em) {
+ .icon-bar.three-up.medium-vertical .item {
+ width: auto; } }
+@media only screen and (min-width: 64.063em) {
+ .icon-bar.three-up.large-vertical .item {
+ width: auto; } }
+.icon-bar.four-up .item {
+ width: 25%; }
+.icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item {
+ width: auto; }
+@media only screen and (min-width: 40.063em) {
+ .icon-bar.four-up.medium-vertical .item {
+ width: auto; } }
+@media only screen and (min-width: 64.063em) {
+ .icon-bar.four-up.large-vertical .item {
+ width: auto; } }
+.icon-bar.five-up .item {
+ width: 20%; }
+.icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item {
+ width: auto; }
+@media only screen and (min-width: 40.063em) {
+ .icon-bar.five-up.medium-vertical .item {
+ width: auto; } }
+@media only screen and (min-width: 64.063em) {
+ .icon-bar.five-up.large-vertical .item {
+ width: auto; } }
+.icon-bar.six-up .item {
+ width: 16.66667%; }
+.icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item {
+ width: auto; }
+@media only screen and (min-width: 40.063em) {
+ .icon-bar.six-up.medium-vertical .item {
+ width: auto; } }
+@media only screen and (min-width: 64.063em) {
+ .icon-bar.six-up.large-vertical .item {
+ width: auto; } }
+
+.tabs {
+ margin-bottom: 0 !important;
+ margin-left: 0; }
+ .tabs:before, .tabs:after {
+ content: " ";
+ display: table; }
+ .tabs:after {
+ clear: both; }
+ .tabs dd, .tabs .tab-title {
+ position: relative;
+ margin-bottom: 0 !important;
+ list-style: none;
+ float: left; }
+ .tabs dd > a, .tabs .tab-title > a {
+ outline: none;
+ display: block;
+ background-color: #efefef;
+ color: #222222;
+ padding: 1rem 2rem;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ font-size: 1rem; }
+ .tabs dd > a:hover, .tabs .tab-title > a:hover {
+ background-color: #e1e1e1; }
+ .tabs dd.active a, .tabs .tab-title.active a {
+ background-color: white;
+ color: #222222; }
+ .tabs.radius dd:first-child a, .tabs.radius .tab:first-child a {
+ -webkit-border-bottom-left-radius: 3px;
+ -webkit-border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px; }
+ .tabs.radius dd:last-child a, .tabs.radius .tab:last-child a {
+ -webkit-border-bottom-right-radius: 3px;
+ -webkit-border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px; }
+ .tabs.vertical dd, .tabs.vertical .tab-title {
+ position: inherit;
+ float: none;
+ display: block;
+ top: auto; }
+
+.tabs-content {
+ margin-bottom: 1.5rem;
+ width: 100%; }
+ .tabs-content:before, .tabs-content:after {
+ content: " ";
+ display: table; }
+ .tabs-content:after {
+ clear: both; }
+ .tabs-content > .content {
+ display: none;
+ float: left;
+ padding: 0.9375rem 0;
+ width: 100%; }
+ .tabs-content > .content.active {
+ display: block;
+ float: none; }
+ .tabs-content > .content.contained {
+ padding: 0.9375rem; }
+ .tabs-content.vertical {
+ display: block; }
+ .tabs-content.vertical > .content {
+ padding: 0 0.9375rem; }
+
+@media only screen and (min-width: 40.063em) {
+ .tabs.vertical {
+ width: 20%;
+ max-width: 20%;
+ float: left;
+ margin: 0 0 1.25rem; }
+
+ .tabs-content.vertical {
+ width: 80%;
+ max-width: 80%;
+ float: left;
+ margin-left: -1px;
+ padding-left: 1rem; } }
+.no-js .tabs-content > .content {
+ display: block;
+ float: none; }
+
+ul.pagination {
+ display: block;
+ min-height: 1.5rem;
+ margin-left: -0.3125rem; }
+ ul.pagination li {
+ height: 1.5rem;
+ color: #222222;
+ font-size: 0.875rem;
+ margin-left: 0.3125rem; }
+ ul.pagination li a, ul.pagination li button {
+ display: block;
+ padding: 0.0625rem 0.625rem 0.0625rem;
+ color: #999999;
+ background: none;
+ border-radius: 3px;
+ font-weight: normal;
+ font-size: 1em;
+ line-height: inherit;
+ transition: background-color 300ms ease-out; }
+ ul.pagination li:hover a,
+ ul.pagination li a:focus, ul.pagination li:hover button,
+ ul.pagination li button:focus {
+ background: #e6e6e6; }
+ ul.pagination li.unavailable a, ul.pagination li.unavailable button {
+ cursor: default;
+ color: #999999; }
+ ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus, ul.pagination li.unavailable:hover button, ul.pagination li.unavailable button:focus {
+ background: transparent; }
+ ul.pagination li.current a, ul.pagination li.current button {
+ background: #008cba;
+ color: white;
+ font-weight: bold;
+ cursor: default; }
+ ul.pagination li.current a:hover, ul.pagination li.current a:focus, ul.pagination li.current button:hover, ul.pagination li.current button:focus {
+ background: #008cba; }
+ ul.pagination li {
+ float: left;
+ display: block; }
+
+/* Pagination centred wrapper */
+.pagination-centered {
+ text-align: center; }
+ .pagination-centered ul.pagination li {
+ float: none;
+ display: inline-block; }
+
+.side-nav {
+ display: block;
+ margin: 0;
+ padding: 0.875rem 0;
+ list-style-type: none;
+ list-style-position: outside;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; }
+ .side-nav li {
+ margin: 0 0 0.4375rem 0;
+ font-size: 0.875rem;
+ font-weight: normal; }
+ .side-nav li a:not(.button) {
+ display: block;
+ color: #008cba;
+ margin: 0;
+ padding: 0.4375rem 0.875rem; }
+ .side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus {
+ background: rgba(0, 0, 0, 0.025);
+ color: #1cc7ff; }
+ .side-nav li.active > a:first-child:not(.button) {
+ color: #1cc7ff;
+ font-weight: normal;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; }
+ .side-nav li.divider {
+ border-top: 1px solid;
+ height: 0;
+ padding: 0;
+ list-style: none;
+ border-top-color: white; }
+ .side-nav li.heading {
+ color: #008cba;
+ font-size: 0.875rem;
+ font-weight: bold;
+ text-transform: uppercase; }
+
+.accordion {
+ margin-bottom: 0; }
+ .accordion:before, .accordion:after {
+ content: " ";
+ display: table; }
+ .accordion:after {
+ clear: both; }
+ .accordion .accordion-navigation, .accordion dd {
+ display: block;
+ margin-bottom: 0 !important; }
+ .accordion .accordion-navigation.active > a, .accordion dd.active > a {
+ background: #e8e8e8; }
+ .accordion .accordion-navigation > a, .accordion dd > a {
+ background: #efefef;
+ color: #222222;
+ padding: 1rem;
+ display: block;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ font-size: 1rem; }
+ .accordion .accordion-navigation > a:hover, .accordion dd > a:hover {
+ background: #e3e3e3; }
+ .accordion .accordion-navigation > .content, .accordion dd > .content {
+ display: none;
+ padding: 0.9375rem; }
+ .accordion .accordion-navigation > .content.active, .accordion dd > .content.active {
+ display: block;
+ background: white; }
+
+.text-left {
+ text-align: left !important; }
+
+.text-right {
+ text-align: right !important; }
+
+.text-center {
+ text-align: center !important; }
+
+.text-justify {
+ text-align: justify !important; }
+
+@media only screen and (max-width: 40em) {
+ .small-only-text-left {
+ text-align: left !important; }
+
+ .small-only-text-right {
+ text-align: right !important; }
+
+ .small-only-text-center {
+ text-align: center !important; }
+
+ .small-only-text-justify {
+ text-align: justify !important; } }
+@media only screen {
+ .small-text-left {
+ text-align: left !important; }
+
+ .small-text-right {
+ text-align: right !important; }
+
+ .small-text-center {
+ text-align: center !important; }
+
+ .small-text-justify {
+ text-align: justify !important; } }
+@media only screen and (min-width: 40.063em) and (max-width: 64em) {
+ .medium-only-text-left {
+ text-align: left !important; }
+
+ .medium-only-text-right {
+ text-align: right !important; }
+
+ .medium-only-text-center {
+ text-align: center !important; }
+
+ .medium-only-text-justify {
+ text-align: justify !important; } }
+@media only screen and (min-width: 40.063em) {
+ .medium-text-left {
+ text-align: left !important; }
+
+ .medium-text-right {
+ text-align: right !important; }
+
+ .medium-text-center {
+ text-align: center !important; }
+
+ .medium-text-justify {
+ text-align: justify !important; } }
+@media only screen and (min-width: 64.063em) and (max-width: 90em) {
+ .large-only-text-left {
+ text-align: left !important; }
+
+ .large-only-text-right {
+ text-align: right !important; }
+
+ .large-only-text-center {
+ text-align: center !important; }
+
+ .large-only-text-justify {
+ text-align: justify !important; } }
+@media only screen and (min-width: 64.063em) {
+ .large-text-left {
+ text-align: left !important; }
+
+ .large-text-right {
+ text-align: right !important; }
+
+ .large-text-center {
+ text-align: center !important; }
+
+ .large-text-justify {
+ text-align: justify !important; } }
+@media only screen and (min-width: 90.063em) and (max-width: 120em) {
+ .xlarge-only-text-left {
+ text-align: left !important; }
+
+ .xlarge-only-text-right {
+ text-align: right !important; }
+
+ .xlarge-only-text-center {
+ text-align: center !important; }
+
+ .xlarge-only-text-justify {
+ text-align: justify !important; } }
+@media only screen and (min-width: 90.063em) {
+ .xlarge-text-left {
+ text-align: left !important; }
+
+ .xlarge-text-right {
+ text-align: right !important; }
+
+ .xlarge-text-center {
+ text-align: center !important; }
+
+ .xlarge-text-justify {
+ text-align: justify !important; } }
+@media only screen and (min-width: 120.063em) and (max-width: 99999999em) {
+ .xxlarge-only-text-left {
+ text-align: left !important; }
+
+ .xxlarge-only-text-right {
+ text-align: right !important; }
+
+ .xxlarge-only-text-center {
+ text-align: center !important; }
+
+ .xxlarge-only-text-justify {
+ text-align: justify !important; } }
+@media only screen and (min-width: 120.063em) {
+ .xxlarge-text-left {
+ text-align: left !important; }
+
+ .xxlarge-text-right {
+ text-align: right !important; }
+
+ .xxlarge-text-center {
+ text-align: center !important; }
+
+ .xxlarge-text-justify {
+ text-align: justify !important; } }
+/* Typography resets */
+div,
+dl,
+dt,
+dd,
+ul,
+ol,
+li,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+pre,
+form,
+p,
+blockquote,
+th,
+td {
+ margin: 0;
+ padding: 0; }
+
+/* Default Link Styles */
+a {
+ color: #008cba;
+ text-decoration: none;
+ line-height: inherit; }
+ a:hover, a:focus {
+ color: #0078a0; }
+ a img {
+ border: none; }
+
+/* Default paragraph styles */
+p {
+ font-family: inherit;
+ font-weight: normal;
+ font-size: 1rem;
+ line-height: 1.6;
+ margin-bottom: 1.25rem;
+ text-rendering: optimizeLegibility; }
+ p.lead {
+ font-size: 1.21875rem;
+ line-height: 1.6; }
+ p aside {
+ font-size: 0.875rem;
+ line-height: 1.35;
+ font-style: italic; }
+
+/* Default header styles */
+h1, h2, h3, h4, h5, h6 {
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ font-weight: normal;
+ font-style: normal;
+ color: #222222;
+ text-rendering: optimizeLegibility;
+ margin-top: 0.2rem;
+ margin-bottom: 0.5rem;
+ line-height: 1.4; }
+ h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
+ font-size: 60%;
+ color: #6f6f6f;
+ line-height: 0; }
+
+h1 {
+ font-size: 2.125rem; }
+
+h2 {
+ font-size: 1.6875rem; }
+
+h3 {
+ font-size: 1.375rem; }
+
+h4 {
+ font-size: 1.125rem; }
+
+h5 {
+ font-size: 1.125rem; }
+
+h6 {
+ font-size: 1rem; }
+
+.subheader {
+ line-height: 1.4;
+ color: #6f6f6f;
+ font-weight: normal;
+ margin-top: 0.2rem;
+ margin-bottom: 0.5rem; }
+
+hr {
+ border: solid #dddddd;
+ border-width: 1px 0 0;
+ clear: both;
+ margin: 1.25rem 0 1.1875rem;
+ height: 0; }
+
+/* Helpful Typography Defaults */
+em,
+i {
+ font-style: italic;
+ line-height: inherit; }
+
+strong,
+b {
+ font-weight: bold;
+ line-height: inherit; }
+
+small {
+ font-size: 60%;
+ line-height: inherit; }
+
+code {
+ font-family: Consolas, "Liberation Mono", Courier, monospace;
+ font-weight: normal;
+ color: #333333;
+ background-color: #f8f8f8;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #dfdfdf;
+ padding: 0.125rem 0.3125rem 0.0625rem; }
+
+/* Lists */
+ul,
+ol,
+dl {
+ font-size: 1rem;
+ line-height: 1.6;
+ margin-bottom: 1.25rem;
+ list-style-position: outside;
+ font-family: inherit; }
+
+ul {
+ margin-left: 1.1rem; }
+ ul.no-bullet {
+ margin-left: 0; }
+ ul.no-bullet li ul,
+ ul.no-bullet li ol {
+ margin-left: 1.25rem;
+ margin-bottom: 0;
+ list-style: none; }
+
+/* Unordered Lists */
+ul li ul,
+ul li ol {
+ margin-left: 1.25rem;
+ margin-bottom: 0; }
+ul.square li ul, ul.circle li ul, ul.disc li ul {
+ list-style: inherit; }
+ul.square {
+ list-style-type: square;
+ margin-left: 1.1rem; }
+ul.circle {
+ list-style-type: circle;
+ margin-left: 1.1rem; }
+ul.disc {
+ list-style-type: disc;
+ margin-left: 1.1rem; }
+ul.no-bullet {
+ list-style: none; }
+
+/* Ordered Lists */
+ol {
+ margin-left: 1.4rem; }
+ ol li ul,
+ ol li ol {
+ margin-left: 1.25rem;
+ margin-bottom: 0; }
+
+/* Definition Lists */
+dl dt {
+ margin-bottom: 0.3rem;
+ font-weight: bold; }
+dl dd {
+ margin-bottom: 0.75rem; }
+
+/* Abbreviations */
+abbr,
+acronym {
+ text-transform: uppercase;
+ font-size: 90%;
+ color: #222222;
+ cursor: help; }
+
+abbr {
+ text-transform: none; }
+ abbr[title] {
+ border-bottom: 1px dotted #dddddd; }
+
+/* Blockquotes */
+blockquote {
+ margin: 0 0 1.25rem;
+ padding: 0.5625rem 1.25rem 0 1.1875rem;
+ border-left: 1px solid #dddddd; }
+ blockquote cite {
+ display: block;
+ font-size: 0.8125rem;
+ color: #555555; }
+ blockquote cite:before {
+ content: "\2014 \0020"; }
+ blockquote cite a,
+ blockquote cite a:visited {
+ color: #555555; }
+
+blockquote,
+blockquote p {
+ line-height: 1.6;
+ color: #6f6f6f; }
+
+/* Microformats */
+.vcard {
+ display: inline-block;
+ margin: 0 0 1.25rem 0;
+ border: 1px solid #dddddd;
+ padding: 0.625rem 0.75rem; }
+ .vcard li {
+ margin: 0;
+ display: block; }
+ .vcard .fn {
+ font-weight: bold;
+ font-size: 0.9375rem; }
+
+.vevent .summary {
+ font-weight: bold; }
+.vevent abbr {
+ cursor: default;
+ text-decoration: none;
+ font-weight: bold;
+ border: none;
+ padding: 0 0.0625rem; }
+
+@media only screen and (min-width: 40.063em) {
+ h1, h2, h3, h4, h5, h6 {
+ line-height: 1.4; }
+
+ h1 {
+ font-size: 2.75rem; }
+
+ h2 {
+ font-size: 2.3125rem; }
+
+ h3 {
+ font-size: 1.6875rem; }
+
+ h4 {
+ font-size: 1.4375rem; }
+
+ h5 {
+ font-size: 1.125rem; }
+
+ h6 {
+ font-size: 1rem; } }
+/*
+ * Print styles.
+ *
+ * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
+ * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
+*/
+.print-only {
+ display: none !important; }
+
+@media print {
+ * {
+ background: transparent !important;
+ color: black !important;
+ /* Black prints faster: h5bp.com/s */
+ box-shadow: none !important;
+ text-shadow: none !important; }
+
+ a,
+ a:visited {
+ text-decoration: underline; }
+
+ a[href]:after {
+ content: " (" attr(href) ")"; }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")"; }
+
+ .ir a:after,
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: ""; }
+
+ pre,
+ blockquote {
+ border: 1px solid #999999;
+ page-break-inside: avoid; }
+
+ thead {
+ display: table-header-group;
+ /* h5bp.com/t */ }
+
+ tr,
+ img {
+ page-break-inside: avoid; }
+
+ img {
+ max-width: 100% !important; }
+
+ @page {
+ margin: 0.5cm; }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3; }
+
+ h2,
+ h3 {
+ page-break-after: avoid; }
+
+ .hide-on-print {
+ display: none !important; }
+
+ .print-only {
+ display: block !important; }
+
+ .hide-for-print {
+ display: none !important; }
+
+ .show-for-print {
+ display: inherit !important; } }
+.split.button {
+ position: relative;
+ padding-right: 5.0625rem; }
+ .split.button span {
+ display: block;
+ height: 100%;
+ position: absolute;
+ right: 0;
+ top: 0;
+ border-left: solid 1px; }
+ .split.button span:after {
+ position: absolute;
+ content: "";
+ width: 0;
+ height: 0;
+ display: block;
+ border-style: inset;
+ top: 50%;
+ left: 50%; }
+ .split.button span:active {
+ background-color: rgba(0, 0, 0, 0.1); }
+ .split.button span {
+ border-left-color: rgba(255, 255, 255, 0.5); }
+ .split.button span {
+ width: 3.09375rem; }
+ .split.button span:after {
+ border-top-style: solid;
+ border-width: 0.375rem;
+ top: 48%;
+ margin-left: -0.375rem; }
+ .split.button span:after {
+ border-color: white transparent transparent transparent; }
+ .split.button.secondary span {
+ border-left-color: rgba(255, 255, 255, 0.5); }
+ .split.button.secondary span:after {
+ border-color: white transparent transparent transparent; }
+ .split.button.alert span {
+ border-left-color: rgba(255, 255, 255, 0.5); }
+ .split.button.success span {
+ border-left-color: rgba(255, 255, 255, 0.5); }
+ .split.button.tiny {
+ padding-right: 3.75rem; }
+ .split.button.tiny span {
+ width: 2.25rem; }
+ .split.button.tiny span:after {
+ border-top-style: solid;
+ border-width: 0.375rem;
+ top: 48%;
+ margin-left: -0.375rem; }
+ .split.button.small {
+ padding-right: 4.375rem; }
+ .split.button.small span {
+ width: 2.625rem; }
+ .split.button.small span:after {
+ border-top-style: solid;
+ border-width: 0.4375rem;
+ top: 48%;
+ margin-left: -0.375rem; }
+ .split.button.large {
+ padding-right: 5.5rem; }
+ .split.button.large span {
+ width: 3.4375rem; }
+ .split.button.large span:after {
+ border-top-style: solid;
+ border-width: 0.3125rem;
+ top: 48%;
+ margin-left: -0.375rem; }
+ .split.button.expand {
+ padding-left: 2rem; }
+ .split.button.secondary span:after {
+ border-color: #333333 transparent transparent transparent; }
+ .split.button.radius span {
+ -webkit-border-bottom-right-radius: 3px;
+ -webkit-border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px; }
+ .split.button.round span {
+ -webkit-border-bottom-right-radius: 1000px;
+ -webkit-border-top-right-radius: 1000px;
+ border-bottom-right-radius: 1000px;
+ border-top-right-radius: 1000px; }
+
+.reveal-modal-bg {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: black;
+ background: rgba(0, 0, 0, 0.45);
+ z-index: 1004;
+ display: none;
+ left: 0; }
+
+.reveal-modal, dialog {
+ visibility: hidden;
+ display: none;
+ position: absolute;
+ z-index: 1005;
+ width: 100vw;
+ top: 0;
+ border-radius: 3px;
+ left: 0;
+ background-color: white;
+ padding: 1.25rem;
+ border: solid 1px #666666;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
+ padding: 1.875rem; }
+ @media only screen and (max-width: 40em) {
+ .reveal-modal, dialog {
+ min-height: 100vh; } }
+ .reveal-modal .column, dialog .column, .reveal-modal .columns, dialog .columns {
+ min-width: 0; }
+ .reveal-modal > :first-child, dialog > :first-child {
+ margin-top: 0; }
+ .reveal-modal > :last-child, dialog > :last-child {
+ margin-bottom: 0; }
+ @media only screen and (min-width: 40.063em) {
+ .reveal-modal, dialog {
+ width: 80%;
+ max-width: 62.5rem;
+ left: 0;
+ right: 0;
+ margin: 0 auto; } }
+ @media only screen and (min-width: 40.063em) {
+ .reveal-modal, dialog {
+ top: 6.25rem; } }
+ .reveal-modal.radius, dialog.radius {
+ border-radius: 3px; }
+ .reveal-modal.round, dialog.round {
+ border-radius: 1000px; }
+ .reveal-modal.collapse, dialog.collapse {
+ padding: 0; }
+ @media only screen and (min-width: 40.063em) {
+ .reveal-modal.tiny, dialog.tiny {
+ width: 30%;
+ max-width: 62.5rem;
+ left: 0;
+ right: 0;
+ margin: 0 auto; } }
+ @media only screen and (min-width: 40.063em) {
+ .reveal-modal.small, dialog.small {
+ width: 40%;
+ max-width: 62.5rem;
+ left: 0;
+ right: 0;
+ margin: 0 auto; } }
+ @media only screen and (min-width: 40.063em) {
+ .reveal-modal.medium, dialog.medium {
+ width: 60%;
+ max-width: 62.5rem;
+ left: 0;
+ right: 0;
+ margin: 0 auto; } }
+ @media only screen and (min-width: 40.063em) {
+ .reveal-modal.large, dialog.large {
+ width: 70%;
+ max-width: 62.5rem;
+ left: 0;
+ right: 0;
+ margin: 0 auto; } }
+ @media only screen and (min-width: 40.063em) {
+ .reveal-modal.xlarge, dialog.xlarge {
+ width: 95%;
+ max-width: 62.5rem;
+ left: 0;
+ right: 0;
+ margin: 0 auto; } }
+ .reveal-modal.full, dialog.full {
+ top: 0;
+ left: 0;
+ height: 100%;
+ height: 100vh;
+ min-height: 100vh;
+ max-width: none !important;
+ margin-left: 0 !important; }
+ @media only screen and (min-width: 40.063em) {
+ .reveal-modal.full, dialog.full {
+ width: 100vw;
+ max-width: 62.5rem;
+ left: 0;
+ right: 0;
+ margin: 0 auto; } }
+ .reveal-modal .close-reveal-modal, dialog .close-reveal-modal {
+ font-size: 2.5rem;
+ line-height: 1;
+ position: absolute;
+ top: 0.5rem;
+ right: 0.6875rem;
+ color: #aaaaaa;
+ font-weight: bold;
+ cursor: pointer; }
+
+dialog {
+ display: none; }
+ dialog::backdrop, dialog + .backdrop {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: black;
+ background: rgba(0, 0, 0, 0.45);
+ z-index: auto;
+ display: none;
+ left: 0; }
+ dialog[open] {
+ display: block; }
+
+@media print {
+ dialog, .reveal-modal, dialog {
+ display: none;
+ background: white !important; } }
+/* Tooltips */
+.has-tip {
+ border-bottom: dotted 1px #cccccc;
+ cursor: help;
+ font-weight: bold;
+ color: #333333; }
+ .has-tip:hover, .has-tip:focus {
+ border-bottom: dotted 1px #003f54;
+ color: #008cba; }
+ .has-tip.tip-left, .has-tip.tip-right {
+ float: none !important; }
+
+.tooltip {
+ display: none;
+ position: absolute;
+ z-index: 1006;
+ font-weight: normal;
+ font-size: 0.875rem;
+ line-height: 1.3;
+ padding: 0.75rem;
+ max-width: 300px;
+ left: 50%;
+ width: 100%;
+ color: white;
+ background: #333333; }
+ .tooltip > .nub {
+ display: block;
+ left: 5px;
+ position: absolute;
+ width: 0;
+ height: 0;
+ border: solid 5px;
+ border-color: transparent transparent #333333 transparent;
+ top: -10px;
+ pointer-events: none; }
+ .tooltip > .nub.rtl {
+ left: auto;
+ right: 5px; }
+ .tooltip.radius {
+ border-radius: 3px; }
+ .tooltip.round {
+ border-radius: 1000px; }
+ .tooltip.round > .nub {
+ left: 2rem; }
+ .tooltip.opened {
+ color: #008cba !important;
+ border-bottom: dotted 1px #003f54 !important; }
+
+.tap-to-close {
+ display: block;
+ font-size: 0.625rem;
+ color: #777777;
+ font-weight: normal; }
+
+@media only screen and (min-width: 40.063em) {
+ .tooltip > .nub {
+ border-color: transparent transparent #333333 transparent;
+ top: -10px; }
+ .tooltip.tip-top > .nub {
+ border-color: #333333 transparent transparent transparent;
+ top: auto;
+ bottom: -10px; }
+ .tooltip.tip-left, .tooltip.tip-right {
+ float: none !important; }
+ .tooltip.tip-left > .nub {
+ border-color: transparent transparent transparent #333333;
+ right: -10px;
+ left: auto;
+ top: 50%;
+ margin-top: -5px; }
+ .tooltip.tip-right > .nub {
+ border-color: transparent #333333 transparent transparent;
+ right: auto;
+ left: -10px;
+ top: 50%;
+ margin-top: -5px; } }
+/* Clearing Styles */
+.clearing-thumbs, [data-clearing] {
+ margin-bottom: 0;
+ margin-left: 0;
+ list-style: none; }
+ .clearing-thumbs:before, .clearing-thumbs:after, [data-clearing]:before, [data-clearing]:after {
+ content: " ";
+ display: table; }
+ .clearing-thumbs:after, [data-clearing]:after {
+ clear: both; }
+ .clearing-thumbs li, [data-clearing] li {
+ float: left;
+ margin-right: 10px; }
+ .clearing-thumbs[class*="block-grid-"] li, [data-clearing][class*="block-grid-"] li {
+ margin-right: 0; }
+
+.clearing-blackout {
+ background: #333333;
+ position: fixed;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ z-index: 998; }
+ .clearing-blackout .clearing-close {
+ display: block; }
+
+.clearing-container {
+ position: relative;
+ z-index: 998;
+ height: 100%;
+ overflow: hidden;
+ margin: 0; }
+
+.clearing-touch-label {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ color: #aaaaaa;
+ font-size: 0.6em; }
+
+.visible-img {
+ height: 95%;
+ position: relative; }
+ .visible-img img {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin-left: -50%;
+ max-height: 100%;
+ max-width: 100%; }
+
+.clearing-caption {
+ color: #cccccc;
+ font-size: 0.875em;
+ line-height: 1.3;
+ margin-bottom: 0;
+ text-align: center;
+ bottom: 0;
+ background: #333333;
+ width: 100%;
+ padding: 10px 30px 20px;
+ position: absolute;
+ left: 0; }
+
+.clearing-close {
+ z-index: 999;
+ padding-left: 20px;
+ padding-top: 10px;
+ font-size: 30px;
+ line-height: 1;
+ color: #cccccc;
+ display: none; }
+ .clearing-close:hover, .clearing-close:focus {
+ color: #cccccc; }
+
+.clearing-assembled .clearing-container {
+ height: 100%; }
+ .clearing-assembled .clearing-container .carousel > ul {
+ display: none; }
+
+.clearing-feature li {
+ display: none; }
+ .clearing-feature li.clearing-featured-img {
+ display: block; }
+
+@media only screen and (min-width: 40.063em) {
+ .clearing-main-prev,
+ .clearing-main-next {
+ position: absolute;
+ height: 100%;
+ width: 40px;
+ top: 0; }
+ .clearing-main-prev > span,
+ .clearing-main-next > span {
+ position: absolute;
+ top: 50%;
+ display: block;
+ width: 0;
+ height: 0;
+ border: solid 12px; }
+ .clearing-main-prev > span:hover,
+ .clearing-main-next > span:hover {
+ opacity: 0.8; }
+
+ .clearing-main-prev {
+ left: 0; }
+ .clearing-main-prev > span {
+ left: 5px;
+ border-color: transparent;
+ border-right-color: #cccccc; }
+
+ .clearing-main-next {
+ right: 0; }
+ .clearing-main-next > span {
+ border-color: transparent;
+ border-left-color: #cccccc; }
+
+ .clearing-main-prev.disabled,
+ .clearing-main-next.disabled {
+ opacity: 0.3; }
+
+ .clearing-assembled .clearing-container .carousel {
+ background: rgba(51, 51, 51, 0.8);
+ height: 120px;
+ margin-top: 10px;
+ text-align: center; }
+ .clearing-assembled .clearing-container .carousel > ul {
+ display: inline-block;
+ z-index: 999;
+ height: 100%;
+ position: relative;
+ float: none; }
+ .clearing-assembled .clearing-container .carousel > ul li {
+ display: block;
+ width: 120px;
+ min-height: inherit;
+ float: left;
+ overflow: hidden;
+ margin-right: 0;
+ padding: 0;
+ position: relative;
+ cursor: pointer;
+ opacity: 0.4;
+ clear: none; }
+ .clearing-assembled .clearing-container .carousel > ul li.fix-height img {
+ height: 100%;
+ max-width: none; }
+ .clearing-assembled .clearing-container .carousel > ul li a.th {
+ border: none;
+ box-shadow: none;
+ display: block; }
+ .clearing-assembled .clearing-container .carousel > ul li img {
+ cursor: pointer !important;
+ width: 100% !important; }
+ .clearing-assembled .clearing-container .carousel > ul li.visible {
+ opacity: 1; }
+ .clearing-assembled .clearing-container .carousel > ul li:hover {
+ opacity: 0.8; }
+ .clearing-assembled .clearing-container .visible-img {
+ background: #333333;
+ overflow: hidden;
+ height: 85%; }
+
+ .clearing-close {
+ position: absolute;
+ top: 10px;
+ right: 20px;
+ padding-left: 0;
+ padding-top: 0; } }
+/* Progress Bar */
+.progress {
+ background-color: #f6f6f6;
+ height: 1.5625rem;
+ border: 1px solid white;
+ padding: 0.125rem;
+ margin-bottom: 0.625rem; }
+ .progress .meter {
+ background: #008cba;
+ height: 100%;
+ display: block; }
+ .progress.secondary .meter {
+ background: #e7e7e7;
+ height: 100%;
+ display: block; }
+ .progress.success .meter {
+ background: #43ac6a;
+ height: 100%;
+ display: block; }
+ .progress.alert .meter {
+ background: #f04124;
+ height: 100%;
+ display: block; }
+ .progress.radius {
+ border-radius: 3px; }
+ .progress.radius .meter {
+ border-radius: 2px; }
+ .progress.round {
+ border-radius: 1000px; }
+ .progress.round .meter {
+ border-radius: 999px; }
+
+.sub-nav {
+ display: block;
+ width: auto;
+ overflow: hidden;
+ margin-bottom: -0.25rem 0 1.125rem;
+ padding-top: 0.25rem; }
+ .sub-nav dt {
+ text-transform: uppercase; }
+ .sub-nav dt,
+ .sub-nav dd,
+ .sub-nav li {
+ float: left;
+ display: inline;
+ margin-left: 1rem;
+ margin-bottom: 0;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ font-weight: normal;
+ font-size: 0.875rem;
+ color: #999999; }
+ .sub-nav dt a,
+ .sub-nav dd a,
+ .sub-nav li a {
+ text-decoration: none;
+ color: #999999;
+ padding: 0.1875rem 1rem; }
+ .sub-nav dt a:hover,
+ .sub-nav dd a:hover,
+ .sub-nav li a:hover {
+ color: #737373; }
+ .sub-nav dt.active a,
+ .sub-nav dd.active a,
+ .sub-nav li.active a {
+ border-radius: 3px;
+ font-weight: normal;
+ background: #008cba;
+ padding: 0.1875rem 1rem;
+ cursor: default;
+ color: white; }
+ .sub-nav dt.active a:hover,
+ .sub-nav dd.active a:hover,
+ .sub-nav li.active a:hover {
+ background: #0078a0; }
+
+/* Foundation Joyride */
+.joyride-list {
+ display: none; }
+
+/* Default styles for the container */
+.joyride-tip-guide {
+ display: none;
+ position: absolute;
+ background: #333333;
+ color: white;
+ z-index: 101;
+ top: 0;
+ left: 2.5%;
+ font-family: inherit;
+ font-weight: normal;
+ width: 95%; }
+
+.lt-ie9 .joyride-tip-guide {
+ max-width: 800px;
+ left: 50%;
+ margin-left: -400px; }
+
+.joyride-content-wrapper {
+ width: 100%;
+ padding: 1.125rem 1.25rem 1.5rem; }
+ .joyride-content-wrapper .button {
+ margin-bottom: 0 !important; }
+ .joyride-content-wrapper .joyride-prev-tip {
+ margin-right: 10px; }
+
+/* Add a little css triangle pip, older browser just miss out on the fanciness of it */
+.joyride-tip-guide .joyride-nub {
+ display: block;
+ position: absolute;
+ left: 22px;
+ width: 0;
+ height: 0;
+ border: 10px solid #333333; }
+ .joyride-tip-guide .joyride-nub.top {
+ border-top-style: solid;
+ border-color: #333333;
+ border-top-color: transparent !important;
+ border-left-color: transparent !important;
+ border-right-color: transparent !important;
+ top: -20px; }
+ .joyride-tip-guide .joyride-nub.bottom {
+ border-bottom-style: solid;
+ border-color: #333333 !important;
+ border-bottom-color: transparent !important;
+ border-left-color: transparent !important;
+ border-right-color: transparent !important;
+ bottom: -20px; }
+ .joyride-tip-guide .joyride-nub.right {
+ right: -20px; }
+ .joyride-tip-guide .joyride-nub.left {
+ left: -20px; }
+
+/* Typography */
+.joyride-tip-guide h1,
+.joyride-tip-guide h2,
+.joyride-tip-guide h3,
+.joyride-tip-guide h4,
+.joyride-tip-guide h5,
+.joyride-tip-guide h6 {
+ line-height: 1.25;
+ margin: 0;
+ font-weight: bold;
+ color: white; }
+
+.joyride-tip-guide p {
+ margin: 0 0 1.125rem 0;
+ font-size: 0.875rem;
+ line-height: 1.3; }
+
+.joyride-timer-indicator-wrap {
+ width: 50px;
+ height: 3px;
+ border: solid 1px #555555;
+ position: absolute;
+ right: 1.0625rem;
+ bottom: 1rem; }
+
+.joyride-timer-indicator {
+ display: block;
+ width: 0;
+ height: inherit;
+ background: #666666; }
+
+.joyride-close-tip {
+ position: absolute;
+ right: 12px;
+ top: 10px;
+ color: #777777 !important;
+ text-decoration: none;
+ font-size: 24px;
+ font-weight: normal;
+ line-height: .5 !important; }
+ .joyride-close-tip:hover, .joyride-close-tip:focus {
+ color: #eeeeee !important; }
+
+.joyride-modal-bg {
+ position: fixed;
+ height: 100%;
+ width: 100%;
+ background: transparent;
+ background: rgba(0, 0, 0, 0.5);
+ z-index: 100;
+ display: none;
+ top: 0;
+ left: 0;
+ cursor: pointer; }
+
+.joyride-expose-wrapper {
+ background-color: white;
+ position: absolute;
+ border-radius: 3px;
+ z-index: 102;
+ box-shadow: 0 0 15px white; }
+
+.joyride-expose-cover {
+ background: transparent;
+ border-radius: 3px;
+ position: absolute;
+ z-index: 9999;
+ top: 0;
+ left: 0; }
+
+/* Styles for screens that are at least 768px; */
+@media only screen and (min-width: 40.063em) {
+ .joyride-tip-guide {
+ width: 300px;
+ left: inherit; }
+ .joyride-tip-guide .joyride-nub.bottom {
+ border-color: #333333 !important;
+ border-bottom-color: transparent !important;
+ border-left-color: transparent !important;
+ border-right-color: transparent !important;
+ bottom: -20px; }
+ .joyride-tip-guide .joyride-nub.right {
+ border-color: #333333 !important;
+ border-top-color: transparent !important;
+ border-right-color: transparent !important;
+ border-bottom-color: transparent !important;
+ top: 22px;
+ left: auto;
+ right: -20px; }
+ .joyride-tip-guide .joyride-nub.left {
+ border-color: #333333 !important;
+ border-top-color: transparent !important;
+ border-left-color: transparent !important;
+ border-bottom-color: transparent !important;
+ top: 22px;
+ left: -20px;
+ right: auto; } }
+.label {
+ font-weight: normal;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ text-align: center;
+ text-decoration: none;
+ line-height: 1;
+ white-space: nowrap;
+ display: inline-block;
+ position: relative;
+ margin-bottom: inherit;
+ padding: 0.25rem 0.5rem 0.25rem;
+ font-size: 0.6875rem;
+ background-color: #008cba;
+ color: white; }
+ .label.radius {
+ border-radius: 3px; }
+ .label.round {
+ border-radius: 1000px; }
+ .label.alert {
+ background-color: #f04124;
+ color: white; }
+ .label.warning {
+ background-color: #f08a24;
+ color: white; }
+ .label.success {
+ background-color: #43ac6a;
+ color: white; }
+ .label.secondary {
+ background-color: #e7e7e7;
+ color: #333333; }
+ .label.info {
+ background-color: #a0d3e8;
+ color: #333333; }
+
+.off-canvas-wrap {
+ -webkit-backface-visibility: hidden;
+ position: relative;
+ width: 100%;
+ overflow: hidden; }
+ .off-canvas-wrap.move-right, .off-canvas-wrap.move-left {
+ min-height: 100%;
+ -webkit-overflow-scrolling: touch; }
+
+.inner-wrap {
+ -webkit-backface-visibility: hidden;
+ position: relative;
+ width: 100%;
+ -webkit-transition: -webkit-transform 500ms ease;
+ -moz-transition: -moz-transform 500ms ease;
+ -ms-transition: -ms-transform 500ms ease;
+ -o-transition: -o-transform 500ms ease;
+ transition: transform 500ms ease; }
+ .inner-wrap:before, .inner-wrap:after {
+ content: " ";
+ display: table; }
+ .inner-wrap:after {
+ clear: both; }
+
+.tab-bar {
+ -webkit-backface-visibility: hidden;
+ background: #333333;
+ color: white;
+ height: 2.8125rem;
+ line-height: 2.8125rem;
+ position: relative; }
+ .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 {
+ color: white;
+ font-weight: bold;
+ line-height: 2.8125rem;
+ margin: 0; }
+ .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 {
+ font-size: 1.125rem; }
+
+.left-small {
+ width: 2.8125rem;
+ height: 2.8125rem;
+ position: absolute;
+ top: 0;
+ border-right: solid 1px #1a1a1a;
+ left: 0; }
+
+.right-small {
+ width: 2.8125rem;
+ height: 2.8125rem;
+ position: absolute;
+ top: 0;
+ border-left: solid 1px #1a1a1a;
+ right: 0; }
+
+.tab-bar-section {
+ padding: 0 0.625rem;
+ position: absolute;
+ text-align: center;
+ height: 2.8125rem;
+ top: 0; }
+ @media only screen and (min-width: 40.063em) {
+ .tab-bar-section.left, .tab-bar-section.right {
+ text-align: left; } }
+ .tab-bar-section.left {
+ left: 0;
+ right: 2.8125rem; }
+ .tab-bar-section.right {
+ left: 2.8125rem;
+ right: 0; }
+ .tab-bar-section.middle {
+ left: 2.8125rem;
+ right: 2.8125rem; }
+
+.tab-bar .menu-icon {
+ text-indent: 2.1875rem;
+ width: 2.8125rem;
+ height: 2.8125rem;
+ display: block;
+ padding: 0;
+ color: white;
+ position: relative;
+ transform: translate3d(0, 0, 0); }
+ .tab-bar .menu-icon span::after {
+ content: "";
+ position: absolute;
+ display: block;
+ height: 0;
+ top: 50%;
+ margin-top: -0.5rem;
+ left: 0.90625rem;
+ box-shadow: 0 0px 0 1px white, 0 7px 0 1px white, 0 14px 0 1px white;
+ width: 1rem; }
+ .tab-bar .menu-icon span:hover:after {
+ box-shadow: 0 0px 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3; }
+
+.left-off-canvas-menu {
+ -webkit-backface-visibility: hidden;
+ width: 15.625rem;
+ top: 0;
+ bottom: 0;
+ position: absolute;
+ overflow-x: hidden;
+ overflow-y: auto;
+ background: #333333;
+ z-index: 1001;
+ box-sizing: content-box;
+ transition: transform 500ms ease 0s;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -ms-transform: translate(-100.5%, 0);
+ -webkit-transform: translate3d(-100.5%, 0, 0);
+ -moz-transform: translate3d(-100.5%, 0, 0);
+ -ms-transform: translate3d(-100.5%, 0, 0);
+ -o-transform: translate3d(-100.5%, 0, 0);
+ transform: translate3d(-100.5%, 0, 0);
+ left: 0; }
+ .left-off-canvas-menu * {
+ -webkit-backface-visibility: hidden; }
+
+.right-off-canvas-menu {
+ -webkit-backface-visibility: hidden;
+ width: 15.625rem;
+ top: 0;
+ bottom: 0;
+ position: absolute;
+ overflow-x: hidden;
+ overflow-y: auto;
+ background: #333333;
+ z-index: 1001;
+ box-sizing: content-box;
+ transition: transform 500ms ease 0s;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -ms-transform: translate(100.5%, 0);
+ -webkit-transform: translate3d(100.5%, 0, 0);
+ -moz-transform: translate3d(100.5%, 0, 0);
+ -ms-transform: translate3d(100.5%, 0, 0);
+ -o-transform: translate3d(100.5%, 0, 0);
+ transform: translate3d(100.5%, 0, 0);
+ right: 0; }
+ .right-off-canvas-menu * {
+ -webkit-backface-visibility: hidden; }
+
+ul.off-canvas-list {
+ list-style-type: none;
+ padding: 0;
+ margin: 0; }
+ ul.off-canvas-list li label {
+ display: block;
+ padding: 0.3rem 0.9375rem;
+ color: #999999;
+ text-transform: uppercase;
+ font-size: 0.75rem;
+ font-weight: bold;
+ background: #444444;
+ border-top: 1px solid #5e5e5e;
+ border-bottom: none;
+ margin: 0; }
+ ul.off-canvas-list li a {
+ display: block;
+ padding: 0.66667rem;
+ color: rgba(255, 255, 255, 0.7);
+ border-bottom: 1px solid #262626;
+ transition: background 300ms ease; }
+ ul.off-canvas-list li a:hover {
+ background: #242424; }
+
+.move-right > .inner-wrap {
+ -ms-transform: translate(15.625rem, 0);
+ -webkit-transform: translate3d(15.625rem, 0, 0);
+ -moz-transform: translate3d(15.625rem, 0, 0);
+ -ms-transform: translate3d(15.625rem, 0, 0);
+ -o-transform: translate3d(15.625rem, 0, 0);
+ transform: translate3d(15.625rem, 0, 0); }
+.move-right .exit-off-canvas {
+ -webkit-backface-visibility: hidden;
+ transition: background 300ms ease;
+ cursor: pointer;
+ box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+ display: block;
+ position: absolute;
+ background: rgba(255, 255, 255, 0.2);
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 1002;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
+ @media only screen and (min-width: 40.063em) {
+ .move-right .exit-off-canvas:hover {
+ background: rgba(255, 255, 255, 0.05); } }
+
+.move-left > .inner-wrap {
+ -ms-transform: translate(-15.625rem, 0);
+ -webkit-transform: translate3d(-15.625rem, 0, 0);
+ -moz-transform: translate3d(-15.625rem, 0, 0);
+ -ms-transform: translate3d(-15.625rem, 0, 0);
+ -o-transform: translate3d(-15.625rem, 0, 0);
+ transform: translate3d(-15.625rem, 0, 0); }
+.move-left .exit-off-canvas {
+ -webkit-backface-visibility: hidden;
+ transition: background 300ms ease;
+ cursor: pointer;
+ box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+ display: block;
+ position: absolute;
+ background: rgba(255, 255, 255, 0.2);
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 1002;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
+ @media only screen and (min-width: 40.063em) {
+ .move-left .exit-off-canvas:hover {
+ background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap .left-off-canvas-menu, .offcanvas-overlap .right-off-canvas-menu {
+ -ms-transform: none;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -o-transform: none;
+ transform: none;
+ z-index: 1003; }
+.offcanvas-overlap .exit-off-canvas {
+ -webkit-backface-visibility: hidden;
+ transition: background 300ms ease;
+ cursor: pointer;
+ box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+ display: block;
+ position: absolute;
+ background: rgba(255, 255, 255, 0.2);
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 1002;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
+ @media only screen and (min-width: 40.063em) {
+ .offcanvas-overlap .exit-off-canvas:hover {
+ background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-left .right-off-canvas-menu {
+ -ms-transform: none;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -o-transform: none;
+ transform: none;
+ z-index: 1003; }
+.offcanvas-overlap-left .exit-off-canvas {
+ -webkit-backface-visibility: hidden;
+ transition: background 300ms ease;
+ cursor: pointer;
+ box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+ display: block;
+ position: absolute;
+ background: rgba(255, 255, 255, 0.2);
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 1002;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
+ @media only screen and (min-width: 40.063em) {
+ .offcanvas-overlap-left .exit-off-canvas:hover {
+ background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-right .left-off-canvas-menu {
+ -ms-transform: none;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -o-transform: none;
+ transform: none;
+ z-index: 1003; }
+.offcanvas-overlap-right .exit-off-canvas {
+ -webkit-backface-visibility: hidden;
+ transition: background 300ms ease;
+ cursor: pointer;
+ box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+ display: block;
+ position: absolute;
+ background: rgba(255, 255, 255, 0.2);
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 1002;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
+ @media only screen and (min-width: 40.063em) {
+ .offcanvas-overlap-right .exit-off-canvas:hover {
+ background: rgba(255, 255, 255, 0.05); } }
+
+.no-csstransforms .left-off-canvas-menu {
+ left: -15.625rem; }
+.no-csstransforms .right-off-canvas-menu {
+ right: -15.625rem; }
+.no-csstransforms .move-left > .inner-wrap {
+ right: 15.625rem; }
+.no-csstransforms .move-right > .inner-wrap {
+ left: 15.625rem; }
+
+.left-submenu {
+ -webkit-backface-visibility: hidden;
+ width: 15.625rem;
+ top: 0;
+ bottom: 0;
+ position: absolute;
+ margin: 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+ background: #333333;
+ z-index: 1002;
+ box-sizing: content-box;
+ -webkit-overflow-scrolling: touch;
+ -ms-transform: translate(-100%, 0);
+ -webkit-transform: translate3d(-100%, 0, 0);
+ -moz-transform: translate3d(-100%, 0, 0);
+ -ms-transform: translate3d(-100%, 0, 0);
+ -o-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ left: 0;
+ -webkit-transition: -webkit-transform 500ms ease;
+ -moz-transition: -moz-transform 500ms ease;
+ -ms-transition: -ms-transform 500ms ease;
+ -o-transition: -o-transform 500ms ease;
+ transition: transform 500ms ease; }
+ .left-submenu * {
+ -webkit-backface-visibility: hidden; }
+ .left-submenu .back > a {
+ padding: 0.3rem 0.9375rem;
+ color: #999999;
+ text-transform: uppercase;
+ font-weight: bold;
+ background: #444444;
+ border-top: 1px solid #5e5e5e;
+ border-bottom: none;
+ margin: 0; }
+ .left-submenu .back > a:hover {
+ background: #303030;
+ border-top: 1px solid #5e5e5e;
+ border-bottom: none; }
+ .left-submenu .back > a:before {
+ content: "\AB";
+ margin-right: 0.5rem;
+ display: inline; }
+ .left-submenu.move-right {
+ -ms-transform: translate(0%, 0);
+ -webkit-transform: translate3d(0%, 0, 0);
+ -moz-transform: translate3d(0%, 0, 0);
+ -ms-transform: translate3d(0%, 0, 0);
+ -o-transform: translate3d(0%, 0, 0);
+ transform: translate3d(0%, 0, 0); }
+
+.right-submenu {
+ -webkit-backface-visibility: hidden;
+ width: 15.625rem;
+ top: 0;
+ bottom: 0;
+ position: absolute;
+ margin: 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+ background: #333333;
+ z-index: 1002;
+ box-sizing: content-box;
+ -webkit-overflow-scrolling: touch;
+ -ms-transform: translate(100%, 0);
+ -webkit-transform: translate3d(100%, 0, 0);
+ -moz-transform: translate3d(100%, 0, 0);
+ -ms-transform: translate3d(100%, 0, 0);
+ -o-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ right: 0;
+ -webkit-transition: -webkit-transform 500ms ease;
+ -moz-transition: -moz-transform 500ms ease;
+ -ms-transition: -ms-transform 500ms ease;
+ -o-transition: -o-transform 500ms ease;
+ transition: transform 500ms ease; }
+ .right-submenu * {
+ -webkit-backface-visibility: hidden; }
+ .right-submenu .back > a {
+ padding: 0.3rem 0.9375rem;
+ color: #999999;
+ text-transform: uppercase;
+ font-weight: bold;
+ background: #444444;
+ border-top: 1px solid #5e5e5e;
+ border-bottom: none;
+ margin: 0; }
+ .right-submenu .back > a:hover {
+ background: #303030;
+ border-top: 1px solid #5e5e5e;
+ border-bottom: none; }
+ .right-submenu .back > a:after {
+ content: "\BB";
+ margin-left: 0.5rem;
+ display: inline; }
+ .right-submenu.move-left {
+ -ms-transform: translate(0%, 0);
+ -webkit-transform: translate3d(0%, 0, 0);
+ -moz-transform: translate3d(0%, 0, 0);
+ -ms-transform: translate3d(0%, 0, 0);
+ -o-transform: translate3d(0%, 0, 0);
+ transform: translate3d(0%, 0, 0); }
+
+.left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
+ content: "\BB";
+ margin-left: 0.5rem;
+ display: inline; }
+
+.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
+ content: "\AB";
+ margin-right: 0.5rem;
+ display: inline; }
+
+/* Foundation Dropdowns */
+.f-dropdown {
+ position: absolute;
+ left: -9999px;
+ list-style: none;
+ margin-left: 0;
+ outline: none;
+ width: 100%;
+ max-height: none;
+ height: auto;
+ background: white;
+ border: solid 1px #cccccc;
+ font-size: 0.875rem;
+ z-index: 89;
+ margin-top: 2px;
+ max-width: 200px; }
+ .f-dropdown > *:first-child {
+ margin-top: 0; }
+ .f-dropdown > *:last-child {
+ margin-bottom: 0; }
+ .f-dropdown:before {
+ content: "";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ border-color: transparent transparent white transparent;
+ border-bottom-style: solid;
+ position: absolute;
+ top: -12px;
+ left: 10px;
+ z-index: 89; }
+ .f-dropdown:after {
+ content: "";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 7px;
+ border-color: transparent transparent #cccccc transparent;
+ border-bottom-style: solid;
+ position: absolute;
+ top: -14px;
+ left: 9px;
+ z-index: 88; }
+ .f-dropdown.right:before {
+ left: auto;
+ right: 10px; }
+ .f-dropdown.right:after {
+ left: auto;
+ right: 9px; }
+ .f-dropdown.drop-right {
+ position: absolute;
+ left: -9999px;
+ list-style: none;
+ margin-left: 0;
+ outline: none;
+ width: 100%;
+ max-height: none;
+ height: auto;
+ background: white;
+ border: solid 1px #cccccc;
+ font-size: 0.875rem;
+ z-index: 89;
+ margin-top: 0;
+ margin-left: 2px;
+ max-width: 200px; }
+ .f-dropdown.drop-right > *:first-child {
+ margin-top: 0; }
+ .f-dropdown.drop-right > *:last-child {
+ margin-bottom: 0; }
+ .f-dropdown.drop-right:before {
+ content: "";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ border-color: transparent white transparent transparent;
+ border-right-style: solid;
+ position: absolute;
+ top: 10px;
+ left: -12px;
+ z-index: 89; }
+ .f-dropdown.drop-right:after {
+ content: "";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 7px;
+ border-color: transparent #cccccc transparent transparent;
+ border-right-style: solid;
+ position: absolute;
+ top: 9px;
+ left: -14px;
+ z-index: 88; }
+ .f-dropdown.drop-left {
+ position: absolute;
+ left: -9999px;
+ list-style: none;
+ margin-left: 0;
+ outline: none;
+ width: 100%;
+ max-height: none;
+ height: auto;
+ background: white;
+ border: solid 1px #cccccc;
+ font-size: 0.875rem;
+ z-index: 89;
+ margin-top: 0;
+ margin-left: -2px;
+ max-width: 200px; }
+ .f-dropdown.drop-left > *:first-child {
+ margin-top: 0; }
+ .f-dropdown.drop-left > *:last-child {
+ margin-bottom: 0; }
+ .f-dropdown.drop-left:before {
+ content: "";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ border-color: transparent transparent transparent white;
+ border-left-style: solid;
+ position: absolute;
+ top: 10px;
+ right: -12px;
+ left: auto;
+ z-index: 89; }
+ .f-dropdown.drop-left:after {
+ content: "";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 7px;
+ border-color: transparent transparent transparent #cccccc;
+ border-left-style: solid;
+ position: absolute;
+ top: 9px;
+ right: -14px;
+ left: auto;
+ z-index: 88; }
+ .f-dropdown.drop-top {
+ position: absolute;
+ left: -9999px;
+ list-style: none;
+ margin-left: 0;
+ outline: none;
+ width: 100%;
+ max-height: none;
+ height: auto;
+ background: white;
+ border: solid 1px #cccccc;
+ font-size: 0.875rem;
+ z-index: 89;
+ margin-top: -2px;
+ margin-left: 0;
+ max-width: 200px; }
+ .f-dropdown.drop-top > *:first-child {
+ margin-top: 0; }
+ .f-dropdown.drop-top > *:last-child {
+ margin-bottom: 0; }
+ .f-dropdown.drop-top:before {
+ content: "";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ border-color: white transparent transparent transparent;
+ border-top-style: solid;
+ position: absolute;
+ top: auto;
+ bottom: -12px;
+ left: 10px;
+ right: auto;
+ z-index: 89; }
+ .f-dropdown.drop-top:after {
+ content: "";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 7px;
+ border-color: #cccccc transparent transparent transparent;
+ border-top-style: solid;
+ position: absolute;
+ top: auto;
+ bottom: -14px;
+ left: 9px;
+ right: auto;
+ z-index: 88; }
+ .f-dropdown li {
+ font-size: 0.875rem;
+ cursor: pointer;
+ line-height: 1.125rem;
+ margin: 0; }
+ .f-dropdown li:hover, .f-dropdown li:focus {
+ background: #eeeeee; }
+ .f-dropdown li.radius {
+ border-radius: 3px; }
+ .f-dropdown li a {
+ display: block;
+ padding: 0.5rem;
+ color: #555555; }
+ .f-dropdown.content {
+ position: absolute;
+ left: -9999px;
+ list-style: none;
+ margin-left: 0;
+ outline: none;
+ padding: 1.25rem;
+ width: 100%;
+ height: auto;
+ max-height: none;
+ background: white;
+ border: solid 1px #cccccc;
+ font-size: 0.875rem;
+ z-index: 89;
+ max-width: 200px; }
+ .f-dropdown.content > *:first-child {
+ margin-top: 0; }
+ .f-dropdown.content > *:last-child {
+ margin-bottom: 0; }
+ .f-dropdown.tiny {
+ max-width: 200px; }
+ .f-dropdown.small {
+ max-width: 300px; }
+ .f-dropdown.medium {
+ max-width: 500px; }
+ .f-dropdown.large {
+ max-width: 800px; }
+ .f-dropdown.mega {
+ width: 100% !important;
+ max-width: 100% !important; }
+ .f-dropdown.mega.open {
+ left: 0 !important; }
+
+table {
+ background: white;
+ margin-bottom: 1.25rem;
+ border: solid 1px #dddddd;
+ table-layout: auto; }
+ table caption {
+ background: transparent;
+ color: #222222;
+ font-size: 1rem;
+ font-weight: bold; }
+ table thead {
+ background: whitesmoke; }
+ table thead tr th,
+ table thead tr td {
+ padding: 0.5rem 0.625rem 0.625rem;
+ font-size: 0.875rem;
+ font-weight: bold;
+ color: #222222; }
+ table tfoot {
+ background: whitesmoke; }
+ table tfoot tr th,
+ table tfoot tr td {
+ padding: 0.5rem 0.625rem 0.625rem;
+ font-size: 0.875rem;
+ font-weight: bold;
+ color: #222222; }
+ table tr th,
+ table tr td {
+ padding: 0.5625rem 0.625rem;
+ font-size: 0.875rem;
+ color: #222222;
+ text-align: left; }
+ table tr.even, table tr.alt, table tr:nth-of-type(even) {
+ background: #f9f9f9; }
+ table thead tr th,
+ table tfoot tr th,
+ table tfoot tr td,
+ table tbody tr th,
+ table tbody tr td,
+ table tr td {
+ display: table-cell;
+ line-height: 1.125rem; }
+
+.range-slider {
+ display: block;
+ position: relative;
+ width: 100%;
+ height: 1rem;
+ border: 1px solid #dddddd;
+ margin: 1.25rem 0;
+ -ms-touch-action: none;
+ touch-action: none;
+ background: #fafafa; }
+ .range-slider.vertical-range {
+ display: block;
+ position: relative;
+ width: 100%;
+ height: 1rem;
+ border: 1px solid #dddddd;
+ margin: 1.25rem 0;
+ -ms-touch-action: none;
+ touch-action: none;
+ display: inline-block;
+ width: 1rem;
+ height: 12.5rem; }
+ .range-slider.vertical-range .range-slider-handle {
+ margin-top: 0;
+ margin-left: -0.5rem;
+ position: absolute;
+ bottom: -10.5rem; }
+ .range-slider.vertical-range .range-slider-active-segment {
+ width: 0.875rem;
+ height: auto;
+ bottom: 0; }
+ .range-slider.radius {
+ background: #fafafa;
+ border-radius: 3px; }
+ .range-slider.radius .range-slider-handle {
+ background: #008cba;
+ border-radius: 3px; }
+ .range-slider.radius .range-slider-handle:hover {
+ background: #007ba4; }
+ .range-slider.round {
+ background: #fafafa;
+ border-radius: 1000px; }
+ .range-slider.round .range-slider-handle {
+ background: #008cba;
+ border-radius: 1000px; }
+ .range-slider.round .range-slider-handle:hover {
+ background: #007ba4; }
+ .range-slider.disabled, .range-slider[disabled] {
+ background: #fafafa;
+ cursor: default;
+ opacity: 0.7; }
+ .range-slider.disabled .range-slider-handle, .range-slider[disabled] .range-slider-handle {
+ background: #008cba;
+ cursor: default;
+ opacity: 0.7; }
+ .range-slider.disabled .range-slider-handle:hover, .range-slider[disabled] .range-slider-handle:hover {
+ background: #007ba4; }
+
+.range-slider-active-segment {
+ display: inline-block;
+ position: absolute;
+ height: 0.875rem;
+ background: #e5e5e5; }
+
+.range-slider-handle {
+ display: inline-block;
+ position: absolute;
+ z-index: 1;
+ top: -0.3125rem;
+ width: 2rem;
+ height: 1.375rem;
+ border: 1px solid none;
+ cursor: pointer;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation;
+ background: #008cba; }
+ .range-slider-handle:hover {
+ background: #007ba4; }
+
+[class*="block-grid-"] {
+ display: block;
+ padding: 0;
+ margin: 0 -0.625rem; }
+ [class*="block-grid-"]:before, [class*="block-grid-"]:after {
+ content: " ";
+ display: table; }
+ [class*="block-grid-"]:after {
+ clear: both; }
+ [class*="block-grid-"] > li {
+ display: block;
+ height: auto;
+ float: left;
+ padding: 0 0.625rem 1.25rem; }
+
+@media only screen {
+ .small-block-grid-1 > li {
+ width: 100%;
+ list-style: none; }
+ .small-block-grid-1 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-1 > li:nth-of-type(1n+1) {
+ clear: both; }
+
+ .small-block-grid-2 > li {
+ width: 50%;
+ list-style: none; }
+ .small-block-grid-2 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-2 > li:nth-of-type(2n+1) {
+ clear: both; }
+
+ .small-block-grid-3 > li {
+ width: 33.33333%;
+ list-style: none; }
+ .small-block-grid-3 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-3 > li:nth-of-type(3n+1) {
+ clear: both; }
+
+ .small-block-grid-4 > li {
+ width: 25%;
+ list-style: none; }
+ .small-block-grid-4 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-4 > li:nth-of-type(4n+1) {
+ clear: both; }
+
+ .small-block-grid-5 > li {
+ width: 20%;
+ list-style: none; }
+ .small-block-grid-5 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-5 > li:nth-of-type(5n+1) {
+ clear: both; }
+
+ .small-block-grid-6 > li {
+ width: 16.66667%;
+ list-style: none; }
+ .small-block-grid-6 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-6 > li:nth-of-type(6n+1) {
+ clear: both; }
+
+ .small-block-grid-7 > li {
+ width: 14.28571%;
+ list-style: none; }
+ .small-block-grid-7 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-7 > li:nth-of-type(7n+1) {
+ clear: both; }
+
+ .small-block-grid-8 > li {
+ width: 12.5%;
+ list-style: none; }
+ .small-block-grid-8 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-8 > li:nth-of-type(8n+1) {
+ clear: both; }
+
+ .small-block-grid-9 > li {
+ width: 11.11111%;
+ list-style: none; }
+ .small-block-grid-9 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-9 > li:nth-of-type(9n+1) {
+ clear: both; }
+
+ .small-block-grid-10 > li {
+ width: 10%;
+ list-style: none; }
+ .small-block-grid-10 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-10 > li:nth-of-type(10n+1) {
+ clear: both; }
+
+ .small-block-grid-11 > li {
+ width: 9.09091%;
+ list-style: none; }
+ .small-block-grid-11 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-11 > li:nth-of-type(11n+1) {
+ clear: both; }
+
+ .small-block-grid-12 > li {
+ width: 8.33333%;
+ list-style: none; }
+ .small-block-grid-12 > li:nth-of-type(1n) {
+ clear: none; }
+ .small-block-grid-12 > li:nth-of-type(12n+1) {
+ clear: both; } }
+@media only screen and (min-width: 40.063em) {
+ .medium-block-grid-1 > li {
+ width: 100%;
+ list-style: none; }
+ .medium-block-grid-1 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-1 > li:nth-of-type(1n+1) {
+ clear: both; }
+
+ .medium-block-grid-2 > li {
+ width: 50%;
+ list-style: none; }
+ .medium-block-grid-2 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-2 > li:nth-of-type(2n+1) {
+ clear: both; }
+
+ .medium-block-grid-3 > li {
+ width: 33.33333%;
+ list-style: none; }
+ .medium-block-grid-3 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-3 > li:nth-of-type(3n+1) {
+ clear: both; }
+
+ .medium-block-grid-4 > li {
+ width: 25%;
+ list-style: none; }
+ .medium-block-grid-4 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-4 > li:nth-of-type(4n+1) {
+ clear: both; }
+
+ .medium-block-grid-5 > li {
+ width: 20%;
+ list-style: none; }
+ .medium-block-grid-5 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-5 > li:nth-of-type(5n+1) {
+ clear: both; }
+
+ .medium-block-grid-6 > li {
+ width: 16.66667%;
+ list-style: none; }
+ .medium-block-grid-6 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-6 > li:nth-of-type(6n+1) {
+ clear: both; }
+
+ .medium-block-grid-7 > li {
+ width: 14.28571%;
+ list-style: none; }
+ .medium-block-grid-7 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-7 > li:nth-of-type(7n+1) {
+ clear: both; }
+
+ .medium-block-grid-8 > li {
+ width: 12.5%;
+ list-style: none; }
+ .medium-block-grid-8 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-8 > li:nth-of-type(8n+1) {
+ clear: both; }
+
+ .medium-block-grid-9 > li {
+ width: 11.11111%;
+ list-style: none; }
+ .medium-block-grid-9 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-9 > li:nth-of-type(9n+1) {
+ clear: both; }
+
+ .medium-block-grid-10 > li {
+ width: 10%;
+ list-style: none; }
+ .medium-block-grid-10 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-10 > li:nth-of-type(10n+1) {
+ clear: both; }
+
+ .medium-block-grid-11 > li {
+ width: 9.09091%;
+ list-style: none; }
+ .medium-block-grid-11 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-11 > li:nth-of-type(11n+1) {
+ clear: both; }
+
+ .medium-block-grid-12 > li {
+ width: 8.33333%;
+ list-style: none; }
+ .medium-block-grid-12 > li:nth-of-type(1n) {
+ clear: none; }
+ .medium-block-grid-12 > li:nth-of-type(12n+1) {
+ clear: both; } }
+@media only screen and (min-width: 64.063em) {
+ .large-block-grid-1 > li {
+ width: 100%;
+ list-style: none; }
+ .large-block-grid-1 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-1 > li:nth-of-type(1n+1) {
+ clear: both; }
+
+ .large-block-grid-2 > li {
+ width: 50%;
+ list-style: none; }
+ .large-block-grid-2 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-2 > li:nth-of-type(2n+1) {
+ clear: both; }
+
+ .large-block-grid-3 > li {
+ width: 33.33333%;
+ list-style: none; }
+ .large-block-grid-3 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-3 > li:nth-of-type(3n+1) {
+ clear: both; }
+
+ .large-block-grid-4 > li {
+ width: 25%;
+ list-style: none; }
+ .large-block-grid-4 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-4 > li:nth-of-type(4n+1) {
+ clear: both; }
+
+ .large-block-grid-5 > li {
+ width: 20%;
+ list-style: none; }
+ .large-block-grid-5 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-5 > li:nth-of-type(5n+1) {
+ clear: both; }
+
+ .large-block-grid-6 > li {
+ width: 16.66667%;
+ list-style: none; }
+ .large-block-grid-6 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-6 > li:nth-of-type(6n+1) {
+ clear: both; }
+
+ .large-block-grid-7 > li {
+ width: 14.28571%;
+ list-style: none; }
+ .large-block-grid-7 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-7 > li:nth-of-type(7n+1) {
+ clear: both; }
+
+ .large-block-grid-8 > li {
+ width: 12.5%;
+ list-style: none; }
+ .large-block-grid-8 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-8 > li:nth-of-type(8n+1) {
+ clear: both; }
+
+ .large-block-grid-9 > li {
+ width: 11.11111%;
+ list-style: none; }
+ .large-block-grid-9 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-9 > li:nth-of-type(9n+1) {
+ clear: both; }
+
+ .large-block-grid-10 > li {
+ width: 10%;
+ list-style: none; }
+ .large-block-grid-10 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-10 > li:nth-of-type(10n+1) {
+ clear: both; }
+
+ .large-block-grid-11 > li {
+ width: 9.09091%;
+ list-style: none; }
+ .large-block-grid-11 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-11 > li:nth-of-type(11n+1) {
+ clear: both; }
+
+ .large-block-grid-12 > li {
+ width: 8.33333%;
+ list-style: none; }
+ .large-block-grid-12 > li:nth-of-type(1n) {
+ clear: none; }
+ .large-block-grid-12 > li:nth-of-type(12n+1) {
+ clear: both; } }
+.flex-video {
+ position: relative;
+ padding-top: 1.5625rem;
+ padding-bottom: 67.5%;
+ height: 0;
+ margin-bottom: 1rem;
+ overflow: hidden; }
+ .flex-video.widescreen {
+ padding-bottom: 56.34%; }
+ .flex-video.vimeo {
+ padding-top: 0; }
+ .flex-video iframe,
+ .flex-video object,
+ .flex-video embed,
+ .flex-video video {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%; }
+
+.keystroke,
+kbd {
+ background-color: #ededed;
+ border-color: #dddddd;
+ color: #222222;
+ border-style: solid;
+ border-width: 1px;
+ margin: 0;
+ font-family: "Consolas", "Menlo", "Courier", monospace;
+ font-size: inherit;
+ padding: 0.125rem 0.25rem 0;
+ border-radius: 3px; }
+
+.switch {
+ padding: 0;
+ border: none;
+ position: relative;
+ outline: 0;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none; }
+ .switch label {
+ display: block;
+ margin-bottom: 1rem;
+ position: relative;
+ color: transparent;
+ background: #dddddd;
+ text-indent: 100%;
+ width: 4rem;
+ height: 2rem;
+ cursor: pointer;
+ transition: left 0.15s ease-out; }
+ .switch input {
+ opacity: 0;
+ position: absolute;
+ top: 9px;
+ left: 10px;
+ padding: 0; }
+ .switch input + label {
+ margin-left: 0;
+ margin-right: 0; }
+ .switch label:after {
+ content: "";
+ display: block;
+ background: white;
+ position: absolute;
+ top: .25rem;
+ left: .25rem;
+ width: 1.5rem;
+ height: 1.5rem;
+ -webkit-transition: left 0.15s ease-out;
+ -moz-transition: left 0.15s ease-out;
+ transition: left 0.15s ease-out;
+ -webkit-transform: translate3d(0, 0, 0);
+ -moz-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0); }
+ .switch input:checked + label {
+ background: #008cba; }
+ .switch input:checked + label:after {
+ left: 2.25rem; }
+ .switch label {
+ width: 4rem;
+ height: 2rem; }
+ .switch label:after {
+ width: 1.5rem;
+ height: 1.5rem; }
+ .switch input:checked + label:after {
+ left: 2.25rem; }
+ .switch label {
+ color: transparent;
+ background: #dddddd; }
+ .switch label:after {
+ background: white; }
+ .switch input:checked + label {
+ background: #008cba; }
+ .switch.large label {
+ width: 5rem;
+ height: 2.5rem; }
+ .switch.large label:after {
+ width: 2rem;
+ height: 2rem; }
+ .switch.large input:checked + label:after {
+ left: 2.75rem; }
+ .switch.small label {
+ width: 3.5rem;
+ height: 1.75rem; }
+ .switch.small label:after {
+ width: 1.25rem;
+ height: 1.25rem; }
+ .switch.small input:checked + label:after {
+ left: 2rem; }
+ .switch.tiny label {
+ width: 3rem;
+ height: 1.5rem; }
+ .switch.tiny label:after {
+ width: 1rem;
+ height: 1rem; }
+ .switch.tiny input:checked + label:after {
+ left: 1.75rem; }
+ .switch.radius label {
+ border-radius: 4px; }
+ .switch.radius label:after {
+ border-radius: 3px; }
+ .switch.round {
+ border-radius: 1000px; }
+ .switch.round label {
+ border-radius: 2rem; }
+ .switch.round label:after {
+ border-radius: 2rem; }
+
+/* small displays */
+@media only screen {
+ .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up {
+ display: inherit !important; }
+
+ .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up {
+ display: none !important; }
+
+ .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up {
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto; }
+
+ .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up {
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px, 1px, 1px, 1px); }
+
+ table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up {
+ display: table !important; }
+
+ thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up {
+ display: table-header-group !important; }
+
+ tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up {
+ display: table-row-group !important; }
+
+ tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up {
+ display: table-row !important; }
+
+ th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up {
+ display: table-cell !important; } }
+/* medium displays */
+@media only screen and (min-width: 40.063em) {
+ .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up {
+ display: inherit !important; }
+
+ .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up {
+ display: none !important; }
+
+ .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up {
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto; }
+
+ .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up {
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px, 1px, 1px, 1px); }
+
+ table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up {
+ display: table !important; }
+
+ thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up {
+ display: table-header-group !important; }
+
+ tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up {
+ display: table-row-group !important; }
+
+ tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up {
+ display: table-row !important; }
+
+ th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up {
+ display: table-cell !important; } }
+/* large displays */
+@media only screen and (min-width: 64.063em) {
+ .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up {
+ display: inherit !important; }
+
+ .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up {
+ display: none !important; }
+
+ .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up {
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto; }
+
+ .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up {
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px, 1px, 1px, 1px); }
+
+ table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up {
+ display: table !important; }
+
+ thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up {
+ display: table-header-group !important; }
+
+ tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up {
+ display: table-row-group !important; }
+
+ tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up {
+ display: table-row !important; }
+
+ th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up {
+ display: table-cell !important; } }
+/* xlarge displays */
+@media only screen and (min-width: 90.063em) {
+ .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up {
+ display: inherit !important; }
+
+ .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up {
+ display: none !important; }
+
+ .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up {
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto; }
+
+ .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up {
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px, 1px, 1px, 1px); }
+
+ table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up {
+ display: table !important; }
+
+ thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up {
+ display: table-header-group !important; }
+
+ tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up {
+ display: table-row-group !important; }
+
+ tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up {
+ display: table-row !important; }
+
+ th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up {
+ display: table-cell !important; } }
+/* xxlarge displays */
+@media only screen and (min-width: 120.063em) {
+ .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up {
+ display: inherit !important; }
+
+ .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up {
+ display: none !important; }
+
+ .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up {
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto; }
+
+ .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up {
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px, 1px, 1px, 1px); }
+
+ table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xxlarge-only, table.show-for-xxlarge-up {
+ display: table !important; }
+
+ thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up {
+ display: table-header-group !important; }
+
+ tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up {
+ display: table-row-group !important; }
+
+ tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up {
+ display: table-row !important; }
+
+ th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up {
+ display: table-cell !important; } }
+/* Orientation targeting */
+.show-for-landscape,
+.hide-for-portrait {
+ display: inherit !important; }
+
+.hide-for-landscape,
+.show-for-portrait {
+ display: none !important; }
+
+/* Specific visibility for tables */
+table.hide-for-landscape, table.show-for-portrait {
+ display: table !important; }
+
+thead.hide-for-landscape, thead.show-for-portrait {
+ display: table-header-group !important; }
+
+tbody.hide-for-landscape, tbody.show-for-portrait {
+ display: table-row-group !important; }
+
+tr.hide-for-landscape, tr.show-for-portrait {
+ display: table-row !important; }
+
+td.hide-for-landscape, td.show-for-portrait,
+th.hide-for-landscape,
+th.show-for-portrait {
+ display: table-cell !important; }
+
+@media only screen and (orientation: landscape) {
+ .show-for-landscape,
+ .hide-for-portrait {
+ display: inherit !important; }
+
+ .hide-for-landscape,
+ .show-for-portrait {
+ display: none !important; }
+
+ /* Specific visibility for tables */
+ table.show-for-landscape, table.hide-for-portrait {
+ display: table !important; }
+
+ thead.show-for-landscape, thead.hide-for-portrait {
+ display: table-header-group !important; }
+
+ tbody.show-for-landscape, tbody.hide-for-portrait {
+ display: table-row-group !important; }
+
+ tr.show-for-landscape, tr.hide-for-portrait {
+ display: table-row !important; }
+
+ td.show-for-landscape, td.hide-for-portrait,
+ th.show-for-landscape,
+ th.hide-for-portrait {
+ display: table-cell !important; } }
+@media only screen and (orientation: portrait) {
+ .show-for-portrait,
+ .hide-for-landscape {
+ display: inherit !important; }
+
+ .hide-for-portrait,
+ .show-for-landscape {
+ display: none !important; }
+
+ /* Specific visibility for tables */
+ table.show-for-portrait, table.hide-for-landscape {
+ display: table !important; }
+
+ thead.show-for-portrait, thead.hide-for-landscape {
+ display: table-header-group !important; }
+
+ tbody.show-for-portrait, tbody.hide-for-landscape {
+ display: table-row-group !important; }
+
+ tr.show-for-portrait, tr.hide-for-landscape {
+ display: table-row !important; }
+
+ td.show-for-portrait, td.hide-for-landscape,
+ th.show-for-portrait,
+ th.hide-for-landscape {
+ display: table-cell !important; } }
+/* Touch-enabled device targeting */
+.show-for-touch {
+ display: none !important; }
+
+.hide-for-touch {
+ display: inherit !important; }
+
+.touch .show-for-touch {
+ display: inherit !important; }
+
+.touch .hide-for-touch {
+ display: none !important; }
+
+/* Specific visibility for tables */
+table.hide-for-touch {
+ display: table !important; }
+
+.touch table.show-for-touch {
+ display: table !important; }
+
+thead.hide-for-touch {
+ display: table-header-group !important; }
+
+.touch thead.show-for-touch {
+ display: table-header-group !important; }
+
+tbody.hide-for-touch {
+ display: table-row-group !important; }
+
+.touch tbody.show-for-touch {
+ display: table-row-group !important; }
+
+tr.hide-for-touch {
+ display: table-row !important; }
+
+.touch tr.show-for-touch {
+ display: table-row !important; }
+
+td.hide-for-touch {
+ display: table-cell !important; }
+
+.touch td.show-for-touch {
+ display: table-cell !important; }
+
+th.hide-for-touch {
+ display: table-cell !important; }
+
+.touch th.show-for-touch {
+ display: table-cell !important; }
+
+/* Print visibility */
+@media print {
+ .show-for-print {
+ display: block; }
+
+ .hide-for-print {
+ display: none; }
+
+ table.show-for-print {
+ display: table !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; } }
diff --git a/foundation/css/foundation.min.css b/foundation/css/foundation.min.css
new file mode 100644
index 0000000..a9e0be2
--- /dev/null
+++ b/foundation/css/foundation.min.css
@@ -0,0 +1 @@
+meta.foundation-version{font-family:"/5.4.7/"}meta.foundation-mq-small{font-family:"/only screen/";width:0em}meta.foundation-mq-medium{font-family:"/only screen and (min-width:40.063em)/";width:40.063em}meta.foundation-mq-large{font-family:"/only screen and (min-width:64.063em)/";width:64.063em}meta.foundation-mq-xlarge{font-family:"/only screen and (min-width:90.063em)/";width:90.063em}meta.foundation-mq-xxlarge{font-family:"/only screen and (min-width:120.063em)/";width:120.063em}meta.foundation-data-attribute-namespace{font-family:false}html,body{height:100%}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{font-size:100%}body{background:#fff;color:#222;padding:0;margin:0;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;font-style:normal;line-height:1.5;position:relative;cursor:auto}a:hover{cursor:pointer}img{max-width:100%;height:auto}img{-ms-interpolation-mode:bicubic}#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object{max-width:none !important}.left{float:left !important}.right{float:right !important}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.hide{display:none !important;visibility:hidden}.invisible{visibility:hidden}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle}textarea{height:auto;min-height:50px}select{width:100%}.row{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5rem}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row.collapse>.column,.row.collapse>.columns{padding-left:0;padding-right:0}.row.collapse .row{margin-left:0;margin-right:0}.row .row{width:auto;margin-left:-0.9375rem;margin-right:-0.9375rem;margin-top:0;margin-bottom:0;max-width:none}.row .row:before,.row .row:after{content:" ";display:table}.row .row:after{clear:both}.row .row.collapse{width:auto;margin:0;max-width:none}.row .row.collapse:before,.row .row.collapse:after{content:" ";display:table}.row .row.collapse:after{clear:both}.column,.columns{padding-left:0.9375rem;padding-right:0.9375rem;width:100%;float:left}[class*="column"]+[class*="column"]:last-child{float:right}[class*="column"]+[class*="column"].end{float:left}@media only screen{.small-push-0{position:relative;left:0%;right:auto}.small-pull-0{position:relative;right:0%;left:auto}.small-push-1{position:relative;left:8.33333%;right:auto}.small-pull-1{position:relative;right:8.33333%;left:auto}.small-push-2{position:relative;left:16.66667%;right:auto}.small-pull-2{position:relative;right:16.66667%;left:auto}.small-push-3{position:relative;left:25%;right:auto}.small-pull-3{position:relative;right:25%;left:auto}.small-push-4{position:relative;left:33.33333%;right:auto}.small-pull-4{position:relative;right:33.33333%;left:auto}.small-push-5{position:relative;left:41.66667%;right:auto}.small-pull-5{position:relative;right:41.66667%;left:auto}.small-push-6{position:relative;left:50%;right:auto}.small-pull-6{position:relative;right:50%;left:auto}.small-push-7{position:relative;left:58.33333%;right:auto}.small-pull-7{position:relative;right:58.33333%;left:auto}.small-push-8{position:relative;left:66.66667%;right:auto}.small-pull-8{position:relative;right:66.66667%;left:auto}.small-push-9{position:relative;left:75%;right:auto}.small-pull-9{position:relative;right:75%;left:auto}.small-push-10{position:relative;left:83.33333%;right:auto}.small-pull-10{position:relative;right:83.33333%;left:auto}.small-push-11{position:relative;left:91.66667%;right:auto}.small-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.small-1{width:8.33333%}.small-2{width:16.66667%}.small-3{width:25%}.small-4{width:33.33333%}.small-5{width:41.66667%}.small-6{width:50%}.small-7{width:58.33333%}.small-8{width:66.66667%}.small-9{width:75%}.small-10{width:83.33333%}.small-11{width:91.66667%}.small-12{width:100%}.small-offset-0{margin-left:0% !important}.small-offset-1{margin-left:8.33333% !important}.small-offset-2{margin-left:16.66667% !important}.small-offset-3{margin-left:25% !important}.small-offset-4{margin-left:33.33333% !important}.small-offset-5{margin-left:41.66667% !important}.small-offset-6{margin-left:50% !important}.small-offset-7{margin-left:58.33333% !important}.small-offset-8{margin-left:66.66667% !important}.small-offset-9{margin-left:75% !important}.small-offset-10{margin-left:83.33333% !important}.small-offset-11{margin-left:91.66667% !important}.small-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}.column.small-centered,.columns.small-centered{margin-left:auto;margin-right:auto;float:none}.column.small-uncentered,.columns.small-uncentered{margin-left:0;margin-right:0;float:left}.column.small-centered:last-child,.columns.small-centered:last-child{float:none}.column.small-uncentered:last-child,.columns.small-uncentered:last-child{float:left}.column.small-uncentered.opposite,.columns.small-uncentered.opposite{float:right}}@media only screen and (min-width: 40.063em){.medium-push-0{position:relative;left:0%;right:auto}.medium-pull-0{position:relative;right:0%;left:auto}.medium-push-1{position:relative;left:8.33333%;right:auto}.medium-pull-1{position:relative;right:8.33333%;left:auto}.medium-push-2{position:relative;left:16.66667%;right:auto}.medium-pull-2{position:relative;right:16.66667%;left:auto}.medium-push-3{position:relative;left:25%;right:auto}.medium-pull-3{position:relative;right:25%;left:auto}.medium-push-4{position:relative;left:33.33333%;right:auto}.medium-pull-4{position:relative;right:33.33333%;left:auto}.medium-push-5{position:relative;left:41.66667%;right:auto}.medium-pull-5{position:relative;right:41.66667%;left:auto}.medium-push-6{position:relative;left:50%;right:auto}.medium-pull-6{position:relative;right:50%;left:auto}.medium-push-7{position:relative;left:58.33333%;right:auto}.medium-pull-7{position:relative;right:58.33333%;left:auto}.medium-push-8{position:relative;left:66.66667%;right:auto}.medium-pull-8{position:relative;right:66.66667%;left:auto}.medium-push-9{position:relative;left:75%;right:auto}.medium-pull-9{position:relative;right:75%;left:auto}.medium-push-10{position:relative;left:83.33333%;right:auto}.medium-pull-10{position:relative;right:83.33333%;left:auto}.medium-push-11{position:relative;left:91.66667%;right:auto}.medium-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.medium-1{width:8.33333%}.medium-2{width:16.66667%}.medium-3{width:25%}.medium-4{width:33.33333%}.medium-5{width:41.66667%}.medium-6{width:50%}.medium-7{width:58.33333%}.medium-8{width:66.66667%}.medium-9{width:75%}.medium-10{width:83.33333%}.medium-11{width:91.66667%}.medium-12{width:100%}.medium-offset-0{margin-left:0% !important}.medium-offset-1{margin-left:8.33333% !important}.medium-offset-2{margin-left:16.66667% !important}.medium-offset-3{margin-left:25% !important}.medium-offset-4{margin-left:33.33333% !important}.medium-offset-5{margin-left:41.66667% !important}.medium-offset-6{margin-left:50% !important}.medium-offset-7{margin-left:58.33333% !important}.medium-offset-8{margin-left:66.66667% !important}.medium-offset-9{margin-left:75% !important}.medium-offset-10{margin-left:83.33333% !important}.medium-offset-11{margin-left:91.66667% !important}.medium-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}.column.medium-centered,.columns.medium-centered{margin-left:auto;margin-right:auto;float:none}.column.medium-uncentered,.columns.medium-uncentered{margin-left:0;margin-right:0;float:left}.column.medium-centered:last-child,.columns.medium-centered:last-child{float:none}.column.medium-uncentered:last-child,.columns.medium-uncentered:last-child{float:left}.column.medium-uncentered.opposite,.columns.medium-uncentered.opposite{float:right}.push-0{position:relative;left:0%;right:auto}.pull-0{position:relative;right:0%;left:auto}.push-1{position:relative;left:8.33333%;right:auto}.pull-1{position:relative;right:8.33333%;left:auto}.push-2{position:relative;left:16.66667%;right:auto}.pull-2{position:relative;right:16.66667%;left:auto}.push-3{position:relative;left:25%;right:auto}.pull-3{position:relative;right:25%;left:auto}.push-4{position:relative;left:33.33333%;right:auto}.pull-4{position:relative;right:33.33333%;left:auto}.push-5{position:relative;left:41.66667%;right:auto}.pull-5{position:relative;right:41.66667%;left:auto}.push-6{position:relative;left:50%;right:auto}.pull-6{position:relative;right:50%;left:auto}.push-7{position:relative;left:58.33333%;right:auto}.pull-7{position:relative;right:58.33333%;left:auto}.push-8{position:relative;left:66.66667%;right:auto}.pull-8{position:relative;right:66.66667%;left:auto}.push-9{position:relative;left:75%;right:auto}.pull-9{position:relative;right:75%;left:auto}.push-10{position:relative;left:83.33333%;right:auto}.pull-10{position:relative;right:83.33333%;left:auto}.push-11{position:relative;left:91.66667%;right:auto}.pull-11{position:relative;right:91.66667%;left:auto}}@media only screen and (min-width: 64.063em){.large-push-0{position:relative;left:0%;right:auto}.large-pull-0{position:relative;right:0%;left:auto}.large-push-1{position:relative;left:8.33333%;right:auto}.large-pull-1{position:relative;right:8.33333%;left:auto}.large-push-2{position:relative;left:16.66667%;right:auto}.large-pull-2{position:relative;right:16.66667%;left:auto}.large-push-3{position:relative;left:25%;right:auto}.large-pull-3{position:relative;right:25%;left:auto}.large-push-4{position:relative;left:33.33333%;right:auto}.large-pull-4{position:relative;right:33.33333%;left:auto}.large-push-5{position:relative;left:41.66667%;right:auto}.large-pull-5{position:relative;right:41.66667%;left:auto}.large-push-6{position:relative;left:50%;right:auto}.large-pull-6{position:relative;right:50%;left:auto}.large-push-7{position:relative;left:58.33333%;right:auto}.large-pull-7{position:relative;right:58.33333%;left:auto}.large-push-8{position:relative;left:66.66667%;right:auto}.large-pull-8{position:relative;right:66.66667%;left:auto}.large-push-9{position:relative;left:75%;right:auto}.large-pull-9{position:relative;right:75%;left:auto}.large-push-10{position:relative;left:83.33333%;right:auto}.large-pull-10{position:relative;right:83.33333%;left:auto}.large-push-11{position:relative;left:91.66667%;right:auto}.large-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.large-1{width:8.33333%}.large-2{width:16.66667%}.large-3{width:25%}.large-4{width:33.33333%}.large-5{width:41.66667%}.large-6{width:50%}.large-7{width:58.33333%}.large-8{width:66.66667%}.large-9{width:75%}.large-10{width:83.33333%}.large-11{width:91.66667%}.large-12{width:100%}.large-offset-0{margin-left:0% !important}.large-offset-1{margin-left:8.33333% !important}.large-offset-2{margin-left:16.66667% !important}.large-offset-3{margin-left:25% !important}.large-offset-4{margin-left:33.33333% !important}.large-offset-5{margin-left:41.66667% !important}.large-offset-6{margin-left:50% !important}.large-offset-7{margin-left:58.33333% !important}.large-offset-8{margin-left:66.66667% !important}.large-offset-9{margin-left:75% !important}.large-offset-10{margin-left:83.33333% !important}.large-offset-11{margin-left:91.66667% !important}.large-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}.column.large-centered,.columns.large-centered{margin-left:auto;margin-right:auto;float:none}.column.large-uncentered,.columns.large-uncentered{margin-left:0;margin-right:0;float:left}.column.large-centered:last-child,.columns.large-centered:last-child{float:none}.column.large-uncentered:last-child,.columns.large-uncentered:last-child{float:left}.column.large-uncentered.opposite,.columns.large-uncentered.opposite{float:right}.push-0{position:relative;left:0%;right:auto}.pull-0{position:relative;right:0%;left:auto}.push-1{position:relative;left:8.33333%;right:auto}.pull-1{position:relative;right:8.33333%;left:auto}.push-2{position:relative;left:16.66667%;right:auto}.pull-2{position:relative;right:16.66667%;left:auto}.push-3{position:relative;left:25%;right:auto}.pull-3{position:relative;right:25%;left:auto}.push-4{position:relative;left:33.33333%;right:auto}.pull-4{position:relative;right:33.33333%;left:auto}.push-5{position:relative;left:41.66667%;right:auto}.pull-5{position:relative;right:41.66667%;left:auto}.push-6{position:relative;left:50%;right:auto}.pull-6{position:relative;right:50%;left:auto}.push-7{position:relative;left:58.33333%;right:auto}.pull-7{position:relative;right:58.33333%;left:auto}.push-8{position:relative;left:66.66667%;right:auto}.pull-8{position:relative;right:66.66667%;left:auto}.push-9{position:relative;left:75%;right:auto}.pull-9{position:relative;right:75%;left:auto}.push-10{position:relative;left:83.33333%;right:auto}.pull-10{position:relative;right:83.33333%;left:auto}.push-11{position:relative;left:91.66667%;right:auto}.pull-11{position:relative;right:91.66667%;left:auto}}button,.button{border-style:solid;border-width:0px;cursor:pointer;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;line-height:normal;margin:0 0 1.25rem;position:relative;text-decoration:none;text-align:center;-webkit-appearance:none;-webkit-border-radius:0;display:inline-block;padding-top:1rem;padding-right:2rem;padding-bottom:1.0625rem;padding-left:2rem;font-size:1rem;background-color:#008cba;border-color:#007095;color:#fff;transition:background-color 300ms ease-out}button:hover,button:focus,.button:hover,.button:focus{background-color:#007095}button:hover,button:focus,.button:hover,.button:focus{color:#fff}button.secondary,.button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}button.secondary:hover,button.secondary:focus,.button.secondary:hover,.button.secondary:focus{background-color:#b9b9b9}button.secondary:hover,button.secondary:focus,.button.secondary:hover,.button.secondary:focus{color:#333}button.success,.button.success{background-color:#43ac6a;border-color:#368a55;color:#fff}button.success:hover,button.success:focus,.button.success:hover,.button.success:focus{background-color:#368a55}button.success:hover,button.success:focus,.button.success:hover,.button.success:focus{color:#fff}button.alert,.button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}button.alert:hover,button.alert:focus,.button.alert:hover,.button.alert:focus{background-color:#cf2a0e}button.alert:hover,button.alert:focus,.button.alert:hover,.button.alert:focus{color:#fff}button.warning,.button.warning{background-color:#f08a24;border-color:#cf6e0e;color:#fff}button.warning:hover,button.warning:focus,.button.warning:hover,.button.warning:focus{background-color:#cf6e0e}button.warning:hover,button.warning:focus,.button.warning:hover,.button.warning:focus{color:#fff}button.info,.button.info{background-color:#a0d3e8;border-color:#61b6d9;color:#333}button.info:hover,button.info:focus,.button.info:hover,.button.info:focus{background-color:#61b6d9}button.info:hover,button.info:focus,.button.info:hover,.button.info:focus{color:#fff}button.large,.button.large{padding-top:1.125rem;padding-right:2.25rem;padding-bottom:1.1875rem;padding-left:2.25rem;font-size:1.25rem}button.small,.button.small{padding-top:0.875rem;padding-right:1.75rem;padding-bottom:0.9375rem;padding-left:1.75rem;font-size:0.8125rem}button.tiny,.button.tiny{padding-top:0.625rem;padding-right:1.25rem;padding-bottom:0.6875rem;padding-left:1.25rem;font-size:0.6875rem}button.expand,.button.expand{padding-right:0;padding-left:0;width:100%}button.left-align,.button.left-align{text-align:left;text-indent:0.75rem}button.right-align,.button.right-align{text-align:right;padding-right:0.75rem}button.radius,.button.radius{border-radius:3px}button.round,.button.round{border-radius:1000px}button.disabled,button[disabled],.button.disabled,.button[disabled]{background-color:#008cba;border-color:#007095;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{background-color:#007095}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{color:#fff}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{background-color:#008cba}button.disabled.secondary,button[disabled].secondary,.button.disabled.secondary,.button[disabled].secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333;cursor:default;opacity:0.7;box-shadow:none}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#b9b9b9}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{color:#333}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#e7e7e7}button.disabled.success,button[disabled].success,.button.disabled.success,.button[disabled].success{background-color:#43ac6a;border-color:#368a55;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#368a55}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{color:#fff}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#43ac6a}button.disabled.alert,button[disabled].alert,.button.disabled.alert,.button[disabled].alert{background-color:#f04124;border-color:#cf2a0e;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#cf2a0e}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{color:#fff}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#f04124}button.disabled.warning,button[disabled].warning,.button.disabled.warning,.button[disabled].warning{background-color:#f08a24;border-color:#cf6e0e;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{background-color:#cf6e0e}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{color:#fff}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{background-color:#f08a24}button.disabled.info,button[disabled].info,.button.disabled.info,.button[disabled].info{background-color:#a0d3e8;border-color:#61b6d9;color:#333;cursor:default;opacity:0.7;box-shadow:none}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{background-color:#61b6d9}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{color:#fff}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{background-color:#a0d3e8}button::-moz-focus-inner{border:0;padding:0}@media only screen and (min-width: 40.063em){button,.button{display:inline-block}}form{margin:0 0 1rem}form .row .row{margin:0 -0.5rem}form .row .row .column,form .row .row .columns{padding:0 0.5rem}form .row .row.collapse{margin:0}form .row .row.collapse .column,form .row .row.collapse .columns{padding:0}form .row .row.collapse input{-webkit-border-bottom-right-radius:0;-webkit-border-top-right-radius:0;border-bottom-right-radius:0;border-top-right-radius:0}form .row input.column,form .row input.columns,form .row textarea.column,form .row textarea.columns{padding-left:0.5rem}label{font-size:0.875rem;color:#4d4d4d;cursor:pointer;display:block;font-weight:normal;line-height:1.5;margin-bottom:0}label.right{float:none !important;text-align:right}label.inline{margin:0 0 1rem 0;padding:0.5625rem 0}label small{text-transform:capitalize;color:#676767}.prefix,.postfix{display:block;position:relative;z-index:2;text-align:center;width:100%;padding-top:0;padding-bottom:0;border-style:solid;border-width:1px;overflow:hidden;font-size:0.875rem;height:2.3125rem;line-height:2.3125rem}.postfix.button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;text-align:center;line-height:2.125rem;border:none}.prefix.button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;text-align:center;line-height:2.125rem;border:none}.prefix.button.radius{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.postfix.button.radius{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.prefix.button.round{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.postfix.button.round{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}span.prefix,label.prefix{background:#f2f2f2;border-right:none;color:#333;border-color:#ccc}span.postfix,label.postfix{background:#f2f2f2;border-left:none;color:#333;border-color:#ccc}input[type="text"],input[type="password"],input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="month"],input[type="week"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="time"],input[type="url"],input[type="color"],textarea{-webkit-appearance:none;-webkit-border-radius:0px;background-color:#fff;font-family:inherit;border-style:solid;border-width:1px;border-color:#ccc;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);color:rgba(0,0,0,0.75);display:block;font-size:0.875rem;margin:0 0 1rem 0;padding:0.5rem;height:2.3125rem;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;transition:box-shadow 0.45s,border-color 0.45s ease-in-out}input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,input[type="color"]:focus,textarea:focus{box-shadow:0 0 5px #999;border-color:#999}input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,input[type="color"]:focus,textarea:focus{background:#fafafa;border-color:#999;outline:none}input[type="text"]:disabled,input[type="password"]:disabled,input[type="date"]:disabled,input[type="datetime"]:disabled,input[type="datetime-local"]:disabled,input[type="month"]:disabled,input[type="week"]:disabled,input[type="email"]:disabled,input[type="number"]:disabled,input[type="search"]:disabled,input[type="tel"]:disabled,input[type="time"]:disabled,input[type="url"]:disabled,input[type="color"]:disabled,textarea:disabled{background-color:#ddd;cursor:default}input[type="text"][disabled],input[type="text"][readonly],fieldset[disabled] input[type="text"],input[type="password"][disabled],input[type="password"][readonly],fieldset[disabled] input[type="password"],input[type="date"][disabled],input[type="date"][readonly],fieldset[disabled] input[type="date"],input[type="datetime"][disabled],input[type="datetime"][readonly],fieldset[disabled] input[type="datetime"],input[type="datetime-local"][disabled],input[type="datetime-local"][readonly],fieldset[disabled] input[type="datetime-local"],input[type="month"][disabled],input[type="month"][readonly],fieldset[disabled] input[type="month"],input[type="week"][disabled],input[type="week"][readonly],fieldset[disabled] input[type="week"],input[type="email"][disabled],input[type="email"][readonly],fieldset[disabled] input[type="email"],input[type="number"][disabled],input[type="number"][readonly],fieldset[disabled] input[type="number"],input[type="search"][disabled],input[type="search"][readonly],fieldset[disabled] input[type="search"],input[type="tel"][disabled],input[type="tel"][readonly],fieldset[disabled] input[type="tel"],input[type="time"][disabled],input[type="time"][readonly],fieldset[disabled] input[type="time"],input[type="url"][disabled],input[type="url"][readonly],fieldset[disabled] input[type="url"],input[type="color"][disabled],input[type="color"][readonly],fieldset[disabled] input[type="color"],textarea[disabled],textarea[readonly],fieldset[disabled] textarea{background-color:#ddd;cursor:default}input[type="text"].radius,input[type="password"].radius,input[type="date"].radius,input[type="datetime"].radius,input[type="datetime-local"].radius,input[type="month"].radius,input[type="week"].radius,input[type="email"].radius,input[type="number"].radius,input[type="search"].radius,input[type="tel"].radius,input[type="time"].radius,input[type="url"].radius,input[type="color"].radius,textarea.radius{border-radius:3px}form .row .prefix-radius.row.collapse input,form .row .prefix-radius.row.collapse textarea,form .row .prefix-radius.row.collapse select{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}form .row .prefix-radius.row.collapse .prefix{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}form .row .postfix-radius.row.collapse input,form .row .postfix-radius.row.collapse textarea,form .row .postfix-radius.row.collapse select{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}form .row .postfix-radius.row.collapse .postfix{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}form .row .prefix-round.row.collapse input,form .row .prefix-round.row.collapse textarea,form .row .prefix-round.row.collapse select{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}form .row .prefix-round.row.collapse .prefix{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}form .row .postfix-round.row.collapse input,form .row .postfix-round.row.collapse textarea,form .row .postfix-round.row.collapse select{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}form .row .postfix-round.row.collapse .postfix{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}input[type="submit"]{-webkit-appearance:none;-webkit-border-radius:0px}textarea[rows]{height:auto}textarea{max-width:100%}select{-webkit-appearance:none !important;-webkit-border-radius:0px;background-color:#fafafa;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);background-position:100% center;background-repeat:no-repeat;border-style:solid;border-width:1px;border-color:#ccc;padding:0.5rem;font-size:0.875rem;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;color:rgba(0,0,0,0.75);line-height:normal;border-radius:0;height:2.3125rem}select::-ms-expand{display:none}select.radius{border-radius:3px}select:hover{background-color:#f3f3f3;border-color:#999}select:disabled{background-color:#ddd;cursor:default}input[type="file"],input[type="checkbox"],input[type="radio"],select{margin:0 0 1rem 0}input[type="checkbox"]+label,input[type="radio"]+label{display:inline-block;margin-left:0.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}input[type="file"]{width:100%}fieldset{border:1px solid #ddd;padding:1.25rem;margin:1.125rem 0}fieldset legend{font-weight:bold;background:#fff;padding:0 0.1875rem;margin:0;margin-left:-0.1875rem}[data-abide] .error small.error,[data-abide] .error span.error,[data-abide] span.error,[data-abide] small.error{display:block;padding:0.375rem 0.5625rem 0.5625rem;margin-top:-1px;margin-bottom:1rem;font-size:0.75rem;font-weight:normal;font-style:italic;background:#f04124;color:#fff}[data-abide] span.error,[data-abide] small.error{display:none}span.error,small.error{display:block;padding:0.375rem 0.5625rem 0.5625rem;margin-top:-1px;margin-bottom:1rem;font-size:0.75rem;font-weight:normal;font-style:italic;background:#f04124;color:#fff}.error input,.error textarea,.error select{margin-bottom:0}.error input[type="checkbox"],.error input[type="radio"]{margin-bottom:1rem}.error label,.error label.error{color:#f04124}.error small.error{display:block;padding:0.375rem 0.5625rem 0.5625rem;margin-top:-1px;margin-bottom:1rem;font-size:0.75rem;font-weight:normal;font-style:italic;background:#f04124;color:#fff}.error>label>small{color:#676767;background:transparent;padding:0;text-transform:capitalize;font-style:normal;font-size:60%;margin:0;display:inline}.error span.error-message{display:block}input.error,textarea.error,select.error{margin-bottom:0}label.error{color:#f04124}meta.foundation-mq-topbar{font-family:"/only screen and (min-width:40.063em)/";width:40.063em}.contain-to-grid{width:100%;background:#333}.contain-to-grid .top-bar{margin-bottom:0}.fixed{width:100%;left:0;position:fixed;top:0;z-index:99}.fixed.expanded:not(.top-bar){overflow-y:auto;height:auto;width:100%;max-height:100%}.fixed.expanded:not(.top-bar) .title-area{position:fixed;width:100%;z-index:99}.fixed.expanded:not(.top-bar) .top-bar-section{z-index:98;margin-top:45px}.top-bar{overflow:hidden;height:45px;line-height:45px;position:relative;background:#333;margin-bottom:0}.top-bar ul{margin-bottom:0;list-style:none}.top-bar .row{max-width:none}.top-bar form,.top-bar input{margin-bottom:0}.top-bar input{height:1.8rem;padding-top:.35rem;padding-bottom:.35rem;font-size:0.75rem}.top-bar .button,.top-bar button{padding-top:0.4125rem;padding-bottom:0.4125rem;margin-bottom:0;font-size:0.75rem}@media only screen and (max-width: 40em){.top-bar .button,.top-bar button{position:relative;top:-1px}}.top-bar .title-area{position:relative;margin:0}.top-bar .name{height:45px;margin:0;font-size:16px}.top-bar .name h1{line-height:45px;font-size:1.0625rem;margin:0}.top-bar .name h1 a{font-weight:normal;color:#fff;width:75%;display:block;padding:0 15px}.top-bar .toggle-topbar{position:absolute;right:0;top:0}.top-bar .toggle-topbar a{color:#fff;text-transform:uppercase;font-size:0.8125rem;font-weight:bold;position:relative;display:block;padding:0 15px;height:45px;line-height:45px}.top-bar .toggle-topbar.menu-icon{top:50%;margin-top:-16px}.top-bar .toggle-topbar.menu-icon a{height:34px;line-height:33px;padding:0 40px 0 15px;color:#fff;position:relative}.top-bar .toggle-topbar.menu-icon a span::after{content:"";position:absolute;display:block;height:0;top:50%;margin-top:-8px;right:15px;box-shadow:0 0px 0 1px #fff,0 7px 0 1px #fff,0 14px 0 1px #fff;width:16px}.top-bar .toggle-topbar.menu-icon a span:hover:after{box-shadow:0 0px 0 1px "",0 7px 0 1px "",0 14px 0 1px ""}.top-bar.expanded{height:auto;background:transparent}.top-bar.expanded .title-area{background:#333}.top-bar.expanded .toggle-topbar a{color:#888}.top-bar.expanded .toggle-topbar a span::after{box-shadow:0 0px 0 1px #888,0 7px 0 1px #888,0 14px 0 1px #888}.top-bar-section{left:0;position:relative;width:auto;transition:left 300ms ease-out}.top-bar-section ul{padding:0;width:100%;height:auto;display:block;font-size:16px;margin:0}.top-bar-section .divider,.top-bar-section [role="separator"]{border-top:solid 1px #1a1a1a;clear:both;height:1px;width:100%}.top-bar-section ul li{background:#333}.top-bar-section ul li>a{display:block;width:100%;color:#fff;padding:12px 0 12px 0;padding-left:15px;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:0.8125rem;font-weight:normal;text-transform:none}.top-bar-section ul li>a.button{font-size:0.8125rem;padding-right:15px;padding-left:15px;background-color:#008cba;border-color:#007095;color:#fff}.top-bar-section ul li>a.button:hover,.top-bar-section ul li>a.button:focus{background-color:#007095}.top-bar-section ul li>a.button:hover,.top-bar-section ul li>a.button:focus{color:#fff}.top-bar-section ul li>a.button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}.top-bar-section ul li>a.button.secondary:hover,.top-bar-section ul li>a.button.secondary:focus{background-color:#b9b9b9}.top-bar-section ul li>a.button.secondary:hover,.top-bar-section ul li>a.button.secondary:focus{color:#333}.top-bar-section ul li>a.button.success{background-color:#43ac6a;border-color:#368a55;color:#fff}.top-bar-section ul li>a.button.success:hover,.top-bar-section ul li>a.button.success:focus{background-color:#368a55}.top-bar-section ul li>a.button.success:hover,.top-bar-section ul li>a.button.success:focus{color:#fff}.top-bar-section ul li>a.button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}.top-bar-section ul li>a.button.alert:hover,.top-bar-section ul li>a.button.alert:focus{background-color:#cf2a0e}.top-bar-section ul li>a.button.alert:hover,.top-bar-section ul li>a.button.alert:focus{color:#fff}.top-bar-section ul li>a.button.warning{background-color:#f08a24;border-color:#cf6e0e;color:#fff}.top-bar-section ul li>a.button.warning:hover,.top-bar-section ul li>a.button.warning:focus{background-color:#cf6e0e}.top-bar-section ul li>a.button.warning:hover,.top-bar-section ul li>a.button.warning:focus{color:#fff}.top-bar-section ul li>button{font-size:0.8125rem;padding-right:15px;padding-left:15px;background-color:#008cba;border-color:#007095;color:#fff}.top-bar-section ul li>button:hover,.top-bar-section ul li>button:focus{background-color:#007095}.top-bar-section ul li>button:hover,.top-bar-section ul li>button:focus{color:#fff}.top-bar-section ul li>button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}.top-bar-section ul li>button.secondary:hover,.top-bar-section ul li>button.secondary:focus{background-color:#b9b9b9}.top-bar-section ul li>button.secondary:hover,.top-bar-section ul li>button.secondary:focus{color:#333}.top-bar-section ul li>button.success{background-color:#43ac6a;border-color:#368a55;color:#fff}.top-bar-section ul li>button.success:hover,.top-bar-section ul li>button.success:focus{background-color:#368a55}.top-bar-section ul li>button.success:hover,.top-bar-section ul li>button.success:focus{color:#fff}.top-bar-section ul li>button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}.top-bar-section ul li>button.alert:hover,.top-bar-section ul li>button.alert:focus{background-color:#cf2a0e}.top-bar-section ul li>button.alert:hover,.top-bar-section ul li>button.alert:focus{color:#fff}.top-bar-section ul li>button.warning{background-color:#f08a24;border-color:#cf6e0e;color:#fff}.top-bar-section ul li>button.warning:hover,.top-bar-section ul li>button.warning:focus{background-color:#cf6e0e}.top-bar-section ul li>button.warning:hover,.top-bar-section ul li>button.warning:focus{color:#fff}.top-bar-section ul li:hover:not(.has-form)>a{background-color:#555;background:#272727;color:#fff}.top-bar-section ul li.active>a{background:#008cba;color:#fff}.top-bar-section ul li.active>a:hover{background:#0078a0;color:#fff}.top-bar-section .has-form{padding:15px}.top-bar-section .has-dropdown{position:relative}.top-bar-section .has-dropdown>a:after{content:"";display:block;width:0;height:0;border:inset 5px;border-color:transparent transparent transparent rgba(255,255,255,0.4);border-left-style:solid;margin-right:15px;margin-top:-4.5px;position:absolute;top:50%;right:0}.top-bar-section .has-dropdown.moved{position:static}.top-bar-section .has-dropdown.moved>.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important;width:100%}.top-bar-section .has-dropdown.moved>a:after{display:none}.top-bar-section .dropdown{padding:0;position:absolute;left:100%;top:0;z-index:99;display:block;position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}.top-bar-section .dropdown li{width:100%;height:auto}.top-bar-section .dropdown li a{font-weight:normal;padding:8px 15px}.top-bar-section .dropdown li a.parent-link{font-weight:normal}.top-bar-section .dropdown li.title h5,.top-bar-section .dropdown li.parent-link{margin-bottom:0;margin-top:0;font-size:1.125rem}.top-bar-section .dropdown li.title h5 a,.top-bar-section .dropdown li.parent-link a{color:#fff;display:block}.top-bar-section .dropdown li.title h5 a:hover,.top-bar-section .dropdown li.parent-link a:hover{background:none}.top-bar-section .dropdown li.has-form{padding:8px 15px}.top-bar-section .dropdown li .button,.top-bar-section .dropdown li button{top:auto}.top-bar-section .dropdown label{padding:8px 15px 2px;margin-bottom:0;text-transform:uppercase;color:#777;font-weight:bold;font-size:0.625rem}.js-generated{display:block}@media only screen and (min-width: 40.063em){.top-bar{background:#333;overflow:visible}.top-bar:before,.top-bar:after{content:" ";display:table}.top-bar:after{clear:both}.top-bar .toggle-topbar{display:none}.top-bar .title-area{float:left}.top-bar .name h1 a{width:auto}.top-bar input,.top-bar .button,.top-bar button{font-size:0.875rem;position:relative;top:7px}.top-bar.expanded{background:#333}.contain-to-grid .top-bar{max-width:62.5rem;margin:0 auto;margin-bottom:0}.top-bar-section{transition:none 0 0;left:0 !important}.top-bar-section ul{width:auto;height:auto !important;display:inline}.top-bar-section ul li{float:left}.top-bar-section ul li .js-generated{display:none}.top-bar-section li.hover>a:not(.button){background-color:#555;background:#272727;color:#fff}.top-bar-section li:not(.has-form) a:not(.button){padding:0 15px;line-height:45px;background:#333}.top-bar-section li:not(.has-form) a:not(.button):hover{background-color:#555;background:#272727}.top-bar-section li.active:not(.has-form) a:not(.button){padding:0 15px;line-height:45px;color:#fff;background:#008cba}.top-bar-section li.active:not(.has-form) a:not(.button):hover{background:#0078a0;color:#fff}.top-bar-section .has-dropdown>a{padding-right:35px !important}.top-bar-section .has-dropdown>a:after{content:"";display:block;width:0;height:0;border:inset 5px;border-color:rgba(255,255,255,0.4) transparent transparent transparent;border-top-style:solid;margin-top:-2.5px;top:22.5px}.top-bar-section .has-dropdown.moved{position:relative}.top-bar-section .has-dropdown.moved>.dropdown{display:block;position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}.top-bar-section .has-dropdown.hover>.dropdown,.top-bar-section .has-dropdown.not-click:hover>.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important}.top-bar-section .has-dropdown>a:focus+.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important}.top-bar-section .has-dropdown .dropdown li.has-dropdown>a:after{border:none;content:"\00bb";top:1rem;margin-top:-1px;right:5px;line-height:1.2}.top-bar-section .dropdown{left:0;top:auto;background:transparent;min-width:100%}.top-bar-section .dropdown li a{color:#fff;line-height:45px;white-space:nowrap;padding:12px 15px;background:#333}.top-bar-section .dropdown li:not(.has-form):not(.active)>a:not(.button){color:#fff;background:#333}.top-bar-section .dropdown li:not(.has-form):not(.active):hover>a:not(.button){color:#fff;background-color:#555;background:#272727}.top-bar-section .dropdown li label{white-space:nowrap;background:#333}.top-bar-section .dropdown li .dropdown{left:100%;top:0}.top-bar-section>ul>.divider,.top-bar-section>ul>[role="separator"]{border-bottom:none;border-top:none;border-right:solid 1px #4e4e4e;clear:none;height:45px;width:0}.top-bar-section .has-form{background:#333;padding:0 15px;height:45px}.top-bar-section .right li .dropdown{left:auto;right:0}.top-bar-section .right li .dropdown li .dropdown{right:100%}.top-bar-section .left li .dropdown{right:auto;left:0}.top-bar-section .left li .dropdown li .dropdown{left:100%}.no-js .top-bar-section ul li:hover>a{background-color:#555;background:#272727;color:#fff}.no-js .top-bar-section ul li:active>a{background:#008cba;color:#fff}.no-js .top-bar-section .has-dropdown:hover>.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important}.no-js .top-bar-section .has-dropdown>a:focus+.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important}}.breadcrumbs{display:block;padding:0.5625rem 0.875rem 0.5625rem;overflow:hidden;margin-left:0;list-style:none;border-style:solid;border-width:1px;background-color:#f4f4f4;border-color:#dcdcdc;border-radius:3px}.breadcrumbs>*{margin:0;float:left;font-size:0.6875rem;line-height:0.6875rem;text-transform:uppercase;color:#008cba}.breadcrumbs>*:hover a,.breadcrumbs>*:focus a{text-decoration:underline}.breadcrumbs>* a{color:#008cba}.breadcrumbs>*.current{cursor:default;color:#333}.breadcrumbs>*.current a{cursor:default;color:#333}.breadcrumbs>*.current:hover,.breadcrumbs>*.current:hover a,.breadcrumbs>*.current:focus,.breadcrumbs>*.current:focus a{text-decoration:none}.breadcrumbs>*.unavailable{color:#999}.breadcrumbs>*.unavailable a{color:#999}.breadcrumbs>*.unavailable:hover,.breadcrumbs>*.unavailable:hover a,.breadcrumbs>*.unavailable:focus,.breadcrumbs>*.unavailable a:focus{text-decoration:none;color:#999;cursor:default}.breadcrumbs>*:before{content:"/";color:#aaa;margin:0 0.75rem;position:relative;top:1px}.breadcrumbs>*:first-child:before{content:" ";margin:0}[aria-label="breadcrumbs"] [aria-hidden="true"]:after{content:"/"}.alert-box{border-style:solid;border-width:1px;display:block;font-weight:normal;margin-bottom:1.25rem;position:relative;padding:0.875rem 1.5rem 0.875rem 0.875rem;font-size:0.8125rem;transition:opacity 300ms ease-out;background-color:#008cba;border-color:#0078a0;color:#fff}.alert-box .close{font-size:1.375rem;padding:9px 6px 4px;line-height:0;position:absolute;top:50%;margin-top:-0.6875rem;right:0.25rem;color:#333;opacity:0.3;background:inherit}.alert-box .close:hover,.alert-box .close:focus{opacity:0.5}.alert-box.radius{border-radius:3px}.alert-box.round{border-radius:1000px}.alert-box.success{background-color:#43ac6a;border-color:#3a945b;color:#fff}.alert-box.alert{background-color:#f04124;border-color:#de2d0f;color:#fff}.alert-box.secondary{background-color:#e7e7e7;border-color:#c7c7c7;color:#4f4f4f}.alert-box.warning{background-color:#f08a24;border-color:#de770f;color:#fff}.alert-box.info{background-color:#a0d3e8;border-color:#74bfdd;color:#4f4f4f}.alert-box.alert-close{opacity:0}.inline-list{margin:0 auto 1.0625rem auto;margin-left:-1.375rem;margin-right:0;padding:0;list-style:none;overflow:hidden}.inline-list>li{list-style:none;float:left;margin-left:1.375rem;display:block}.inline-list>li>*{display:block}.button-group{list-style:none;margin:0;left:0}.button-group:before,.button-group:after{content:" ";display:table}.button-group:after{clear:both}.button-group>li{margin:0 -2px;display:inline-block}.button-group>li>button,.button-group>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group>li:first-child button,.button-group>li:first-child .button{border-left:0}.button-group.stack>li{margin:0 -2px;display:inline-block;display:block;margin:0;float:none}.button-group.stack>li>button,.button-group.stack>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack>li:first-child button,.button-group.stack>li:first-child .button{border-left:0}.button-group.stack>li>button,.button-group.stack>li .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.stack>li:first-child button,.button-group.stack>li:first-child .button{border-top:0}.button-group.stack-for-small>li{margin:0 -2px;display:inline-block}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-left:0}@media only screen and (max-width: 40em){.button-group.stack-for-small>li{margin:0 -2px;display:inline-block;display:block;margin:0}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-left:0}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-top:0}}.button-group.radius>*{margin:0 -2px;display:inline-block}.button-group.radius>*>button,.button-group.radius>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius>*:first-child button,.button-group.radius>*:first-child .button{border-left:0}.button-group.radius>*,.button-group.radius>*>a,.button-group.radius>*>button,.button-group.radius>*>.button{border-radius:0}.button-group.radius>*:first-child,.button-group.radius>*:first-child>a,.button-group.radius>*:first-child>button,.button-group.radius>*:first-child>.button{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.button-group.radius>*:last-child,.button-group.radius>*:last-child>a,.button-group.radius>*:last-child>button,.button-group.radius>*:last-child>.button{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.button-group.radius.stack>*{margin:0 -2px;display:inline-block;display:block;margin:0}.button-group.radius.stack>*>button,.button-group.radius.stack>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack>*:first-child button,.button-group.radius.stack>*:first-child .button{border-left:0}.button-group.radius.stack>*>button,.button-group.radius.stack>* .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.radius.stack>*:first-child button,.button-group.radius.stack>*:first-child .button{border-top:0}.button-group.radius.stack>*,.button-group.radius.stack>*>a,.button-group.radius.stack>*>button,.button-group.radius.stack>*>.button{border-radius:0}.button-group.radius.stack>*:first-child,.button-group.radius.stack>*:first-child>a,.button-group.radius.stack>*:first-child>button,.button-group.radius.stack>*:first-child>.button{-webkit-top-left-radius:3px;-webkit-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.button-group.radius.stack>*:last-child,.button-group.radius.stack>*:last-child>a,.button-group.radius.stack>*:last-child>button,.button-group.radius.stack>*:last-child>.button{-webkit-bottom-left-radius:3px;-webkit-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}@media only screen and (min-width: 40.063em){.button-group.radius.stack-for-small>*{margin:0 -2px;display:inline-block}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-left:0}.button-group.radius.stack-for-small>*,.button-group.radius.stack-for-small>*>a,.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>*>.button{border-radius:0}.button-group.radius.stack-for-small>*:first-child,.button-group.radius.stack-for-small>*:first-child>a,.button-group.radius.stack-for-small>*:first-child>button,.button-group.radius.stack-for-small>*:first-child>.button{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.button-group.radius.stack-for-small>*:last-child,.button-group.radius.stack-for-small>*:last-child>a,.button-group.radius.stack-for-small>*:last-child>button,.button-group.radius.stack-for-small>*:last-child>.button{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}}@media only screen and (max-width: 40em){.button-group.radius.stack-for-small>*{margin:0 -2px;display:inline-block;display:block;margin:0}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-left:0}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-top:0}.button-group.radius.stack-for-small>*,.button-group.radius.stack-for-small>*>a,.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>*>.button{border-radius:0}.button-group.radius.stack-for-small>*:first-child,.button-group.radius.stack-for-small>*:first-child>a,.button-group.radius.stack-for-small>*:first-child>button,.button-group.radius.stack-for-small>*:first-child>.button{-webkit-top-left-radius:3px;-webkit-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.button-group.radius.stack-for-small>*:last-child,.button-group.radius.stack-for-small>*:last-child>a,.button-group.radius.stack-for-small>*:last-child>button,.button-group.radius.stack-for-small>*:last-child>.button{-webkit-bottom-left-radius:3px;-webkit-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}}.button-group.round>*{margin:0 -2px;display:inline-block}.button-group.round>*>button,.button-group.round>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round>*:first-child button,.button-group.round>*:first-child .button{border-left:0}.button-group.round>*,.button-group.round>*>a,.button-group.round>*>button,.button-group.round>*>.button{border-radius:0}.button-group.round>*:first-child,.button-group.round>*:first-child>a,.button-group.round>*:first-child>button,.button-group.round>*:first-child>.button{-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.button-group.round>*:last-child,.button-group.round>*:last-child>a,.button-group.round>*:last-child>button,.button-group.round>*:last-child>.button{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}.button-group.round.stack>*{margin:0 -2px;display:inline-block;display:block;margin:0}.button-group.round.stack>*>button,.button-group.round.stack>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack>*:first-child button,.button-group.round.stack>*:first-child .button{border-left:0}.button-group.round.stack>*>button,.button-group.round.stack>* .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.round.stack>*:first-child button,.button-group.round.stack>*:first-child .button{border-top:0}.button-group.round.stack>*,.button-group.round.stack>*>a,.button-group.round.stack>*>button,.button-group.round.stack>*>.button{border-radius:0}.button-group.round.stack>*:first-child,.button-group.round.stack>*:first-child>a,.button-group.round.stack>*:first-child>button,.button-group.round.stack>*:first-child>.button{-webkit-top-left-radius:1rem;-webkit-top-right-radius:1rem;border-top-left-radius:1rem;border-top-right-radius:1rem}.button-group.round.stack>*:last-child,.button-group.round.stack>*:last-child>a,.button-group.round.stack>*:last-child>button,.button-group.round.stack>*:last-child>.button{-webkit-bottom-left-radius:1rem;-webkit-bottom-right-radius:1rem;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}@media only screen and (min-width: 40.063em){.button-group.round.stack-for-small>*{margin:0 -2px;display:inline-block}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-left:0}.button-group.round.stack-for-small>*,.button-group.round.stack-for-small>*>a,.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>*>.button{border-radius:0}.button-group.round.stack-for-small>*:first-child,.button-group.round.stack-for-small>*:first-child>a,.button-group.round.stack-for-small>*:first-child>button,.button-group.round.stack-for-small>*:first-child>.button{-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.button-group.round.stack-for-small>*:last-child,.button-group.round.stack-for-small>*:last-child>a,.button-group.round.stack-for-small>*:last-child>button,.button-group.round.stack-for-small>*:last-child>.button{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}}@media only screen and (max-width: 40em){.button-group.round.stack-for-small>*{margin:0 -2px;display:inline-block;display:block;margin:0}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-left:0}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-top:1px solid;border-color:rgba(255,255,255,0.5);border-left-width:0px;margin:0;display:block}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-top:0}.button-group.round.stack-for-small>*,.button-group.round.stack-for-small>*>a,.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>*>.button{border-radius:0}.button-group.round.stack-for-small>*:first-child,.button-group.round.stack-for-small>*:first-child>a,.button-group.round.stack-for-small>*:first-child>button,.button-group.round.stack-for-small>*:first-child>.button{-webkit-top-left-radius:1rem;-webkit-top-right-radius:1rem;border-top-left-radius:1rem;border-top-right-radius:1rem}.button-group.round.stack-for-small>*:last-child,.button-group.round.stack-for-small>*:last-child>a,.button-group.round.stack-for-small>*:last-child>button,.button-group.round.stack-for-small>*:last-child>.button{-webkit-bottom-left-radius:1rem;-webkit-bottom-right-radius:1rem;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}}.button-group.even-2 li{margin:0 -2px;display:inline-block;width:50%}.button-group.even-2 li>button,.button-group.even-2 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-2 li:first-child button,.button-group.even-2 li:first-child .button{border-left:0}.button-group.even-2 li button,.button-group.even-2 li .button{width:100%}.button-group.even-3 li{margin:0 -2px;display:inline-block;width:33.33333%}.button-group.even-3 li>button,.button-group.even-3 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-3 li:first-child button,.button-group.even-3 li:first-child .button{border-left:0}.button-group.even-3 li button,.button-group.even-3 li .button{width:100%}.button-group.even-4 li{margin:0 -2px;display:inline-block;width:25%}.button-group.even-4 li>button,.button-group.even-4 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-4 li:first-child button,.button-group.even-4 li:first-child .button{border-left:0}.button-group.even-4 li button,.button-group.even-4 li .button{width:100%}.button-group.even-5 li{margin:0 -2px;display:inline-block;width:20%}.button-group.even-5 li>button,.button-group.even-5 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-5 li:first-child button,.button-group.even-5 li:first-child .button{border-left:0}.button-group.even-5 li button,.button-group.even-5 li .button{width:100%}.button-group.even-6 li{margin:0 -2px;display:inline-block;width:16.66667%}.button-group.even-6 li>button,.button-group.even-6 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-6 li:first-child button,.button-group.even-6 li:first-child .button{border-left:0}.button-group.even-6 li button,.button-group.even-6 li .button{width:100%}.button-group.even-7 li{margin:0 -2px;display:inline-block;width:14.28571%}.button-group.even-7 li>button,.button-group.even-7 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-7 li:first-child button,.button-group.even-7 li:first-child .button{border-left:0}.button-group.even-7 li button,.button-group.even-7 li .button{width:100%}.button-group.even-8 li{margin:0 -2px;display:inline-block;width:12.5%}.button-group.even-8 li>button,.button-group.even-8 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-8 li:first-child button,.button-group.even-8 li:first-child .button{border-left:0}.button-group.even-8 li button,.button-group.even-8 li .button{width:100%}.button-bar:before,.button-bar:after{content:" ";display:table}.button-bar:after{clear:both}.button-bar .button-group{float:left;margin-right:0.625rem}.button-bar .button-group div{overflow:hidden}.panel{border-style:solid;border-width:1px;border-color:#d8d8d8;margin-bottom:1.25rem;padding:1.25rem;background:#f2f2f2;color:#333}.panel>:first-child{margin-top:0}.panel>:last-child{margin-bottom:0}.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,.panel h6,.panel p,.panel li,.panel dl{color:#333}.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,.panel h6{line-height:1;margin-bottom:0.625rem}.panel h1.subheader,.panel h2.subheader,.panel h3.subheader,.panel h4.subheader,.panel h5.subheader,.panel h6.subheader{line-height:1.4}.panel.callout{border-style:solid;border-width:1px;border-color:#b6edff;margin-bottom:1.25rem;padding:1.25rem;background:#ecfaff;color:#333}.panel.callout>:first-child{margin-top:0}.panel.callout>:last-child{margin-bottom:0}.panel.callout h1,.panel.callout h2,.panel.callout h3,.panel.callout h4,.panel.callout h5,.panel.callout h6,.panel.callout p,.panel.callout li,.panel.callout dl{color:#333}.panel.callout h1,.panel.callout h2,.panel.callout h3,.panel.callout h4,.panel.callout h5,.panel.callout h6{line-height:1;margin-bottom:0.625rem}.panel.callout h1.subheader,.panel.callout h2.subheader,.panel.callout h3.subheader,.panel.callout h4.subheader,.panel.callout h5.subheader,.panel.callout h6.subheader{line-height:1.4}.panel.callout a:not(.button){color:#008cba}.panel.radius{border-radius:3px}.dropdown.button,button.dropdown{position:relative;outline:none;padding-right:3.5625rem}.dropdown.button::after,button.dropdown::after{position:absolute;content:"";width:0;height:0;display:block;border-style:solid;border-color:#fff transparent transparent transparent;top:50%}.dropdown.button::after,button.dropdown::after{border-width:0.375rem;right:1.40625rem;margin-top:-0.15625rem}.dropdown.button::after,button.dropdown::after{border-color:#fff transparent transparent transparent}.dropdown.button.tiny,button.dropdown.tiny{padding-right:2.625rem}.dropdown.button.tiny:after,button.dropdown.tiny:after{border-width:0.375rem;right:1.125rem;margin-top:-0.125rem}.dropdown.button.tiny::after,button.dropdown.tiny::after{border-color:#fff transparent transparent transparent}.dropdown.button.small,button.dropdown.small{padding-right:3.0625rem}.dropdown.button.small::after,button.dropdown.small::after{border-width:0.4375rem;right:1.3125rem;margin-top:-0.15625rem}.dropdown.button.small::after,button.dropdown.small::after{border-color:#fff transparent transparent transparent}.dropdown.button.large,button.dropdown.large{padding-right:3.625rem}.dropdown.button.large::after,button.dropdown.large::after{border-width:0.3125rem;right:1.71875rem;margin-top:-0.15625rem}.dropdown.button.large::after,button.dropdown.large::after{border-color:#fff transparent transparent transparent}.dropdown.button.secondary:after,button.dropdown.secondary:after{border-color:#333 transparent transparent transparent}.th{line-height:0;display:inline-block;border:solid 4px #fff;max-width:100%;box-shadow:0 0 0 1px rgba(0,0,0,0.2);transition:all 200ms ease-out}.th:hover,.th:focus{box-shadow:0 0 6px 1px rgba(0,140,186,0.5)}.th.radius{border-radius:3px}.toolbar{background:#333;width:100%;font-size:0;display:inline-block}.toolbar.label-bottom .tab .tab-content i,.toolbar.label-bottom .tab .tab-content img{margin-bottom:10px}.toolbar.label-right .tab .tab-content i,.toolbar.label-right .tab .tab-content img{margin-right:10px;display:inline-block}.toolbar.label-right .tab .tab-content label{display:inline-block}.toolbar.vertical.label-right .tab .tab-content{text-align:left}.toolbar.vertical{height:100%;width:auto}.toolbar.vertical .tab{width:auto;margin:auto;float:none}.toolbar .tab{text-align:center;width:25%;margin:0 auto;display:block;padding:20px;float:left}.toolbar .tab:hover{background:rgba(255,255,255,0.1)}.toolbar .tab-content{font-size:16px;text-align:center}.toolbar .tab-content label{color:#ccc}.toolbar .tab-content i{font-size:30px;display:block;margin:0 auto;color:#ccc;vertical-align:middle}.toolbar .tab-content img{width:30px;height:30px;display:block;margin:0 auto}.pricing-table{border:solid 1px #ddd;margin-left:0;margin-bottom:1.25rem}.pricing-table *{list-style:none;line-height:1}.pricing-table .title{background-color:#333;padding:0.9375rem 1.25rem;text-align:center;color:#eee;font-weight:normal;font-size:1rem;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif}.pricing-table .price{background-color:#f6f6f6;padding:0.9375rem 1.25rem;text-align:center;color:#333;font-weight:normal;font-size:2rem;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif}.pricing-table .description{background-color:#fff;padding:0.9375rem;text-align:center;color:#777;font-size:0.75rem;font-weight:normal;line-height:1.4;border-bottom:dotted 1px #ddd}.pricing-table .bullet-item{background-color:#fff;padding:0.9375rem;text-align:center;color:#333;font-size:0.875rem;font-weight:normal;border-bottom:dotted 1px #ddd}.pricing-table .cta-button{background-color:#fff;text-align:center;padding:1.25rem 1.25rem 0}@-webkit-keyframes rotate{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@-moz-keyframes rotate{from{-moz-transform:rotate(0deg)}to{-moz-transform:rotate(360deg)}}@-o-keyframes rotate{from{-o-transform:rotate(0deg)}to{-o-transform:rotate(360deg)}}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.slideshow-wrapper{position:relative}.slideshow-wrapper ul{list-style-type:none;margin:0}.slideshow-wrapper ul li,.slideshow-wrapper ul li .orbit-caption{display:none}.slideshow-wrapper ul li:first-child{display:block}.slideshow-wrapper .orbit-container{background-color:transparent}.slideshow-wrapper .orbit-container li{display:block}.slideshow-wrapper .orbit-container li .orbit-caption{display:block}.slideshow-wrapper .orbit-container .orbit-bullets li{display:inline-block}.slideshow-wrapper .preloader{display:block;width:40px;height:40px;position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-20px;border:solid 3px;border-color:#555 #fff;border-radius:1000px;animation-name:rotate;animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:linear}.orbit-container{overflow:hidden;width:100%;position:relative;background:none}.orbit-container .orbit-slides-container{list-style:none;margin:0;padding:0;position:relative;-webkit-transform:translateZ(0)}.orbit-container .orbit-slides-container img{display:block;max-width:100%}.orbit-container .orbit-slides-container>*{position:absolute;top:0;width:100%;margin-left:100%}.orbit-container .orbit-slides-container>*:first-child{margin-left:0%}.orbit-container .orbit-slides-container>* .orbit-caption{position:absolute;bottom:0;background-color:rgba(51,51,51,0.8);color:#fff;width:100%;padding:0.625rem 0.875rem;font-size:0.875rem}.orbit-container .orbit-slide-number{position:absolute;top:10px;left:10px;font-size:12px;color:#fff;background:rgba(0,0,0,0);z-index:10}.orbit-container .orbit-slide-number span{font-weight:700;padding:0.3125rem}.orbit-container .orbit-timer{position:absolute;top:12px;right:10px;height:6px;width:100px;z-index:10}.orbit-container .orbit-timer .orbit-progress{height:3px;background-color:rgba(255,255,255,0.3);display:block;width:0%;position:relative;right:20px;top:5px}.orbit-container .orbit-timer>span{display:none;position:absolute;top:0px;right:0;width:11px;height:14px;border:solid 4px #fff;border-top:none;border-bottom:none}.orbit-container .orbit-timer.paused>span{right:-4px;top:0px;width:11px;height:14px;border:inset 8px;border-left-style:solid;border-color:transparent;border-left-color:#fff}.orbit-container .orbit-timer.paused>span.dark{border-left-color:#333}.orbit-container:hover .orbit-timer>span{display:block}.orbit-container .orbit-prev,.orbit-container .orbit-next{position:absolute;top:45%;margin-top:-25px;width:36px;height:60px;line-height:50px;color:white;background-color:transparent;text-indent:-9999px !important;z-index:10}.orbit-container .orbit-prev:hover,.orbit-container .orbit-next:hover{background-color:rgba(0,0,0,0.3)}.orbit-container .orbit-prev>span,.orbit-container .orbit-next>span{position:absolute;top:50%;margin-top:-10px;display:block;width:0;height:0;border:inset 10px}.orbit-container .orbit-prev{left:0}.orbit-container .orbit-prev>span{border-right-style:solid;border-color:transparent;border-right-color:#fff}.orbit-container .orbit-prev:hover>span{border-right-color:#fff}.orbit-container .orbit-next{right:0}.orbit-container .orbit-next>span{border-color:transparent;border-left-style:solid;border-left-color:#fff;left:50%;margin-left:-4px}.orbit-container .orbit-next:hover>span{border-left-color:#fff}.orbit-bullets-container{text-align:center}.orbit-bullets{margin:0 auto 30px auto;overflow:hidden;position:relative;top:10px;float:none;text-align:center;display:block}.orbit-bullets li{cursor:pointer;display:inline-block;width:0.5625rem;height:0.5625rem;background:#ccc;float:none;margin-right:6px;border-radius:1000px}.orbit-bullets li.active{background:#999}.orbit-bullets li:last-child{margin-right:0}.touch .orbit-container .orbit-prev,.touch .orbit-container .orbit-next{display:none}.touch .orbit-bullets{display:none}@media only screen and (min-width: 40.063em){.touch .orbit-container .orbit-prev,.touch .orbit-container .orbit-next{display:inherit}.touch .orbit-bullets{display:block}}@media only screen and (max-width: 40em){.orbit-stack-on-small .orbit-slides-container{height:auto !important}.orbit-stack-on-small .orbit-slides-container>*{position:relative;margin:0% !important;opacity:1 !important}.orbit-stack-on-small .orbit-slide-number{display:none}.orbit-timer{display:none}.orbit-next,.orbit-prev{display:none}.orbit-bullets{display:none}}[data-magellan-expedition],[data-magellan-expedition-clone]{background:#fff;z-index:50;min-width:100%;padding:10px}[data-magellan-expedition] .sub-nav,[data-magellan-expedition-clone] .sub-nav{margin-bottom:0}[data-magellan-expedition] .sub-nav dd,[data-magellan-expedition-clone] .sub-nav dd{margin-bottom:0}[data-magellan-expedition] .sub-nav a,[data-magellan-expedition-clone] .sub-nav a{line-height:1.8em}.icon-bar{width:100%;font-size:0;display:inline-block;background:#333}.icon-bar>*{text-align:center;font-size:1rem;width:25%;margin:0 auto;display:block;padding:1.25rem;float:left}.icon-bar>* i,.icon-bar>* img{display:block;margin:0 auto}.icon-bar>* i+label,.icon-bar>* img+label{margin-top:.0625rem}.icon-bar>* i{font-size:1.875rem;vertical-align:middle}.icon-bar>* img{width:1.875rem;height:1.875rem}.icon-bar.label-right>* i,.icon-bar.label-right>* img{margin:0 .0625rem 0 0;display:inline-block}.icon-bar.label-right>* i+label,.icon-bar.label-right>* img+label{margin-top:0}.icon-bar.label-right>* label{display:inline-block}.icon-bar.vertical.label-right>*{text-align:left}.icon-bar.vertical,.icon-bar.small-vertical{height:100%;width:auto}.icon-bar.vertical .item,.icon-bar.small-vertical .item{width:auto;margin:auto;float:none}@media only screen and (min-width: 40.063em){.icon-bar.medium-vertical{height:100%;width:auto}.icon-bar.medium-vertical .item{width:auto;margin:auto;float:none}}@media only screen and (min-width: 64.063em){.icon-bar.large-vertical{height:100%;width:auto}.icon-bar.large-vertical .item{width:auto;margin:auto;float:none}}.icon-bar>*{font-size:1rem;padding:1.25rem}.icon-bar>* i+label,.icon-bar>* img+label{margin-top:.0625rem}.icon-bar>* i{font-size:1.875rem}.icon-bar>* img{width:1.875rem;height:1.875rem}.icon-bar>*:hover{background:#008cba}.icon-bar>* label{color:#fff}.icon-bar>* i{color:#fff}.icon-bar.two-up .item{width:50%}.icon-bar.two-up.vertical .item,.icon-bar.two-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.063em){.icon-bar.two-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.063em){.icon-bar.two-up.large-vertical .item{width:auto}}.icon-bar.three-up .item{width:33.3333%}.icon-bar.three-up.vertical .item,.icon-bar.three-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.063em){.icon-bar.three-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.063em){.icon-bar.three-up.large-vertical .item{width:auto}}.icon-bar.four-up .item{width:25%}.icon-bar.four-up.vertical .item,.icon-bar.four-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.063em){.icon-bar.four-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.063em){.icon-bar.four-up.large-vertical .item{width:auto}}.icon-bar.five-up .item{width:20%}.icon-bar.five-up.vertical .item,.icon-bar.five-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.063em){.icon-bar.five-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.063em){.icon-bar.five-up.large-vertical .item{width:auto}}.icon-bar.six-up .item{width:16.66667%}.icon-bar.six-up.vertical .item,.icon-bar.six-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.063em){.icon-bar.six-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.063em){.icon-bar.six-up.large-vertical .item{width:auto}}.tabs{margin-bottom:0 !important;margin-left:0}.tabs:before,.tabs:after{content:" ";display:table}.tabs:after{clear:both}.tabs dd,.tabs .tab-title{position:relative;margin-bottom:0 !important;list-style:none;float:left}.tabs dd>a,.tabs .tab-title>a{outline:none;display:block;background-color:#efefef;color:#222;padding:1rem 2rem;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:1rem}.tabs dd>a:hover,.tabs .tab-title>a:hover{background-color:#e1e1e1}.tabs dd.active a,.tabs .tab-title.active a{background-color:#fff;color:#222}.tabs.radius dd:first-child a,.tabs.radius .tab:first-child a{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.tabs.radius dd:last-child a,.tabs.radius .tab:last-child a{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.tabs.vertical dd,.tabs.vertical .tab-title{position:inherit;float:none;display:block;top:auto}.tabs-content{margin-bottom:1.5rem;width:100%}.tabs-content:before,.tabs-content:after{content:" ";display:table}.tabs-content:after{clear:both}.tabs-content>.content{display:none;float:left;padding:0.9375rem 0;width:100%}.tabs-content>.content.active{display:block;float:none}.tabs-content>.content.contained{padding:0.9375rem}.tabs-content.vertical{display:block}.tabs-content.vertical>.content{padding:0 0.9375rem}@media only screen and (min-width: 40.063em){.tabs.vertical{width:20%;max-width:20%;float:left;margin:0 0 1.25rem}.tabs-content.vertical{width:80%;max-width:80%;float:left;margin-left:-1px;padding-left:1rem}}.no-js .tabs-content>.content{display:block;float:none}ul.pagination{display:block;min-height:1.5rem;margin-left:-0.3125rem}ul.pagination li{height:1.5rem;color:#222;font-size:0.875rem;margin-left:0.3125rem}ul.pagination li a,ul.pagination li button{display:block;padding:0.0625rem 0.625rem 0.0625rem;color:#999;background:none;border-radius:3px;font-weight:normal;font-size:1em;line-height:inherit;transition:background-color 300ms ease-out}ul.pagination li:hover a,ul.pagination li a:focus,ul.pagination li:hover button,ul.pagination li button:focus{background:#e6e6e6}ul.pagination li.unavailable a,ul.pagination li.unavailable button{cursor:default;color:#999}ul.pagination li.unavailable:hover a,ul.pagination li.unavailable a:focus,ul.pagination li.unavailable:hover button,ul.pagination li.unavailable button:focus{background:transparent}ul.pagination li.current a,ul.pagination li.current button{background:#008cba;color:#fff;font-weight:bold;cursor:default}ul.pagination li.current a:hover,ul.pagination li.current a:focus,ul.pagination li.current button:hover,ul.pagination li.current button:focus{background:#008cba}ul.pagination li{float:left;display:block}.pagination-centered{text-align:center}.pagination-centered ul.pagination li{float:none;display:inline-block}.side-nav{display:block;margin:0;padding:0.875rem 0;list-style-type:none;list-style-position:outside;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif}.side-nav li{margin:0 0 0.4375rem 0;font-size:0.875rem;font-weight:normal}.side-nav li a:not(.button){display:block;color:#008cba;margin:0;padding:0.4375rem 0.875rem}.side-nav li a:not(.button):hover,.side-nav li a:not(.button):focus{background:rgba(0,0,0,0.025);color:#1cc7ff}.side-nav li.active>a:first-child:not(.button){color:#1cc7ff;font-weight:normal;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif}.side-nav li.divider{border-top:1px solid;height:0;padding:0;list-style:none;border-top-color:#fff}.side-nav li.heading{color:#008cba;font-size:0.875rem;font-weight:bold;text-transform:uppercase}.accordion{margin-bottom:0}.accordion:before,.accordion:after{content:" ";display:table}.accordion:after{clear:both}.accordion .accordion-navigation,.accordion dd{display:block;margin-bottom:0 !important}.accordion .accordion-navigation.active>a,.accordion dd.active>a{background:#e8e8e8}.accordion .accordion-navigation>a,.accordion dd>a{background:#efefef;color:#222;padding:1rem;display:block;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:1rem}.accordion .accordion-navigation>a:hover,.accordion dd>a:hover{background:#e3e3e3}.accordion .accordion-navigation>.content,.accordion dd>.content{display:none;padding:0.9375rem}.accordion .accordion-navigation>.content.active,.accordion dd>.content.active{display:block;background:#fff}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}.text-justify{text-align:justify !important}@media only screen and (max-width: 40em){.small-only-text-left{text-align:left !important}.small-only-text-right{text-align:right !important}.small-only-text-center{text-align:center !important}.small-only-text-justify{text-align:justify !important}}@media only screen{.small-text-left{text-align:left !important}.small-text-right{text-align:right !important}.small-text-center{text-align:center !important}.small-text-justify{text-align:justify !important}}@media only screen and (min-width: 40.063em) and (max-width: 64em){.medium-only-text-left{text-align:left !important}.medium-only-text-right{text-align:right !important}.medium-only-text-center{text-align:center !important}.medium-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 40.063em){.medium-text-left{text-align:left !important}.medium-text-right{text-align:right !important}.medium-text-center{text-align:center !important}.medium-text-justify{text-align:justify !important}}@media only screen and (min-width: 64.063em) and (max-width: 90em){.large-only-text-left{text-align:left !important}.large-only-text-right{text-align:right !important}.large-only-text-center{text-align:center !important}.large-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 64.063em){.large-text-left{text-align:left !important}.large-text-right{text-align:right !important}.large-text-center{text-align:center !important}.large-text-justify{text-align:justify !important}}@media only screen and (min-width: 90.063em) and (max-width: 120em){.xlarge-only-text-left{text-align:left !important}.xlarge-only-text-right{text-align:right !important}.xlarge-only-text-center{text-align:center !important}.xlarge-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 90.063em){.xlarge-text-left{text-align:left !important}.xlarge-text-right{text-align:right !important}.xlarge-text-center{text-align:center !important}.xlarge-text-justify{text-align:justify !important}}@media only screen and (min-width: 120.063em) and (max-width: 99999999em){.xxlarge-only-text-left{text-align:left !important}.xxlarge-only-text-right{text-align:right !important}.xxlarge-only-text-center{text-align:center !important}.xxlarge-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 120.063em){.xxlarge-text-left{text-align:left !important}.xxlarge-text-right{text-align:right !important}.xxlarge-text-center{text-align:center !important}.xxlarge-text-justify{text-align:justify !important}}div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}a{color:#008cba;text-decoration:none;line-height:inherit}a:hover,a:focus{color:#0078a0}a img{border:none}p{font-family:inherit;font-weight:normal;font-size:1rem;line-height:1.6;margin-bottom:1.25rem;text-rendering:optimizeLegibility}p.lead{font-size:1.21875rem;line-height:1.6}p aside{font-size:0.875rem;line-height:1.35;font-style:italic}h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;font-style:normal;color:#222;text-rendering:optimizeLegibility;margin-top:0.2rem;margin-bottom:0.5rem;line-height:1.4}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-size:60%;color:#6f6f6f;line-height:0}h1{font-size:2.125rem}h2{font-size:1.6875rem}h3{font-size:1.375rem}h4{font-size:1.125rem}h5{font-size:1.125rem}h6{font-size:1rem}.subheader{line-height:1.4;color:#6f6f6f;font-weight:normal;margin-top:0.2rem;margin-bottom:0.5rem}hr{border:solid #ddd;border-width:1px 0 0;clear:both;margin:1.25rem 0 1.1875rem;height:0}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:bold;line-height:inherit}small{font-size:60%;line-height:inherit}code{font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:normal;color:#333;background-color:#f8f8f8;border-width:1px;border-style:solid;border-color:#dfdfdf;padding:0.125rem 0.3125rem 0.0625rem}ul,ol,dl{font-size:1rem;line-height:1.6;margin-bottom:1.25rem;list-style-position:outside;font-family:inherit}ul{margin-left:1.1rem}ul.no-bullet{margin-left:0}ul.no-bullet li ul,ul.no-bullet li ol{margin-left:1.25rem;margin-bottom:0;list-style:none}ul li ul,ul li ol{margin-left:1.25rem;margin-bottom:0}ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}ul.square{list-style-type:square;margin-left:1.1rem}ul.circle{list-style-type:circle;margin-left:1.1rem}ul.disc{list-style-type:disc;margin-left:1.1rem}ul.no-bullet{list-style:none}ol{margin-left:1.4rem}ol li ul,ol li ol{margin-left:1.25rem;margin-bottom:0}dl dt{margin-bottom:0.3rem;font-weight:bold}dl dd{margin-bottom:0.75rem}abbr,acronym{text-transform:uppercase;font-size:90%;color:#222;cursor:help}abbr{text-transform:none}abbr[title]{border-bottom:1px dotted #ddd}blockquote{margin:0 0 1.25rem;padding:0.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #ddd}blockquote cite{display:block;font-size:0.8125rem;color:#555}blockquote cite:before{content:"\2014 \0020"}blockquote cite a,blockquote cite a:visited{color:#555}blockquote,blockquote p{line-height:1.6;color:#6f6f6f}.vcard{display:inline-block;margin:0 0 1.25rem 0;border:1px solid #ddd;padding:0.625rem 0.75rem}.vcard li{margin:0;display:block}.vcard .fn{font-weight:bold;font-size:0.9375rem}.vevent .summary{font-weight:bold}.vevent abbr{cursor:default;text-decoration:none;font-weight:bold;border:none;padding:0 0.0625rem}@media only screen and (min-width: 40.063em){h1,h2,h3,h4,h5,h6{line-height:1.4}h1{font-size:2.75rem}h2{font-size:2.3125rem}h3{font-size:1.6875rem}h4{font-size:1.4375rem}h5{font-size:1.125rem}h6{font-size:1rem}}.print-only{display:none !important}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.hide-on-print{display:none !important}.print-only{display:block !important}.hide-for-print{display:none !important}.show-for-print{display:inherit !important}}.split.button{position:relative;padding-right:5.0625rem}.split.button span{display:block;height:100%;position:absolute;right:0;top:0;border-left:solid 1px}.split.button span:after{position:absolute;content:"";width:0;height:0;display:block;border-style:inset;top:50%;left:50%}.split.button span:active{background-color:rgba(0,0,0,0.1)}.split.button span{border-left-color:rgba(255,255,255,0.5)}.split.button span{width:3.09375rem}.split.button span:after{border-top-style:solid;border-width:0.375rem;top:48%;margin-left:-0.375rem}.split.button span:after{border-color:#fff transparent transparent transparent}.split.button.secondary span{border-left-color:rgba(255,255,255,0.5)}.split.button.secondary span:after{border-color:#fff transparent transparent transparent}.split.button.alert span{border-left-color:rgba(255,255,255,0.5)}.split.button.success span{border-left-color:rgba(255,255,255,0.5)}.split.button.tiny{padding-right:3.75rem}.split.button.tiny span{width:2.25rem}.split.button.tiny span:after{border-top-style:solid;border-width:0.375rem;top:48%;margin-left:-0.375rem}.split.button.small{padding-right:4.375rem}.split.button.small span{width:2.625rem}.split.button.small span:after{border-top-style:solid;border-width:0.4375rem;top:48%;margin-left:-0.375rem}.split.button.large{padding-right:5.5rem}.split.button.large span{width:3.4375rem}.split.button.large span:after{border-top-style:solid;border-width:0.3125rem;top:48%;margin-left:-0.375rem}.split.button.expand{padding-left:2rem}.split.button.secondary span:after{border-color:#333 transparent transparent transparent}.split.button.radius span{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.split.button.round span{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}.reveal-modal-bg{position:fixed;top:0;bottom:0;left:0;right:0;background:#000;background:rgba(0,0,0,0.45);z-index:1004;display:none;left:0}.reveal-modal,dialog{visibility:hidden;display:none;position:absolute;z-index:1005;width:100vw;top:0;border-radius:3px;left:0;background-color:#fff;padding:1.25rem;border:solid 1px #666;box-shadow:0 0 10px rgba(0,0,0,0.4);padding:1.875rem}@media only screen and (max-width: 40em){.reveal-modal,dialog{min-height:100vh}}.reveal-modal .column,dialog .column,.reveal-modal .columns,dialog .columns{min-width:0}.reveal-modal>:first-child,dialog>:first-child{margin-top:0}.reveal-modal>:last-child,dialog>:last-child{margin-bottom:0}@media only screen and (min-width: 40.063em){.reveal-modal,dialog{width:80%;max-width:62.5rem;left:0;right:0;margin:0 auto}}@media only screen and (min-width: 40.063em){.reveal-modal,dialog{top:6.25rem}}.reveal-modal.radius,dialog.radius{border-radius:3px}.reveal-modal.round,dialog.round{border-radius:1000px}.reveal-modal.collapse,dialog.collapse{padding:0}@media only screen and (min-width: 40.063em){.reveal-modal.tiny,dialog.tiny{width:30%;max-width:62.5rem;left:0;right:0;margin:0 auto}}@media only screen and (min-width: 40.063em){.reveal-modal.small,dialog.small{width:40%;max-width:62.5rem;left:0;right:0;margin:0 auto}}@media only screen and (min-width: 40.063em){.reveal-modal.medium,dialog.medium{width:60%;max-width:62.5rem;left:0;right:0;margin:0 auto}}@media only screen and (min-width: 40.063em){.reveal-modal.large,dialog.large{width:70%;max-width:62.5rem;left:0;right:0;margin:0 auto}}@media only screen and (min-width: 40.063em){.reveal-modal.xlarge,dialog.xlarge{width:95%;max-width:62.5rem;left:0;right:0;margin:0 auto}}.reveal-modal.full,dialog.full{top:0;left:0;height:100%;height:100vh;min-height:100vh;max-width:none !important;margin-left:0 !important}@media only screen and (min-width: 40.063em){.reveal-modal.full,dialog.full{width:100vw;max-width:62.5rem;left:0;right:0;margin:0 auto}}.reveal-modal .close-reveal-modal,dialog .close-reveal-modal{font-size:2.5rem;line-height:1;position:absolute;top:0.5rem;right:0.6875rem;color:#aaa;font-weight:bold;cursor:pointer}dialog{display:none}dialog::backdrop,dialog+.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;background:#000;background:rgba(0,0,0,0.45);z-index:auto;display:none;left:0}dialog[open]{display:block}@media print{dialog,.reveal-modal,dialog{display:none;background:#fff !important}}.has-tip{border-bottom:dotted 1px #ccc;cursor:help;font-weight:bold;color:#333}.has-tip:hover,.has-tip:focus{border-bottom:dotted 1px #003f54;color:#008cba}.has-tip.tip-left,.has-tip.tip-right{float:none !important}.tooltip{display:none;position:absolute;z-index:1006;font-weight:normal;font-size:0.875rem;line-height:1.3;padding:0.75rem;max-width:300px;left:50%;width:100%;color:#fff;background:#333}.tooltip>.nub{display:block;left:5px;position:absolute;width:0;height:0;border:solid 5px;border-color:transparent transparent #333 transparent;top:-10px;pointer-events:none}.tooltip>.nub.rtl{left:auto;right:5px}.tooltip.radius{border-radius:3px}.tooltip.round{border-radius:1000px}.tooltip.round>.nub{left:2rem}.tooltip.opened{color:#008cba !important;border-bottom:dotted 1px #003f54 !important}.tap-to-close{display:block;font-size:0.625rem;color:#777;font-weight:normal}@media only screen and (min-width: 40.063em){.tooltip>.nub{border-color:transparent transparent #333 transparent;top:-10px}.tooltip.tip-top>.nub{border-color:#333 transparent transparent transparent;top:auto;bottom:-10px}.tooltip.tip-left,.tooltip.tip-right{float:none !important}.tooltip.tip-left>.nub{border-color:transparent transparent transparent #333;right:-10px;left:auto;top:50%;margin-top:-5px}.tooltip.tip-right>.nub{border-color:transparent #333 transparent transparent;right:auto;left:-10px;top:50%;margin-top:-5px}}.clearing-thumbs,[data-clearing]{margin-bottom:0;margin-left:0;list-style:none}.clearing-thumbs:before,.clearing-thumbs:after,[data-clearing]:before,[data-clearing]:after{content:" ";display:table}.clearing-thumbs:after,[data-clearing]:after{clear:both}.clearing-thumbs li,[data-clearing] li{float:left;margin-right:10px}.clearing-thumbs[class*="block-grid-"] li,[data-clearing][class*="block-grid-"] li{margin-right:0}.clearing-blackout{background:#333;position:fixed;width:100%;height:100%;top:0;left:0;z-index:998}.clearing-blackout .clearing-close{display:block}.clearing-container{position:relative;z-index:998;height:100%;overflow:hidden;margin:0}.clearing-touch-label{position:absolute;top:50%;left:50%;color:#aaa;font-size:0.6em}.visible-img{height:95%;position:relative}.visible-img img{position:absolute;left:50%;top:50%;margin-left:-50%;max-height:100%;max-width:100%}.clearing-caption{color:#ccc;font-size:0.875em;line-height:1.3;margin-bottom:0;text-align:center;bottom:0;background:#333;width:100%;padding:10px 30px 20px;position:absolute;left:0}.clearing-close{z-index:999;padding-left:20px;padding-top:10px;font-size:30px;line-height:1;color:#ccc;display:none}.clearing-close:hover,.clearing-close:focus{color:#ccc}.clearing-assembled .clearing-container{height:100%}.clearing-assembled .clearing-container .carousel>ul{display:none}.clearing-feature li{display:none}.clearing-feature li.clearing-featured-img{display:block}@media only screen and (min-width: 40.063em){.clearing-main-prev,.clearing-main-next{position:absolute;height:100%;width:40px;top:0}.clearing-main-prev>span,.clearing-main-next>span{position:absolute;top:50%;display:block;width:0;height:0;border:solid 12px}.clearing-main-prev>span:hover,.clearing-main-next>span:hover{opacity:0.8}.clearing-main-prev{left:0}.clearing-main-prev>span{left:5px;border-color:transparent;border-right-color:#ccc}.clearing-main-next{right:0}.clearing-main-next>span{border-color:transparent;border-left-color:#ccc}.clearing-main-prev.disabled,.clearing-main-next.disabled{opacity:0.3}.clearing-assembled .clearing-container .carousel{background:rgba(51,51,51,0.8);height:120px;margin-top:10px;text-align:center}.clearing-assembled .clearing-container .carousel>ul{display:inline-block;z-index:999;height:100%;position:relative;float:none}.clearing-assembled .clearing-container .carousel>ul li{display:block;width:120px;min-height:inherit;float:left;overflow:hidden;margin-right:0;padding:0;position:relative;cursor:pointer;opacity:0.4;clear:none}.clearing-assembled .clearing-container .carousel>ul li.fix-height img{height:100%;max-width:none}.clearing-assembled .clearing-container .carousel>ul li a.th{border:none;box-shadow:none;display:block}.clearing-assembled .clearing-container .carousel>ul li img{cursor:pointer !important;width:100% !important}.clearing-assembled .clearing-container .carousel>ul li.visible{opacity:1}.clearing-assembled .clearing-container .carousel>ul li:hover{opacity:0.8}.clearing-assembled .clearing-container .visible-img{background:#333;overflow:hidden;height:85%}.clearing-close{position:absolute;top:10px;right:20px;padding-left:0;padding-top:0}}.progress{background-color:#f6f6f6;height:1.5625rem;border:1px solid #fff;padding:0.125rem;margin-bottom:0.625rem}.progress .meter{background:#008cba;height:100%;display:block}.progress.secondary .meter{background:#e7e7e7;height:100%;display:block}.progress.success .meter{background:#43ac6a;height:100%;display:block}.progress.alert .meter{background:#f04124;height:100%;display:block}.progress.radius{border-radius:3px}.progress.radius .meter{border-radius:2px}.progress.round{border-radius:1000px}.progress.round .meter{border-radius:999px}.sub-nav{display:block;width:auto;overflow:hidden;margin-bottom:-0.25rem 0 1.125rem;padding-top:0.25rem}.sub-nav dt{text-transform:uppercase}.sub-nav dt,.sub-nav dd,.sub-nav li{float:left;display:inline;margin-left:1rem;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;font-size:0.875rem;color:#999}.sub-nav dt a,.sub-nav dd a,.sub-nav li a{text-decoration:none;color:#999;padding:0.1875rem 1rem}.sub-nav dt a:hover,.sub-nav dd a:hover,.sub-nav li a:hover{color:#737373}.sub-nav dt.active a,.sub-nav dd.active a,.sub-nav li.active a{border-radius:3px;font-weight:normal;background:#008cba;padding:0.1875rem 1rem;cursor:default;color:#fff}.sub-nav dt.active a:hover,.sub-nav dd.active a:hover,.sub-nav li.active a:hover{background:#0078a0}.joyride-list{display:none}.joyride-tip-guide{display:none;position:absolute;background:#333;color:#fff;z-index:101;top:0;left:2.5%;font-family:inherit;font-weight:normal;width:95%}.lt-ie9 .joyride-tip-guide{max-width:800px;left:50%;margin-left:-400px}.joyride-content-wrapper{width:100%;padding:1.125rem 1.25rem 1.5rem}.joyride-content-wrapper .button{margin-bottom:0 !important}.joyride-content-wrapper .joyride-prev-tip{margin-right:10px}.joyride-tip-guide .joyride-nub{display:block;position:absolute;left:22px;width:0;height:0;border:10px solid #333}.joyride-tip-guide .joyride-nub.top{border-top-style:solid;border-color:#333;border-top-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;top:-20px}.joyride-tip-guide .joyride-nub.bottom{border-bottom-style:solid;border-color:#333 !important;border-bottom-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;bottom:-20px}.joyride-tip-guide .joyride-nub.right{right:-20px}.joyride-tip-guide .joyride-nub.left{left:-20px}.joyride-tip-guide h1,.joyride-tip-guide h2,.joyride-tip-guide h3,.joyride-tip-guide h4,.joyride-tip-guide h5,.joyride-tip-guide h6{line-height:1.25;margin:0;font-weight:bold;color:#fff}.joyride-tip-guide p{margin:0 0 1.125rem 0;font-size:0.875rem;line-height:1.3}.joyride-timer-indicator-wrap{width:50px;height:3px;border:solid 1px #555;position:absolute;right:1.0625rem;bottom:1rem}.joyride-timer-indicator{display:block;width:0;height:inherit;background:#666}.joyride-close-tip{position:absolute;right:12px;top:10px;color:#777 !important;text-decoration:none;font-size:24px;font-weight:normal;line-height:.5 !important}.joyride-close-tip:hover,.joyride-close-tip:focus{color:#eee !important}.joyride-modal-bg{position:fixed;height:100%;width:100%;background:transparent;background:rgba(0,0,0,0.5);z-index:100;display:none;top:0;left:0;cursor:pointer}.joyride-expose-wrapper{background-color:#fff;position:absolute;border-radius:3px;z-index:102;box-shadow:0 0 15px #fff}.joyride-expose-cover{background:transparent;border-radius:3px;position:absolute;z-index:9999;top:0;left:0}@media only screen and (min-width: 40.063em){.joyride-tip-guide{width:300px;left:inherit}.joyride-tip-guide .joyride-nub.bottom{border-color:#333 !important;border-bottom-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;bottom:-20px}.joyride-tip-guide .joyride-nub.right{border-color:#333 !important;border-top-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important;top:22px;left:auto;right:-20px}.joyride-tip-guide .joyride-nub.left{border-color:#333 !important;border-top-color:transparent !important;border-left-color:transparent !important;border-bottom-color:transparent !important;top:22px;left:-20px;right:auto}}.label{font-weight:normal;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;text-align:center;text-decoration:none;line-height:1;white-space:nowrap;display:inline-block;position:relative;margin-bottom:inherit;padding:0.25rem 0.5rem 0.25rem;font-size:0.6875rem;background-color:#008cba;color:#fff}.label.radius{border-radius:3px}.label.round{border-radius:1000px}.label.alert{background-color:#f04124;color:#fff}.label.warning{background-color:#f08a24;color:#fff}.label.success{background-color:#43ac6a;color:#fff}.label.secondary{background-color:#e7e7e7;color:#333}.label.info{background-color:#a0d3e8;color:#333}.off-canvas-wrap{-webkit-backface-visibility:hidden;position:relative;width:100%;overflow:hidden}.off-canvas-wrap.move-right,.off-canvas-wrap.move-left{min-height:100%;-webkit-overflow-scrolling:touch}.inner-wrap{-webkit-backface-visibility:hidden;position:relative;width:100%;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.inner-wrap:before,.inner-wrap:after{content:" ";display:table}.inner-wrap:after{clear:both}.tab-bar{-webkit-backface-visibility:hidden;background:#333;color:#fff;height:2.8125rem;line-height:2.8125rem;position:relative}.tab-bar h1,.tab-bar h2,.tab-bar h3,.tab-bar h4,.tab-bar h5,.tab-bar h6{color:#fff;font-weight:bold;line-height:2.8125rem;margin:0}.tab-bar h1,.tab-bar h2,.tab-bar h3,.tab-bar h4{font-size:1.125rem}.left-small{width:2.8125rem;height:2.8125rem;position:absolute;top:0;border-right:solid 1px #1a1a1a;left:0}.right-small{width:2.8125rem;height:2.8125rem;position:absolute;top:0;border-left:solid 1px #1a1a1a;right:0}.tab-bar-section{padding:0 0.625rem;position:absolute;text-align:center;height:2.8125rem;top:0}@media only screen and (min-width: 40.063em){.tab-bar-section.left,.tab-bar-section.right{text-align:left}}.tab-bar-section.left{left:0;right:2.8125rem}.tab-bar-section.right{left:2.8125rem;right:0}.tab-bar-section.middle{left:2.8125rem;right:2.8125rem}.tab-bar .menu-icon{text-indent:2.1875rem;width:2.8125rem;height:2.8125rem;display:block;padding:0;color:#fff;position:relative;transform:translate3d(0, 0, 0)}.tab-bar .menu-icon span::after{content:"";position:absolute;display:block;height:0;top:50%;margin-top:-0.5rem;left:0.90625rem;box-shadow:0 0px 0 1px #fff,0 7px 0 1px #fff,0 14px 0 1px #fff;width:1rem}.tab-bar .menu-icon span:hover:after{box-shadow:0 0px 0 1px #b3b3b3,0 7px 0 1px #b3b3b3,0 14px 0 1px #b3b3b3}.left-off-canvas-menu{-webkit-backface-visibility:hidden;width:15.625rem;top:0;bottom:0;position:absolute;overflow-x:hidden;overflow-y:auto;background:#333;z-index:1001;box-sizing:content-box;transition:transform 500ms ease 0s;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;-ms-transform:translate(-100.5%, 0);-webkit-transform:translate3d(-100.5%, 0, 0);-moz-transform:translate3d(-100.5%, 0, 0);-ms-transform:translate3d(-100.5%, 0, 0);-o-transform:translate3d(-100.5%, 0, 0);transform:translate3d(-100.5%, 0, 0);left:0}.left-off-canvas-menu *{-webkit-backface-visibility:hidden}.right-off-canvas-menu{-webkit-backface-visibility:hidden;width:15.625rem;top:0;bottom:0;position:absolute;overflow-x:hidden;overflow-y:auto;background:#333;z-index:1001;box-sizing:content-box;transition:transform 500ms ease 0s;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;-ms-transform:translate(100.5%, 0);-webkit-transform:translate3d(100.5%, 0, 0);-moz-transform:translate3d(100.5%, 0, 0);-ms-transform:translate3d(100.5%, 0, 0);-o-transform:translate3d(100.5%, 0, 0);transform:translate3d(100.5%, 0, 0);right:0}.right-off-canvas-menu *{-webkit-backface-visibility:hidden}ul.off-canvas-list{list-style-type:none;padding:0;margin:0}ul.off-canvas-list li label{display:block;padding:0.3rem 0.9375rem;color:#999;text-transform:uppercase;font-size:0.75rem;font-weight:bold;background:#444;border-top:1px solid #5e5e5e;border-bottom:none;margin:0}ul.off-canvas-list li a{display:block;padding:0.66667rem;color:rgba(255,255,255,0.7);border-bottom:1px solid #262626;transition:background 300ms ease}ul.off-canvas-list li a:hover{background:#242424}.move-right>.inner-wrap{-ms-transform:translate(15.625rem, 0);-webkit-transform:translate3d(15.625rem, 0, 0);-moz-transform:translate3d(15.625rem, 0, 0);-ms-transform:translate3d(15.625rem, 0, 0);-o-transform:translate3d(15.625rem, 0, 0);transform:translate3d(15.625rem, 0, 0)}.move-right .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.move-right .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.move-left>.inner-wrap{-ms-transform:translate(-15.625rem, 0);-webkit-transform:translate3d(-15.625rem, 0, 0);-moz-transform:translate3d(-15.625rem, 0, 0);-ms-transform:translate3d(-15.625rem, 0, 0);-o-transform:translate3d(-15.625rem, 0, 0);transform:translate3d(-15.625rem, 0, 0)}.move-left .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.move-left .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap .left-off-canvas-menu,.offcanvas-overlap .right-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.offcanvas-overlap .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap-left .right-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap-left .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.offcanvas-overlap-left .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap-right .left-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap-right .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.offcanvas-overlap-right .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.no-csstransforms .left-off-canvas-menu{left:-15.625rem}.no-csstransforms .right-off-canvas-menu{right:-15.625rem}.no-csstransforms .move-left>.inner-wrap{right:15.625rem}.no-csstransforms .move-right>.inner-wrap{left:15.625rem}.left-submenu{-webkit-backface-visibility:hidden;width:15.625rem;top:0;bottom:0;position:absolute;margin:0;overflow-x:hidden;overflow-y:auto;background:#333;z-index:1002;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-transform:translate(-100%, 0);-webkit-transform:translate3d(-100%, 0, 0);-moz-transform:translate3d(-100%, 0, 0);-ms-transform:translate3d(-100%, 0, 0);-o-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.left-submenu *{-webkit-backface-visibility:hidden}.left-submenu .back>a{padding:0.3rem 0.9375rem;color:#999;text-transform:uppercase;font-weight:bold;background:#444;border-top:1px solid #5e5e5e;border-bottom:none;margin:0}.left-submenu .back>a:hover{background:#303030;border-top:1px solid #5e5e5e;border-bottom:none}.left-submenu .back>a:before{content:"\AB";margin-right:0.5rem;display:inline}.left-submenu.move-right{-ms-transform:translate(0%, 0);-webkit-transform:translate3d(0%, 0, 0);-moz-transform:translate3d(0%, 0, 0);-ms-transform:translate3d(0%, 0, 0);-o-transform:translate3d(0%, 0, 0);transform:translate3d(0%, 0, 0)}.right-submenu{-webkit-backface-visibility:hidden;width:15.625rem;top:0;bottom:0;position:absolute;margin:0;overflow-x:hidden;overflow-y:auto;background:#333;z-index:1002;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-transform:translate(100%, 0);-webkit-transform:translate3d(100%, 0, 0);-moz-transform:translate3d(100%, 0, 0);-ms-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);right:0;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.right-submenu *{-webkit-backface-visibility:hidden}.right-submenu .back>a{padding:0.3rem 0.9375rem;color:#999;text-transform:uppercase;font-weight:bold;background:#444;border-top:1px solid #5e5e5e;border-bottom:none;margin:0}.right-submenu .back>a:hover{background:#303030;border-top:1px solid #5e5e5e;border-bottom:none}.right-submenu .back>a:after{content:"\BB";margin-left:0.5rem;display:inline}.right-submenu.move-left{-ms-transform:translate(0%, 0);-webkit-transform:translate3d(0%, 0, 0);-moz-transform:translate3d(0%, 0, 0);-ms-transform:translate3d(0%, 0, 0);-o-transform:translate3d(0%, 0, 0);transform:translate3d(0%, 0, 0)}.left-off-canvas-menu ul.off-canvas-list li.has-submenu>a:after{content:"\BB";margin-left:0.5rem;display:inline}.right-off-canvas-menu ul.off-canvas-list li.has-submenu>a:before{content:"\AB";margin-right:0.5rem;display:inline}.f-dropdown{position:absolute;left:-9999px;list-style:none;margin-left:0;outline:none;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:89;margin-top:2px;max-width:200px}.f-dropdown>*:first-child{margin-top:0}.f-dropdown>*:last-child{margin-bottom:0}.f-dropdown:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:transparent transparent #fff transparent;border-bottom-style:solid;position:absolute;top:-12px;left:10px;z-index:89}.f-dropdown:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:transparent transparent #ccc transparent;border-bottom-style:solid;position:absolute;top:-14px;left:9px;z-index:88}.f-dropdown.right:before{left:auto;right:10px}.f-dropdown.right:after{left:auto;right:9px}.f-dropdown.drop-right{position:absolute;left:-9999px;list-style:none;margin-left:0;outline:none;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:89;margin-top:0;margin-left:2px;max-width:200px}.f-dropdown.drop-right>*:first-child{margin-top:0}.f-dropdown.drop-right>*:last-child{margin-bottom:0}.f-dropdown.drop-right:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:transparent #fff transparent transparent;border-right-style:solid;position:absolute;top:10px;left:-12px;z-index:89}.f-dropdown.drop-right:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:transparent #ccc transparent transparent;border-right-style:solid;position:absolute;top:9px;left:-14px;z-index:88}.f-dropdown.drop-left{position:absolute;left:-9999px;list-style:none;margin-left:0;outline:none;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:89;margin-top:0;margin-left:-2px;max-width:200px}.f-dropdown.drop-left>*:first-child{margin-top:0}.f-dropdown.drop-left>*:last-child{margin-bottom:0}.f-dropdown.drop-left:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:transparent transparent transparent #fff;border-left-style:solid;position:absolute;top:10px;right:-12px;left:auto;z-index:89}.f-dropdown.drop-left:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:transparent transparent transparent #ccc;border-left-style:solid;position:absolute;top:9px;right:-14px;left:auto;z-index:88}.f-dropdown.drop-top{position:absolute;left:-9999px;list-style:none;margin-left:0;outline:none;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:89;margin-top:-2px;margin-left:0;max-width:200px}.f-dropdown.drop-top>*:first-child{margin-top:0}.f-dropdown.drop-top>*:last-child{margin-bottom:0}.f-dropdown.drop-top:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:#fff transparent transparent transparent;border-top-style:solid;position:absolute;top:auto;bottom:-12px;left:10px;right:auto;z-index:89}.f-dropdown.drop-top:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:#ccc transparent transparent transparent;border-top-style:solid;position:absolute;top:auto;bottom:-14px;left:9px;right:auto;z-index:88}.f-dropdown li{font-size:0.875rem;cursor:pointer;line-height:1.125rem;margin:0}.f-dropdown li:hover,.f-dropdown li:focus{background:#eee}.f-dropdown li.radius{border-radius:3px}.f-dropdown li a{display:block;padding:0.5rem;color:#555}.f-dropdown.content{position:absolute;left:-9999px;list-style:none;margin-left:0;outline:none;padding:1.25rem;width:100%;height:auto;max-height:none;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:89;max-width:200px}.f-dropdown.content>*:first-child{margin-top:0}.f-dropdown.content>*:last-child{margin-bottom:0}.f-dropdown.tiny{max-width:200px}.f-dropdown.small{max-width:300px}.f-dropdown.medium{max-width:500px}.f-dropdown.large{max-width:800px}.f-dropdown.mega{width:100% !important;max-width:100% !important}.f-dropdown.mega.open{left:0 !important}table{background:#fff;margin-bottom:1.25rem;border:solid 1px #ddd;table-layout:auto}table caption{background:transparent;color:#222;font-size:1rem;font-weight:bold}table thead{background:#f5f5f5}table thead tr th,table thead tr td{padding:0.5rem 0.625rem 0.625rem;font-size:0.875rem;font-weight:bold;color:#222}table tfoot{background:#f5f5f5}table tfoot tr th,table tfoot tr td{padding:0.5rem 0.625rem 0.625rem;font-size:0.875rem;font-weight:bold;color:#222}table tr th,table tr td{padding:0.5625rem 0.625rem;font-size:0.875rem;color:#222;text-align:left}table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f9f9f9}table thead tr th,table tfoot tr th,table tfoot tr td,table tbody tr th,table tbody tr td,table tr td{display:table-cell;line-height:1.125rem}.range-slider{display:block;position:relative;width:100%;height:1rem;border:1px solid #ddd;margin:1.25rem 0;-ms-touch-action:none;touch-action:none;background:#fafafa}.range-slider.vertical-range{display:block;position:relative;width:100%;height:1rem;border:1px solid #ddd;margin:1.25rem 0;-ms-touch-action:none;touch-action:none;display:inline-block;width:1rem;height:12.5rem}.range-slider.vertical-range .range-slider-handle{margin-top:0;margin-left:-0.5rem;position:absolute;bottom:-10.5rem}.range-slider.vertical-range .range-slider-active-segment{width:0.875rem;height:auto;bottom:0}.range-slider.radius{background:#fafafa;border-radius:3px}.range-slider.radius .range-slider-handle{background:#008cba;border-radius:3px}.range-slider.radius .range-slider-handle:hover{background:#007ba4}.range-slider.round{background:#fafafa;border-radius:1000px}.range-slider.round .range-slider-handle{background:#008cba;border-radius:1000px}.range-slider.round .range-slider-handle:hover{background:#007ba4}.range-slider.disabled,.range-slider[disabled]{background:#fafafa;cursor:default;opacity:0.7}.range-slider.disabled .range-slider-handle,.range-slider[disabled] .range-slider-handle{background:#008cba;cursor:default;opacity:0.7}.range-slider.disabled .range-slider-handle:hover,.range-slider[disabled] .range-slider-handle:hover{background:#007ba4}.range-slider-active-segment{display:inline-block;position:absolute;height:0.875rem;background:#e5e5e5}.range-slider-handle{display:inline-block;position:absolute;z-index:1;top:-0.3125rem;width:2rem;height:1.375rem;border:1px solid none;cursor:pointer;-ms-touch-action:manipulation;touch-action:manipulation;background:#008cba}.range-slider-handle:hover{background:#007ba4}[class*="block-grid-"]{display:block;padding:0;margin:0 -0.625rem}[class*="block-grid-"]:before,[class*="block-grid-"]:after{content:" ";display:table}[class*="block-grid-"]:after{clear:both}[class*="block-grid-"]>li{display:block;height:auto;float:left;padding:0 0.625rem 1.25rem}@media only screen{.small-block-grid-1>li{width:100%;list-style:none}.small-block-grid-1>li:nth-of-type(1n){clear:none}.small-block-grid-1>li:nth-of-type(1n+1){clear:both}.small-block-grid-2>li{width:50%;list-style:none}.small-block-grid-2>li:nth-of-type(1n){clear:none}.small-block-grid-2>li:nth-of-type(2n+1){clear:both}.small-block-grid-3>li{width:33.33333%;list-style:none}.small-block-grid-3>li:nth-of-type(1n){clear:none}.small-block-grid-3>li:nth-of-type(3n+1){clear:both}.small-block-grid-4>li{width:25%;list-style:none}.small-block-grid-4>li:nth-of-type(1n){clear:none}.small-block-grid-4>li:nth-of-type(4n+1){clear:both}.small-block-grid-5>li{width:20%;list-style:none}.small-block-grid-5>li:nth-of-type(1n){clear:none}.small-block-grid-5>li:nth-of-type(5n+1){clear:both}.small-block-grid-6>li{width:16.66667%;list-style:none}.small-block-grid-6>li:nth-of-type(1n){clear:none}.small-block-grid-6>li:nth-of-type(6n+1){clear:both}.small-block-grid-7>li{width:14.28571%;list-style:none}.small-block-grid-7>li:nth-of-type(1n){clear:none}.small-block-grid-7>li:nth-of-type(7n+1){clear:both}.small-block-grid-8>li{width:12.5%;list-style:none}.small-block-grid-8>li:nth-of-type(1n){clear:none}.small-block-grid-8>li:nth-of-type(8n+1){clear:both}.small-block-grid-9>li{width:11.11111%;list-style:none}.small-block-grid-9>li:nth-of-type(1n){clear:none}.small-block-grid-9>li:nth-of-type(9n+1){clear:both}.small-block-grid-10>li{width:10%;list-style:none}.small-block-grid-10>li:nth-of-type(1n){clear:none}.small-block-grid-10>li:nth-of-type(10n+1){clear:both}.small-block-grid-11>li{width:9.09091%;list-style:none}.small-block-grid-11>li:nth-of-type(1n){clear:none}.small-block-grid-11>li:nth-of-type(11n+1){clear:both}.small-block-grid-12>li{width:8.33333%;list-style:none}.small-block-grid-12>li:nth-of-type(1n){clear:none}.small-block-grid-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width: 40.063em){.medium-block-grid-1>li{width:100%;list-style:none}.medium-block-grid-1>li:nth-of-type(1n){clear:none}.medium-block-grid-1>li:nth-of-type(1n+1){clear:both}.medium-block-grid-2>li{width:50%;list-style:none}.medium-block-grid-2>li:nth-of-type(1n){clear:none}.medium-block-grid-2>li:nth-of-type(2n+1){clear:both}.medium-block-grid-3>li{width:33.33333%;list-style:none}.medium-block-grid-3>li:nth-of-type(1n){clear:none}.medium-block-grid-3>li:nth-of-type(3n+1){clear:both}.medium-block-grid-4>li{width:25%;list-style:none}.medium-block-grid-4>li:nth-of-type(1n){clear:none}.medium-block-grid-4>li:nth-of-type(4n+1){clear:both}.medium-block-grid-5>li{width:20%;list-style:none}.medium-block-grid-5>li:nth-of-type(1n){clear:none}.medium-block-grid-5>li:nth-of-type(5n+1){clear:both}.medium-block-grid-6>li{width:16.66667%;list-style:none}.medium-block-grid-6>li:nth-of-type(1n){clear:none}.medium-block-grid-6>li:nth-of-type(6n+1){clear:both}.medium-block-grid-7>li{width:14.28571%;list-style:none}.medium-block-grid-7>li:nth-of-type(1n){clear:none}.medium-block-grid-7>li:nth-of-type(7n+1){clear:both}.medium-block-grid-8>li{width:12.5%;list-style:none}.medium-block-grid-8>li:nth-of-type(1n){clear:none}.medium-block-grid-8>li:nth-of-type(8n+1){clear:both}.medium-block-grid-9>li{width:11.11111%;list-style:none}.medium-block-grid-9>li:nth-of-type(1n){clear:none}.medium-block-grid-9>li:nth-of-type(9n+1){clear:both}.medium-block-grid-10>li{width:10%;list-style:none}.medium-block-grid-10>li:nth-of-type(1n){clear:none}.medium-block-grid-10>li:nth-of-type(10n+1){clear:both}.medium-block-grid-11>li{width:9.09091%;list-style:none}.medium-block-grid-11>li:nth-of-type(1n){clear:none}.medium-block-grid-11>li:nth-of-type(11n+1){clear:both}.medium-block-grid-12>li{width:8.33333%;list-style:none}.medium-block-grid-12>li:nth-of-type(1n){clear:none}.medium-block-grid-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width: 64.063em){.large-block-grid-1>li{width:100%;list-style:none}.large-block-grid-1>li:nth-of-type(1n){clear:none}.large-block-grid-1>li:nth-of-type(1n+1){clear:both}.large-block-grid-2>li{width:50%;list-style:none}.large-block-grid-2>li:nth-of-type(1n){clear:none}.large-block-grid-2>li:nth-of-type(2n+1){clear:both}.large-block-grid-3>li{width:33.33333%;list-style:none}.large-block-grid-3>li:nth-of-type(1n){clear:none}.large-block-grid-3>li:nth-of-type(3n+1){clear:both}.large-block-grid-4>li{width:25%;list-style:none}.large-block-grid-4>li:nth-of-type(1n){clear:none}.large-block-grid-4>li:nth-of-type(4n+1){clear:both}.large-block-grid-5>li{width:20%;list-style:none}.large-block-grid-5>li:nth-of-type(1n){clear:none}.large-block-grid-5>li:nth-of-type(5n+1){clear:both}.large-block-grid-6>li{width:16.66667%;list-style:none}.large-block-grid-6>li:nth-of-type(1n){clear:none}.large-block-grid-6>li:nth-of-type(6n+1){clear:both}.large-block-grid-7>li{width:14.28571%;list-style:none}.large-block-grid-7>li:nth-of-type(1n){clear:none}.large-block-grid-7>li:nth-of-type(7n+1){clear:both}.large-block-grid-8>li{width:12.5%;list-style:none}.large-block-grid-8>li:nth-of-type(1n){clear:none}.large-block-grid-8>li:nth-of-type(8n+1){clear:both}.large-block-grid-9>li{width:11.11111%;list-style:none}.large-block-grid-9>li:nth-of-type(1n){clear:none}.large-block-grid-9>li:nth-of-type(9n+1){clear:both}.large-block-grid-10>li{width:10%;list-style:none}.large-block-grid-10>li:nth-of-type(1n){clear:none}.large-block-grid-10>li:nth-of-type(10n+1){clear:both}.large-block-grid-11>li{width:9.09091%;list-style:none}.large-block-grid-11>li:nth-of-type(1n){clear:none}.large-block-grid-11>li:nth-of-type(11n+1){clear:both}.large-block-grid-12>li{width:8.33333%;list-style:none}.large-block-grid-12>li:nth-of-type(1n){clear:none}.large-block-grid-12>li:nth-of-type(12n+1){clear:both}}.flex-video{position:relative;padding-top:1.5625rem;padding-bottom:67.5%;height:0;margin-bottom:1rem;overflow:hidden}.flex-video.widescreen{padding-bottom:56.34%}.flex-video.vimeo{padding-top:0}.flex-video iframe,.flex-video object,.flex-video embed,.flex-video video{position:absolute;top:0;left:0;width:100%;height:100%}.keystroke,kbd{background-color:#ededed;border-color:#ddd;color:#222;border-style:solid;border-width:1px;margin:0;font-family:"Consolas","Menlo","Courier",monospace;font-size:inherit;padding:0.125rem 0.25rem 0;border-radius:3px}.switch{padding:0;border:none;position:relative;outline:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.switch label{display:block;margin-bottom:1rem;position:relative;color:transparent;background:#ddd;text-indent:100%;width:4rem;height:2rem;cursor:pointer;transition:left 0.15s ease-out}.switch input{opacity:0;position:absolute;top:9px;left:10px;padding:0}.switch input+label{margin-left:0;margin-right:0}.switch label:after{content:"";display:block;background:#fff;position:absolute;top:.25rem;left:.25rem;width:1.5rem;height:1.5rem;-webkit-transition:left 0.15s ease-out;-moz-transition:left 0.15s ease-out;transition:left 0.15s ease-out;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.switch input:checked+label{background:#008cba}.switch input:checked+label:after{left:2.25rem}.switch label{width:4rem;height:2rem}.switch label:after{width:1.5rem;height:1.5rem}.switch input:checked+label:after{left:2.25rem}.switch label{color:transparent;background:#ddd}.switch label:after{background:#fff}.switch input:checked+label{background:#008cba}.switch.large label{width:5rem;height:2.5rem}.switch.large label:after{width:2rem;height:2rem}.switch.large input:checked+label:after{left:2.75rem}.switch.small label{width:3.5rem;height:1.75rem}.switch.small label:after{width:1.25rem;height:1.25rem}.switch.small input:checked+label:after{left:2rem}.switch.tiny label{width:3rem;height:1.5rem}.switch.tiny label:after{width:1rem;height:1rem}.switch.tiny input:checked+label:after{left:1.75rem}.switch.radius label{border-radius:4px}.switch.radius label:after{border-radius:3px}.switch.round{border-radius:1000px}.switch.round label{border-radius:2rem}.switch.round label:after{border-radius:2rem}@media only screen{.show-for-small-only,.show-for-small-up,.show-for-small,.show-for-small-down,.hide-for-medium-only,.hide-for-medium-up,.hide-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.hide-for-small-only,.hide-for-small-up,.hide-for-small,.hide-for-small-down,.show-for-medium-only,.show-for-medium-up,.show-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}.visible-for-small-only,.visible-for-small-up,.visible-for-small,.visible-for-small-down,.hidden-for-medium-only,.hidden-for-medium-up,.hidden-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.hidden-for-small-only,.hidden-for-small-up,.hidden-for-small,.hidden-for-small-down,.visible-for-medium-only,.visible-for-medium-up,.visible-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xxlarge-only,.visible-for-xxlarge-up{position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}table.show-for-small-only,table.show-for-small-up,table.show-for-small,table.show-for-small-down,table.hide-for-medium-only,table.hide-for-medium-up,table.hide-for-medium,table.show-for-medium-down,table.hide-for-large-only,table.hide-for-large-up,table.hide-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table !important}thead.show-for-small-only,thead.show-for-small-up,thead.show-for-small,thead.show-for-small-down,thead.hide-for-medium-only,thead.hide-for-medium-up,thead.hide-for-medium,thead.show-for-medium-down,thead.hide-for-large-only,thead.hide-for-large-up,thead.hide-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.show-for-small-only,tbody.show-for-small-up,tbody.show-for-small,tbody.show-for-small-down,tbody.hide-for-medium-only,tbody.hide-for-medium-up,tbody.hide-for-medium,tbody.show-for-medium-down,tbody.hide-for-large-only,tbody.hide-for-large-up,tbody.hide-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.show-for-small-only,tr.show-for-small-up,tr.show-for-small,tr.show-for-small-down,tr.hide-for-medium-only,tr.hide-for-medium-up,tr.hide-for-medium,tr.show-for-medium-down,tr.hide-for-large-only,tr.hide-for-large-up,tr.hide-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.show-for-small-only,td.show-for-small-only,th.show-for-small-up,td.show-for-small-up,th.show-for-small,td.show-for-small,th.show-for-small-down,td.show-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.hide-for-medium-up,td.hide-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.show-for-medium-down,td.show-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.hide-for-large-up,td.hide-for-large-up,th.hide-for-large,td.hide-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 40.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.show-for-medium-only,.show-for-medium-up,.show-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.hide-for-medium-only,.hide-for-medium-up,.hide-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.visible-for-medium-only,.visible-for-medium-up,.visible-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.hidden-for-medium-only,.hidden-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xxlarge-only,.visible-for-xxlarge-up{position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.show-for-medium-only,table.show-for-medium-up,table.show-for-medium,table.show-for-medium-down,table.hide-for-large-only,table.hide-for-large-up,table.hide-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.show-for-medium-only,thead.show-for-medium-up,thead.show-for-medium,thead.show-for-medium-down,thead.hide-for-large-only,thead.hide-for-large-up,thead.hide-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.show-for-medium-only,tbody.show-for-medium-up,tbody.show-for-medium,tbody.show-for-medium-down,tbody.hide-for-large-only,tbody.hide-for-large-up,tbody.hide-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.show-for-medium-only,tr.show-for-medium-up,tr.show-for-medium,tr.show-for-medium-down,tr.hide-for-large-only,tr.hide-for-large-up,tr.hide-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.show-for-medium-only,td.show-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.show-for-medium,td.show-for-medium,th.show-for-medium-down,td.show-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.hide-for-large-up,td.hide-for-large-up,th.hide-for-large,td.hide-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 64.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xxlarge-only,.visible-for-xxlarge-up{position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.show-for-large-only,table.show-for-large-up,table.show-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.show-for-large-only,thead.show-for-large-up,thead.show-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.show-for-large-only,tbody.show-for-large-up,tbody.show-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.show-for-large-only,tr.show-for-large-up,tr.show-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.show-for-large-only,td.show-for-large-only,th.show-for-large-up,td.show-for-large-up,th.show-for-large,td.show-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 90.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.hide-for-large-only,.show-for-large-up,.hide-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.show-for-large-only,.hide-for-large-up,.show-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.hidden-for-large-only,.visible-for-large-up,.hidden-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.visible-for-large-only,.hidden-for-large-up,.visible-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.visible-for-xxlarge-only,.visible-for-xxlarge-up{position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.hide-for-large-only,table.show-for-large-up,table.hide-for-large,table.hide-for-large-down,table.show-for-xlarge-only,table.show-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.hide-for-large-only,thead.show-for-large-up,thead.hide-for-large,thead.hide-for-large-down,thead.show-for-xlarge-only,thead.show-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.hide-for-large-only,tbody.show-for-large-up,tbody.hide-for-large,tbody.hide-for-large-down,tbody.show-for-xlarge-only,tbody.show-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.hide-for-large-only,tr.show-for-large-up,tr.hide-for-large,tr.hide-for-large-down,tr.show-for-xlarge-only,tr.show-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.show-for-large-up,td.show-for-large-up,th.hide-for-large,td.hide-for-large,th.hide-for-large-down,td.hide-for-large-down,th.show-for-xlarge-only,td.show-for-xlarge-only,th.show-for-xlarge-up,td.show-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 120.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.hide-for-large-only,.show-for-large-up,.hide-for-large,.hide-for-large-down,.hide-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.show-for-large-only,.hide-for-large-up,.show-for-large,.show-for-large-down,.show-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.hidden-for-large-only,.visible-for-large-up,.hidden-for-large,.hidden-for-large-down,.hidden-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xxlarge-only,.visible-for-xxlarge-up{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.visible-for-large-only,.hidden-for-large-up,.visible-for-large,.visible-for-large-down,.visible-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up{position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.hide-for-large-only,table.show-for-large-up,table.hide-for-large,table.hide-for-large-down,table.hide-for-xlarge-only,table.show-for-xlarge-up,table.show-for-xxlarge-only,table.show-for-xxlarge-up{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.hide-for-large-only,thead.show-for-large-up,thead.hide-for-large,thead.hide-for-large-down,thead.hide-for-xlarge-only,thead.show-for-xlarge-up,thead.show-for-xxlarge-only,thead.show-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.hide-for-large-only,tbody.show-for-large-up,tbody.hide-for-large,tbody.hide-for-large-down,tbody.hide-for-xlarge-only,tbody.show-for-xlarge-up,tbody.show-for-xxlarge-only,tbody.show-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.hide-for-large-only,tr.show-for-large-up,tr.hide-for-large,tr.hide-for-large-down,tr.hide-for-xlarge-only,tr.show-for-xlarge-up,tr.show-for-xxlarge-only,tr.show-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.show-for-large-up,td.show-for-large-up,th.hide-for-large,td.hide-for-large,th.hide-for-large-down,td.hide-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.show-for-xlarge-up,td.show-for-xlarge-up,th.show-for-xxlarge-only,td.show-for-xxlarge-only,th.show-for-xxlarge-up,td.show-for-xxlarge-up{display:table-cell !important}}.show-for-landscape,.hide-for-portrait{display:inherit !important}.hide-for-landscape,.show-for-portrait{display:none !important}table.hide-for-landscape,table.show-for-portrait{display:table !important}thead.hide-for-landscape,thead.show-for-portrait{display:table-header-group !important}tbody.hide-for-landscape,tbody.show-for-portrait{display:table-row-group !important}tr.hide-for-landscape,tr.show-for-portrait{display:table-row !important}td.hide-for-landscape,td.show-for-portrait,th.hide-for-landscape,th.show-for-portrait{display:table-cell !important}@media only screen and (orientation: landscape){.show-for-landscape,.hide-for-portrait{display:inherit !important}.hide-for-landscape,.show-for-portrait{display:none !important}table.show-for-landscape,table.hide-for-portrait{display:table !important}thead.show-for-landscape,thead.hide-for-portrait{display:table-header-group !important}tbody.show-for-landscape,tbody.hide-for-portrait{display:table-row-group !important}tr.show-for-landscape,tr.hide-for-portrait{display:table-row !important}td.show-for-landscape,td.hide-for-portrait,th.show-for-landscape,th.hide-for-portrait{display:table-cell !important}}@media only screen and (orientation: portrait){.show-for-portrait,.hide-for-landscape{display:inherit !important}.hide-for-portrait,.show-for-landscape{display:none !important}table.show-for-portrait,table.hide-for-landscape{display:table !important}thead.show-for-portrait,thead.hide-for-landscape{display:table-header-group !important}tbody.show-for-portrait,tbody.hide-for-landscape{display:table-row-group !important}tr.show-for-portrait,tr.hide-for-landscape{display:table-row !important}td.show-for-portrait,td.hide-for-landscape,th.show-for-portrait,th.hide-for-landscape{display:table-cell !important}}.show-for-touch{display:none !important}.hide-for-touch{display:inherit !important}.touch .show-for-touch{display:inherit !important}.touch .hide-for-touch{display:none !important}table.hide-for-touch{display:table !important}.touch table.show-for-touch{display:table !important}thead.hide-for-touch{display:table-header-group !important}.touch thead.show-for-touch{display:table-header-group !important}tbody.hide-for-touch{display:table-row-group !important}.touch tbody.show-for-touch{display:table-row-group !important}tr.hide-for-touch{display:table-row !important}.touch tr.show-for-touch{display:table-row !important}td.hide-for-touch{display:table-cell !important}.touch td.show-for-touch{display:table-cell !important}th.hide-for-touch{display:table-cell !important}.touch th.show-for-touch{display:table-cell !important}@media print{.show-for-print{display:block}.hide-for-print{display:none}table.show-for-print{display:table !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}}
diff --git a/foundation/css/normalize.css b/foundation/css/normalize.css
new file mode 100644
index 0000000..458eea1
--- /dev/null
+++ b/foundation/css/normalize.css
@@ -0,0 +1,427 @@
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+
+/**
+ * 1. Set default font family to sans-serif.
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
+ * user zoom.
+ */
+
+html {
+ font-family: sans-serif; /* 1 */
+ -ms-text-size-adjust: 100%; /* 2 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/**
+ * Remove default margin.
+ */
+
+body {
+ margin: 0;
+}
+
+/* HTML5 display definitions
+ ========================================================================== */
+
+/**
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
+ * and Firefox.
+ * Correct `block` display not defined for `main` in IE 11.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/**
+ * 1. Correct `inline-block` display not defined in IE 8/9.
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+ */
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block; /* 1 */
+ vertical-align: baseline; /* 2 */
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Address `[hidden]` styling not present in IE 8/9/10.
+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
+ */
+
+[hidden],
+template {
+ display: none;
+}
+
+/* Links
+ ========================================================================== */
+
+/**
+ * Remove the gray background color from active links in IE 10.
+ */
+
+a {
+ background-color: transparent;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* Text-level semantics
+ ========================================================================== */
+
+/**
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+/**
+ * Address styling not present in Safari and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Address variable `h1` font-size and margin within `section` and `article`
+ * contexts in Firefox 4+, Safari, and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/**
+ * Address styling not present in IE 8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* Embedded content
+ ========================================================================== */
+
+/**
+ * Remove border when inside `a` element in IE 8/9/10.
+ */
+
+img {
+ border: 0;
+}
+
+/**
+ * Correct overflow not hidden in IE 9/10/11.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* Grouping content
+ ========================================================================== */
+
+/**
+ * Address margin not present in IE 8/9 and Safari.
+ */
+
+figure {
+ margin: 1em 40px;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ */
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+
+/**
+ * Contain overflow in all browsers.
+ */
+
+pre {
+ overflow: auto;
+}
+
+/**
+ * Address odd `em`-unit font size rendering in all browsers.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+/* Forms
+ ========================================================================== */
+
+/**
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
+ * styling of `select`, unless a `border` property is set.
+ */
+
+/**
+ * 1. Correct color not being inherited.
+ * Known issue: affects color of disabled elements.
+ * 2. Correct font properties not being inherited.
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit; /* 1 */
+ font: inherit; /* 2 */
+ margin: 0; /* 3 */
+}
+
+/**
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
+ */
+
+button {
+ overflow: visible;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
+ * Correct `select` style inheritance in Firefox.
+ */
+
+button,
+select {
+ text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+/**
+ * Remove inner padding and border in Firefox 4+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/**
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+input {
+ line-height: normal;
+}
+
+/**
+ * It's recommended that you don't attempt to style these elements.
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
+ *
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
+ * 2. Remove excess padding in IE 8/9/10.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
+ * `font-size` values of the `input`, it causes the cursor style of the
+ * decrement button to change from `default` to `text`.
+ */
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
+ * (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; /* 2 */
+ box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
+ * Safari (but not Chrome) clips the cancel button when the search input has
+ * padding (and `textfield` appearance).
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Remove default vertical scrollbar in IE 8/9/10/11.
+ */
+
+textarea {
+ overflow: auto;
+}
+
+/**
+ * Don't inherit the `font-weight` (applied by a rule above).
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+ */
+
+optgroup {
+ font-weight: bold;
+}
+
+/* Tables
+ ========================================================================== */
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+td,
+th {
+ padding: 0;
+}
diff --git a/foundation/humans.txt b/foundation/humans.txt
index 426b35b..4e06829 100644
--- a/foundation/humans.txt
+++ b/foundation/humans.txt
@@ -5,4 +5,4 @@
/* SITE */
Standards: HTML5, CSS3
Components: jQuery, Orbit, Reveal
- Software: Coda, Textmate, Git
+ Software: Sublime, Git, Sass
diff --git a/foundation/images/.gitkeep b/foundation/img/.gitkeep
similarity index 100%
rename from foundation/images/.gitkeep
rename to foundation/img/.gitkeep
diff --git a/foundation/index.html b/foundation/index.html
index fe41dcc..e6b8827 100644
--- a/foundation/index.html
+++ b/foundation/index.html
@@ -1,143 +1,166 @@
-
-
-
-
-
-
-
- Foundation 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Welcome to Foundation
-
This is version 4.1.2.
-
-
-
-
-
-
-
The Grid
-
-
-
-
-
-
This is a twelve column section in a row. Each of these includes a div.panel element so you can see where the columns are - it's not required at all for the grid.
-
-
-
-
-
-
-
-
-
-
Four columns
+
+
+
+
+
+
Foundation | Welcome
+
+
+
+
+
+
+
+
Welcome to Foundation
+
+
+
+
+
+
+
We’re stoked you want to try Foundation!
+
To get going, this file (index.html) includes some basic styles you can modify, play around with, or totally destroy to get going.
+
Once you've exhausted the fun in this document, you should check out:
+
+
+
+
+
@foundationzurb Ping us on Twitter if you have questions. If you build something with this we'd love to see it (and send you a totally boss sticker).
+
-
-
+
+
+
-
Buttons
+
+
+
Here’s your basic grid:
+
-
-
-
Small Button
-
Medium Button
-
Large Button
+
+
+
+
This is a twelve column section in a row. Each of these includes a div.panel element so you can see where the columns are - it's not required at all for the grid.
+
+
-
-
-
-
-
Getting Started
-
We're stoked you want to try Foundation! To get going, this file (index.html) includes some basic styles you can modify, play around with, or totally destroy to get going.
-
-
Other Resources
-
Once you've exhausted the fun in this document, you should check out:
-
- Foundation Documentation Everything you need to know about using the framework.
- Foundation on Github Latest code, issue reports, feature requests and more.
- @foundationzurb Ping us on Twitter if you have questions. If you build something with this we'd love to see it (and send you a totally boss sticker).
-
-
-
+
+
+
+
+
We bet you’ll need a form somewhere:
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/foundation/javascripts/foundation.min.js b/foundation/javascripts/foundation.min.js
deleted file mode 100644
index e689cd3..0000000
--- a/foundation/javascripts/foundation.min.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Foundation Responsive Library
- * http://foundation.zurb.com
- * Copyright 2013, ZURB
- * Free to use under the MIT license.
- * http://www.opensource.org/licenses/mit-license.php
-*/
-/*jslint unparam: true, browser: true, indent: 2 */
-// Accommodate running jQuery or Zepto in noConflict() mode by
-// using an anonymous function to redefine the $ shorthand name.
-// See http://docs.jquery.com/Using_jQuery_with_Other_Libraries
-// and http://zeptojs.com/
-var libFuncName=null;if(typeof jQuery=="undefined"&&typeof Zepto=="undefined"&&typeof $=="function")libFuncName=$;else if(typeof jQuery=="function")libFuncName=jQuery;else{if(typeof Zepto!="function")throw new TypeError;libFuncName=Zepto}(function(e){(function(){Array.prototype.filter||(Array.prototype.filter=function(e){"use strict";if(this==null)throw new TypeError;var t=Object(this),n=t.length>>>0;if(typeof e!="function")try{throw new TypeError}catch(r){return}var i=[],s=arguments[1];for(var o=0;o
0)for(var l=u.length-1;l>=0;l--)f.push(this.init_lib(u[l],a))}else for(var c in this.libs)f.push(this.init_lib(c,a));return typeof n=="function"&&a.unshift(n),this.response_obj(f,a)},response_obj:function(e,t){for(var n=0,r=t.length;n=0;r--)this.lib_methods.hasOwnProperty(n[r])&&(this.libs[e.name][n[r]]=this.lib_methods[n[r]])},random_str:function(e){var t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".split("");e||(e=Math.floor(Math.random()*t.length));var n="";for(var r=0;r=0;r--)i=s[r].split(":"),/true/i.test(i[1])&&(i[1]=!0),/false/i.test(i[1])&&(i[1]=!1),u(i[1])&&(i[1]=parseInt(i[1],10)),i.length===2&&i[0].length>0&&(n[a(i[0])]=a(i[1]));return n},delay:function(e,t){return setTimeout(e,t)},scrollTo:function(n,r,i){if(i<0)return;var s=r-e(t).scrollTop(),o=s/i*10;this.scrollToTimerCache=setTimeout(function(){isNaN(parseInt(o,10))||(t.scrollTo(0,e(t).scrollTop()+o),this.scrollTo(n,r,i-10))}.bind(this),10)},scrollLeft:function(e){if(!e.length)return;return"scrollLeft"in e[0]?e[0].scrollLeft:e[0].pageXOffset},empty:function(e){if(e.length&&e.length>0)return!1;if(e.length&&e.length===0)return!0;for(var t in e)if(hasOwnProperty.call(e,t))return!1;return!0}},fix_outer:function(e){e.outerHeight=function(e,t){return typeof Zepto=="function"?e.height():typeof t!="undefined"?e.outerHeight(t):e.outerHeight()},e.outerWidth=function(e){return typeof Zepto=="function"?e.width():typeof bool!="undefined"?e.outerWidth(bool):e.outerWidth()}},error:function(e){return e.name+" "+e.message+"; "+e.more},off:function(){return e(this.scope).off(".fndtn"),e(t).off(".fndtn"),!0},zj:function(){try{return Zepto}catch(e){return jQuery}}()},e.fn.foundation=function(){var e=Array.prototype.slice.call(arguments,0);return this.each(function(){return Foundation.init.apply(Foundation,[this].concat(e)),this})}}(this,this.document)})(libFuncName),function(e,t,n,r){"use strict";Foundation.libs.alerts={name:"alerts",version:"4.0.0",settings:{speed:300,callback:function(){}},init:function(t,n,r){return this.scope=t||this.scope,typeof n=="object"&&e.extend(!0,this.settings,n),typeof n!="string"?(this.settings.init||this.events(),this.settings.init):this[n].call(this,r)},events:function(){var t=this;e(this.scope).on("click.fndtn.alerts","[data-alert] a.close",function(n){n.preventDefault(),e(this).closest("[data-alert]").fadeOut(t.speed,function(){e(this).remove(),t.settings.callback()})}),this.settings.init=!0},off:function(){e(this.scope).off(".fndtn.alerts")}}}(Foundation.zj,this,this.document),function(e,t,n,r){"use strict";Foundation.libs.clearing={name:"clearing",version:"4.1.2",settings:{templates:{viewing:'× '},close_selectors:".clearing-close",init:!1,locked:!1},init:function(t,n,r){var i=this;return Foundation.inherit(this,"set_data get_data remove_data throttle data_options"),typeof n=="object"&&(r=e.extend(!0,this.settings,n)),typeof n!="string"?(e(this.scope).find("ul[data-clearing]").each(function(){var t=e(this),n=n||{},r=t.find("li"),s=i.get_data(t);!s&&r.length>0&&(n.$parent=t.parent(),i.set_data(t,e.extend({},i.settings,n,i.data_options(t))),i.assemble(t.find("li")),i.settings.init||i.events().swipe_events())}),this.settings.init):this[n].call(this,r)},events:function(){var n=this;return e(this.scope).on("click.fndtn.clearing","ul[data-clearing] li",function(t,r,i){var r=r||e(this),i=i||r,s=r.next("li"),o=n.get_data(r.parent()),u=e(t.target);t.preventDefault(),o||n.init(),i.hasClass("visible")&&r[0]===i[0]&&s.length>0&&n.is_open(r)&&(i=s,u=i.find("img")),n.open(u,r,i),n.update_paddles(i)}).on("click.fndtn.clearing",".clearing-main-next",function(e){this.nav(e,"next")}.bind(this)).on("click.fndtn.clearing",".clearing-main-prev",function(e){this.nav(e,"prev")}.bind(this)).on("click.fndtn.clearing",this.settings.close_selectors,function(e){Foundation.libs.clearing.close(e,this)}).on("keydown.fndtn.clearing",function(e){this.keydown(e)}.bind(this)),e(t).on("resize.fndtn.clearing",function(e){this.resize()}.bind(this)),this.settings.init=!0,this},swipe_events:function(){var t=this;e(this.scope).on("touchstart.fndtn.clearing",".visible-img",function(t){t.touches||(t=t.originalEvent);var n={start_page_x:t.touches[0].pageX,start_page_y:t.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:r};e(this).data("swipe-transition",n),t.stopPropagation()}).on("touchmove.fndtn.clearing",".visible-img",function(n){n.touches||(n=n.originalEvent);if(n.touches.length>1||n.scale&&n.scale!==1)return;var r=e(this).data("swipe-transition");typeof r=="undefined"&&(r={}),r.delta_x=n.touches[0].pageX-r.start_page_x,typeof r.is_scrolling=="undefined"&&(r.is_scrolling=!!(r.is_scrolling||Math.abs(r.delta_x) ');var r=e("#foundationClearingHolder"),i=this.get_data(n),s=n.detach(),o={grid:'
'+this.outerHTML(s[0])+"
",viewing:i.templates.viewing},u='
";return r.after(u).remove()},open:function(e,t,n){var r=n.closest(".clearing-assembled"),i=r.find("div").first(),s=i.find(".visible-img"),o=s.find("img").not(e);this.locked()||(o.attr("src",this.load(e)).css("visibility","hidden"),this.loaded(o,function(){o.css("visibility","visible"),r.addClass("clearing-blackout"),i.addClass("clearing-container"),s.show(),this.fix_height(n).caption(s.find(".clearing-caption"),e).center(o).shift(t,n,function(){n.siblings().removeClass("visible"),n.addClass("visible")})}.bind(this)))},close:function(t,n){t.preventDefault();var r=function(e){return/blackout/.test(e.selector)?e:e.closest(".clearing-blackout")}(e(n)),i,s;return n===t.target&&r&&(i=r.find("div").first(),s=i.find(".visible-img"),this.settings.prev_index=0,r.find("ul[data-clearing]").attr("style","").closest(".clearing-blackout").removeClass("clearing-blackout"),i.removeClass("clearing-container"),s.hide()),!1},is_open:function(e){return e.parent().attr("style").length>0},keydown:function(t){var n=e(".clearing-blackout").find("ul[data-clearing]");t.which===39&&this.go(n,"next"),t.which===37&&this.go(n,"prev"),t.which===27&&e("a.clearing-close").trigger("click")},nav:function(t,n){var r=e(".clearing-blackout").find("ul[data-clearing]");t.preventDefault(),this.go(r,n)},resize:function(){var t=e(".clearing-blackout .visible-img").find("img");t.length&&this.center(t)},fix_height:function(t){var n=t.parent().children(),r=this;return n.each(function(){var t=e(this),n=t.find("img");t.height()>r.outerHeight(n)&&t.addClass("fix-height")}).closest("ul").width(n.length*100+"%"),this},update_paddles:function(e){var t=e.closest(".carousel").siblings(".visible-img");e.next().length>0?t.find(".clearing-main-next").removeClass("disabled"):t.find(".clearing-main-next").addClass("disabled"),e.prev().length>0?t.find(".clearing-main-prev").removeClass("disabled"):t.find(".clearing-main-prev").addClass("disabled")},center:function(e){return this.rtl?e.css({marginRight:-(this.outerWidth(e)/2),marginTop:-(this.outerHeight(e)/2)}):e.css({marginLeft:-(this.outerWidth(e)/2),marginTop:-(this.outerHeight(e)/2)}),this},load:function(e){var t=e.parent().attr("href");return this.preload(e),t?t:e.attr("src")},preload:function(e){this.img(e.closest("li").next()).img(e.closest("li").prev())},loaded:function(e,t){function n(){t()}function r(){this.one("load",n);if(/MSIE (\d+\.\d+);/.test(navigator.userAgent)){var e=this.attr("src"),t=e.match(/\?/)?"&":"?";t+="random="+(new Date).getTime(),this.attr("src",e+t)}}if(!e.attr("src")){n();return}e[0].complete||e[0].readyState===4?n():r.call(e)},img:function(e){if(e.length){var t=new Image,n=e.find("a");n.length?t.src=n.attr("href"):t.src=e.find("img").attr("src")}return this},caption:function(e,t){var n=t.data("caption");return n?e.text(n).show():e.text("").hide(),this},go:function(e,t){var n=e.find(".visible"),r=n[t]();r.length&&r.find("img").trigger("click",[n,r])},shift:function(e,t,n){var r=t.parent(),i=this.settings.prev_index||t.index(),s=this.direction(r,e,t),o=parseInt(r.css("left"),10),u=this.outerWidth(t),a;t.index()!==i&&!/skip/.test(s)?/left/.test(s)?(this.lock(),r.animate({left:o+u},300,this.unlock())):/right/.test(s)&&(this.lock(),r.animate({left:o-u},300,this.unlock())):/skip/.test(s)&&(a=t.index()-this.settings.up_count,this.lock(),a>0?r.animate({left:-(a*u)},300,this.unlock()):r.animate({left:0},300,this.unlock())),n()},direction:function(t,n,r){var i=t.find("li"),s=this.outerWidth(i)+this.outerWidth(i)/4,o=Math.floor(this.outerWidth(e(".clearing-container"))/s)-1,u=i.index(r),a;return this.settings.up_count=o,this.adjacent(this.settings.prev_index,u)?u>o&&u>this.settings.prev_index?a="right":u>o-1&&u<=this.settings.prev_index?a="left":a=!1:a="skip",this.settings.prev_index=u,a},adjacent:function(e,t){for(var n=t+1;n>=t-1;n--)if(n===e)return!0;return!1},lock:function(){this.settings.locked=!0},unlock:function(){this.settings.locked=!1},locked:function(){return this.settings.locked},outerHTML:function(e){return e.outerHTML||(new XMLSerializer).serializeToString(e)},off:function(){e(this.scope).off(".fndtn.clearing"),e(t).off(".fndtn.clearing"),this.remove_data(),this.settings.init=!1},reflow:function(){this.init()}}}(Foundation.zj,this,this.document),function(e,t,n){function i(e){return e}function s(e){return decodeURIComponent(e.replace(r," "))}var r=/\+/g,o=e.cookie=function(r,u,a){if(u!==n){a=e.extend({},o.defaults,a),u===null&&(a.expires=-1);if(typeof a.expires=="number"){var f=a.expires,l=a.expires=new Date;l.setDate(l.getDate()+f)}return u=o.json?JSON.stringify(u):String(u),t.cookie=[encodeURIComponent(r),"=",o.raw?u:encodeURIComponent(u),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure":""].join("")}var c=o.raw?i:s,h=t.cookie.split("; ");for(var p=0,d=h.length;p
0&&(e(t.target).is("[data-dropdown-content]")||e.contains(r.first()[0],t.target))){t.stopPropagation();return}e("[data-dropdown-content]").css(Foundation.rtl?"right":"left","-99999px").removeClass(n.settings.activeClass)}),e(t).on("resize.fndtn.dropdown",n.throttle(function(){n.resize.call(n)},50)).trigger("resize"),this.settings.init=!0},toggle:function(t,n){var r=e("#"+t.data("dropdown"));e("[data-dropdown-content]").not(r).css(Foundation.rtl?"right":"left","-99999px").removeClass(this.settings.activeClass),r.hasClass(this.settings.activeClass)?r.css(Foundation.rtl?"right":"left","-99999px").removeClass(this.settings.activeClass):this.css(r.addClass(this.settings.activeClass),t)},resize:function(){var t=e("[data-dropdown-content].open"),n=e("[data-dropdown='"+t.attr("id")+"']");t.length&&n.length&&this.css(t,n)},css:function(n,r){var i=r.position();i.top+=r.offsetParent().offset().top,i.left+=r.offsetParent().offset().left;if(this.small())n.css({position:"absolute",width:"95%",left:"2.5%","max-width":"none",top:i.top+this.outerHeight(r)});else{if(!Foundation.rtl&&e(t).width()>this.outerWidth(n)+r.offset().left)var s=i.left;else{n.hasClass("right")||n.addClass("right");var s=i.left-(this.outerWidth(n)-this.outerWidth(r))}n.attr("style","").css({position:"absolute",top:i.top+this.outerHeight(r),left:s})}return n},small:function(){return e(t).width()<768||e("html").hasClass("lt-ie9")},off:function(){e(this.scope).off(".fndtn.dropdown"),e("html, body").off(".fndtn.dropdown"),e(t).off(".fndtn.dropdown"),e("[data-dropdown-content]").off(".fndtn.dropdown"),this.settings.init=!1}}}(Foundation.zj,this,this.document),function(e,t,n,r){"use strict";Foundation.libs.forms={name:"forms",version:"4.0.4",settings:{disable_class:"no-custom"},init:function(t,n,r){return this.scope=t||this.scope,typeof n=="object"&&e.extend(!0,this.settings,n),typeof n!="string"?(this.settings.init||this.events(),this.assemble(),this.settings.init):this[n].call(this,r)},assemble:function(){e('form.custom input[type="radio"]',e(this.scope)).not('[data-customforms="disabled"]').each(this.append_custom_markup),e('form.custom input[type="checkbox"]',e(this.scope)).not('[data-customforms="disabled"]').each(this.append_custom_markup),e("form.custom select",e(this.scope)).not('[data-customforms="disabled"]').each(this.append_custom_select)},events:function(){var r=this;e(this.scope).on("click.fndtn.forms","form.custom span.custom.checkbox",function(t){t.preventDefault(),t.stopPropagation(),r.toggle_checkbox(e(this))}).on("click.fndtn.forms","form.custom span.custom.radio",function(t){t.preventDefault(),t.stopPropagation(),r.toggle_radio(e(this))}).on("change.fndtn.forms",'form.custom select:not([data-customforms="disabled"])',function(t){r.refresh_custom_select(e(this))}).on("click.fndtn.forms","form.custom label",function(t){var n=e("#"+r.escape(e(this).attr("for"))+':not([data-customforms="disabled"])'),i,s;n.length!==0&&(n.attr("type")==="checkbox"?(t.preventDefault(),i=e(this).find("span.custom.checkbox"),i.length==0&&(i=n.add(this).siblings("span.custom.checkbox").first()),r.toggle_checkbox(i)):n.attr("type")==="radio"&&(t.preventDefault(),s=e(this).find("span.custom.radio"),s.length==0&&(s=n.add(this).siblings("span.custom.radio").first()),r.toggle_radio(s)))}).on("click.fndtn.forms","form.custom div.custom.dropdown a.current, form.custom div.custom.dropdown a.selector",function(t){var n=e(this),i=n.closest("div.custom.dropdown"),s=i.prev();i.hasClass("open")||e(r.scope).trigger("click"),t.preventDefault();if(!1===s.is(":disabled"))return i.toggleClass("open"),i.hasClass("open")?e(r.scope).on("click.fndtn.forms.customdropdown",function(){i.removeClass("open"),e(r.scope).off(".fndtn.forms.customdropdown")}):e(r.scope).on(".fndtn.forms.customdropdown"),!1}).on("click.fndtn.forms touchend.fndtn.forms","form.custom div.custom.dropdown li",function(t){var n=e(this),r=n.closest("div.custom.dropdown"),i=r.prev(),s=0;t.preventDefault(),t.stopPropagation();if(!e(this).hasClass("disabled")){e("div.dropdown").not(r).removeClass("open");var o=n.closest("ul").find("li.selected");o.removeClass("selected"),n.addClass("selected"),r.removeClass("open").find("a.current").html(n.html()),n.closest("ul").find("li").each(function(e){n[0]==this&&(s=e)}),i[0].selectedIndex=s,i.data("prevalue",o.html()),i.trigger("change")}}),e(t).on("keydown",function(t){var r=n.activeElement,i=e(".custom.dropdown.open");if(i.length>0){t.preventDefault(),t.which===13&&i.find("li.selected").trigger("click");if(t.which===38){var s=i.find("li.selected"),o=s.prev(":not(.disabled)");o.length>0&&(s.removeClass("selected"),o.addClass("selected"))}else if(t.which===40){var s=i.find("li.selected"),u=s.next(":not(.disabled)");u.length>0&&(s.removeClass("selected"),u.addClass("selected"))}}}),this.settings.init=!0},append_custom_markup:function(t,n){var r=e(n).hide(),i=r.attr("type"),s=r.next("span.custom."+i);s.length===0&&(s=e(' ').insertAfter(r)),s.toggleClass("checked",r.is(":checked")),s.toggleClass("disabled",r.is(":disabled"))},append_custom_select:function(t,n){var r=Foundation.libs.forms,i=e(n),s=i.next("div.custom.dropdown"),o=s.find("ul"),u=s.find(".current"),a=s.find(".selector"),f=i.find("option"),l=f.filter(":selected"),c=i.attr("class")?i.attr("class").split(" "):[],h=0,p="",d,v=!1;if(i.hasClass(r.settings.disable_class))return;if(s.length===0){var m=i.hasClass("small")?"small":i.hasClass("medium")?"medium":i.hasClass("large")?"large":i.hasClass("expand")?"expand":"";s=e(''),a=s.find(".selector"),o=s.find("ul"),p=f.map(function(){return""+e(this).html()+" "}).get().join(""),o.append(p),v=s.prepend(''+l.html()+" ").find(".current"),i.after(s).hide()}else p=f.map(function(){return""+e(this).html()+" "}).get().join(""),o.html("").append(p);s.toggleClass("disabled",i.is(":disabled")),d=o.find("li"),f.each(function(t){this.selected&&(d.eq(t).addClass("selected"),v&&v.html(e(this).html())),e(this).is(":disabled")&&d.eq(t).addClass("disabled")});if(!s.is(".small, .medium, .large, .expand")){s.addClass("open");var r=Foundation.libs.forms;r.hidden_fix.adjust(o),h=r.outerWidth(d)>h?r.outerWidth(d):h,Foundation.libs.forms.hidden_fix.reset(),s.removeClass("open")}},refresh_custom_select:function(t){var n=this,r=0,i=t.next(),s=t.find("option");i.find("ul").html(""),s.each(function(){var t=e(""+e(this).html()+" ");i.find("ul").append(t)}),s.each(function(t){this.selected&&(i.find("li").eq(t).addClass("selected"),i.find(".current").html(e(this).html())),e(this).is(":disabled")&&i.find("li").eq(t).addClass("disabled")}),i.removeAttr("style").find("ul").removeAttr("style"),i.find("li").each(function(){i.addClass("open"),n.outerWidth(e(this))>r&&(r=n.outerWidth(e(this))),i.removeClass("open")})},toggle_checkbox:function(e){var t=e.prev(),n=t[0];!1===t.is(":disabled")&&(n.checked=n.checked?!1:!0,e.toggleClass("checked"),t.trigger("change"))},toggle_radio:function(e){var t=e.prev(),n=t.closest("form.custom"),r=t[0];!1===t.is(":disabled")&&(n.find('input[type="radio"][name="'+this.escape(t.attr("name"))+'"]').next().not(e).removeClass("checked"),e.hasClass("checked")||e.toggleClass("checked"),r.checked=e.hasClass("checked"),t.trigger("change"))},escape:function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},hidden_fix:{tmp:[],hidden:null,adjust:function(t){var n=this;n.hidden=t.parents().andSelf().filter(":hidden"),n.hidden.each(function(){var t=e(this);n.tmp.push(t.attr("style")),t.css({visibility:"hidden",display:"block"})})},reset:function(){var t=this;t.hidden.each(function(n){var i=e(this),s=t.tmp[n];s===r?i.removeAttr("style"):i.attr("style",s)}),t.tmp=[],t.hidden=null}},off:function(){e(this.scope).off(".fndtn.forms")}}}(Foundation.zj,this,this.document),function(e,t,n,r){"use strict";Foundation.libs.joyride={name:"joyride",version:"4.1.2",defaults:{expose:!1,modal:!1,tipLocation:"bottom",nubPosition:"auto",scrollSpeed:300,timer:0,startTimerOnClick:!0,startOffset:0,nextButton:!0,tipAnimation:"fade",pauseAfter:[],exposed:[],tipAnimationFadeSpeed:300,cookieMonster:!1,cookieName:"joyride",cookieDomain:!1,cookieExpires:365,tipContainer:"body",postRideCallback:function(){},postStepCallback:function(){},preStepCallback:function(){},preRideCallback:function(){},postExposeCallback:function(){},template:{link:'× ',timer:'
',tip:'
',wrapper:'
',button:' ',modal:'
',expose:'
',exposeCover:'
'}},settings:{},init:function(t,n,r){return this.scope=t||this.scope,Foundation.inherit(this,"throttle data_options scrollTo scrollLeft delay"),typeof n=="object"?e.extend(!0,this.settings,this.defaults,n):e.extend(!0,this.settings,this.defaults,r),typeof n!="string"?(this.settings.init||this.events(),this.settings.init):this[n].call(this,r)},events:function(){var n=this;e(this.scope).on("click.joyride",".joyride-next-tip, .joyride-modal-bg",function(e){e.preventDefault(),this.settings.$li.next().length<1?this.end():this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(),this.startTimer()):(this.hide(),this.show())}.bind(this)).on("click.joyride",".joyride-close-tip",function(e){e.preventDefault(),this.end()}.bind(this)),e(t).on("resize.fndtn.joyride",n.throttle(function(){if(e("[data-joyride]").length>0&&n.settings.$next_tip){if(n.settings.exposed.length>0){var t=e(n.settings.exposed);t.each(function(){var t=e(this);n.un_expose(t),n.expose(t)})}n.is_phone()?n.pos_phone():n.pos_default(!1,!0)}},100)),this.settings.init=!0},start:function(){var t=this,n=e(this.scope).find("[data-joyride]"),r=["timer","scrollSpeed","startOffset","tipAnimationFadeSpeed","cookieExpires"],i=r.length;this.settings.init||this.init(),this.settings.$content_el=n,this.settings.$body=e(this.settings.tipContainer),this.settings.body_offset=e(this.settings.tipContainer).position(),this.settings.$tip_content=this.settings.$content_el.find("> li"),this.settings.paused=!1,this.settings.attempts=0,this.settings.tipLocationPatterns={top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},typeof e.cookie!="function"&&(this.settings.cookieMonster=!1);if(!this.settings.cookieMonster||this.settings.cookieMonster&&e.cookie(this.settings.cookieName)===null)this.settings.$tip_content.each(function(n){var s=e(this);e.extend(!0,t.settings,t.data_options(s));for(var o=i-1;o>=0;o--)t.settings[r[o]]=parseInt(t.settings[r[o]],10);t.create({$li:s,index:n})}),!this.settings.startTimerOnClick&&this.settings.timer>0?(this.show("init"),this.startTimer()):this.show("init")},resume:function(){this.set_li(),this.show()},tip_template:function(t){var n,r;return t.tip_class=t.tip_class||"",n=e(this.settings.template.tip).addClass(t.tip_class),r=e.trim(e(t.li).html())+this.button_text(t.button_text)+this.settings.template.link+this.timer_instance(t.index),n.append(e(this.settings.template.wrapper)),n.first().attr("data-index",t.index),e(".joyride-content-wrapper",n).append(r),n[0]},timer_instance:function(t){var n;return t===0&&this.settings.startTimerOnClick&&this.settings.timer>0||this.settings.timer===0?n="":n=this.outerHTML(e(this.settings.template.timer)[0]),n},button_text:function(t){return this.settings.nextButton?(t=e.trim(t)||"Next",t=this.outerHTML(e(this.settings.template.button).append(t)[0])):t="",t},create:function(t){var n=t.$li.attr("data-button")||t.$li.attr("data-text"),r=t.$li.attr("class"),i=e(this.tip_template({tip_class:r,index:t.index,button_text:n,li:t.$li}));e(this.settings.tipContainer).append(i)},show:function(t){var n=null;this.settings.$li===r||e.inArray(this.settings.$li.index(),this.settings.pauseAfter)===-1?(this.settings.paused?this.settings.paused=!1:this.set_li(t),this.settings.attempts=0,this.settings.$li.length&&this.settings.$target.length>0?(t&&(this.settings.preRideCallback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.show_modal()),this.settings.preStepCallback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.settings.expose&&this.expose(),this.settings.tipSettings=e.extend(this.settings,this.data_options(this.settings.$li)),this.settings.timer=parseInt(this.settings.timer,10),this.settings.tipSettings.tipLocationPattern=this.settings.tipLocationPatterns[this.settings.tipSettings.tipLocation],/body/i.test(this.settings.$target.selector)||this.scroll_to(),this.is_phone()?this.pos_phone(!0):this.pos_default(!0),n=this.settings.$next_tip.find(".joyride-timer-indicator"),/pop/i.test(this.settings.tipAnimation)?(n.width(0),this.settings.timer>0?(this.settings.$next_tip.show(),this.delay(function(){n.animate({width:n.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tipAnimationFadeSpeed)):this.settings.$next_tip.show()):/fade/i.test(this.settings.tipAnimation)&&(n.width(0),this.settings.timer>0?(this.settings.$next_tip.fadeIn(this.settings.tipAnimationFadeSpeed).show(),this.delay(function(){n.animate({width:n.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tipAnimationFadeSpeed)):this.settings.$next_tip.fadeIn(this.settings.tipAnimationFadeSpeed)),this.settings.$current_tip=this.settings.$next_tip):this.settings.$li&&this.settings.$target.length<1?this.show():this.end()):this.settings.paused=!0},is_phone:function(){return Modernizr?Modernizr.mq("only screen and (max-width: 767px)")||e(".lt-ie9").length>0:this.settings.$window.width()<767?!0:!1},hide:function(){this.settings.modal&&this.settings.expose&&this.un_expose(),this.settings.modal||e(".joyride-modal-bg").hide(),this.settings.$current_tip.hide(),this.settings.postStepCallback(this.settings.$li.index(),this.settings.$current_tip)},set_li:function(e){e?(this.settings.$li=this.settings.$tip_content.eq(this.settings.startOffset),this.set_next_tip(),this.settings.$current_tip=this.settings.$next_tip):(this.settings.$li=this.settings.$li.next(),this.set_next_tip()),this.set_target()},set_next_tip:function(){this.settings.$next_tip=e(".joyride-tip-guide[data-index='"+this.settings.$li.index()+"']"),this.settings.$next_tip.data("closed","")},set_target:function(){var t=this.settings.$li.attr("data-class"),r=this.settings.$li.attr("data-id"),i=function(){return r?e(n.getElementById(r)):t?e("."+t).first():e("body")};this.settings.$target=i()},scroll_to:function(){var n,r;n=e(t).height()/2,r=Math.ceil(this.settings.$target.offset().top-n+this.outerHeight(this.settings.$next_tip)),r>0&&this.scrollTo(e("html, body"),r,this.settings.scrollSpeed)},paused:function(){return e.inArray(this.settings.$li.index()+1,this.settings.pauseAfter)===-1?!0:!1},restart:function(){this.hide(),this.settings.$li=r,this.show("init")},pos_default:function(n,r){var i=Math.ceil(e(t).height()/2),s=this.settings.$next_tip.offset(),o=this.settings.$next_tip.find(".joyride-nub"),u=Math.ceil(this.outerWidth(o)/2),a=Math.ceil(this.outerHeight(o)/2),f=n||!1;f&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show()),typeof r=="undefined"&&(r=!1);if(!/body/i.test(this.settings.$target.selector)){if(this.bottom()){var l=this.settings.$target.offset().left;Foundation.rtl&&(l=this.settings.$target.offset().width-this.settings.$next_tip.width()+l),this.settings.$next_tip.css({top:this.settings.$target.offset().top+a+this.outerHeight(this.settings.$target),left:l}),this.nub_position(o,this.settings.tipSettings.nubPosition,"top")}else if(this.top()){var l=this.settings.$target.offset().left;Foundation.rtl&&(l=this.settings.$target.offset().width-this.settings.$next_tip.width()+l),this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.outerHeight(this.settings.$next_tip)-a,left:l}),this.nub_position(o,this.settings.tipSettings.nubPosition,"bottom")}else this.right()?(this.settings.$next_tip.css({top:this.settings.$target.offset().top,left:this.outerWidth(this.settings.$target)+this.settings.$target.offset().left+u}),this.nub_position(o,this.settings.tipSettings.nubPosition,"left")):this.left()&&(this.settings.$next_tip.css({top:this.settings.$target.offset().top,left:this.settings.$target.offset().left-this.outerWidth(this.settings.$next_tip)-u}),this.nub_position(o,this.settings.tipSettings.nubPosition,"right"));!this.visible(this.corners(this.settings.$next_tip))&&this.settings.attempts0&&arguments[0]instanceof e)i=arguments[0];else{if(!this.settings.$target||!!/body/i.test(this.settings.$target.selector))return!1;i=this.settings.$target}if(i.length<1)return t.console&&console.error("element not valid",i),!1;n=e(this.settings.template.expose),this.settings.$body.append(n),n.css({top:i.offset().top,left:i.offset().left,width:this.outerWidth(i,!0),height:this.outerHeight(i,!0)}),r=e(this.settings.template.exposeCover),s={zIndex:i.css("z-index"),position:i.css("position")},i.css("z-index",n.css("z-index")*1+1),s.position=="static"&&i.css("position","relative"),i.data("expose-css",s),r.css({top:i.offset().top,left:i.offset().left,width:this.outerWidth(i,!0),height:this.outerHeight(i,!0)}),this.settings.$body.append(r),n.addClass(o),r.addClass(o),i.data("expose",o),this.settings.postExposeCallback(this.settings.$li.index(),this.settings.$next_tip,i),this.add_exposed(i)},un_expose:function(){var n,r,i,s,o=!1;if(arguments.length>0&&arguments[0]instanceof e)r=arguments[0];else{if(!this.settings.$target||!!/body/i.test(this.settings.$target.selector))return!1;r=this.settings.$target}if(r.length<1)return t.console&&console.error("element not valid",r),!1;n=r.data("expose"),i=e("."+n),arguments.length>1&&(o=arguments[1]),o===!0?e(".joyride-expose-wrapper,.joyride-expose-cover").remove():i.remove(),s=r.data("expose-css"),s.zIndex=="auto"?r.css("z-index",""):r.css("z-index",s.zIndex),s.position!=r.css("position")&&(s.position=="static"?r.css("position",""):r.css("position",s.position)),r.removeData("expose"),r.removeData("expose-z-index"),this.remove_exposed(r)},add_exposed:function(t){this.settings.exposed=this.settings.exposed||[],t instanceof e||typeof t=="object"?this.settings.exposed.push(t[0]):typeof t=="string"&&this.settings.exposed.push(t)},remove_exposed:function(t){var n,r;t instanceof e?n=t[0]:typeof t=="string"&&(n=t),this.settings.exposed=this.settings.exposed||[],r=this.settings.exposed.length;for(var i=0;ia&&(a=u),[n.offset().topn.offset().left]},visible:function(e){var t=e.length;while(t--)if(e[t])return!1;return!0},nub_position:function(e,t,n){t==="auto"?e.addClass(n):e.addClass(t)},startTimer:function(){this.settings.$li.length?this.settings.automate=setTimeout(function(){this.hide(),this.show(),this.startTimer()}.bind(this),this.settings.timer):clearTimeout(this.settings.automate)},end:function(){this.settings.cookieMonster&&e.cookie(this.settings.cookieName,"ridden",{expires:this.settings.cookieExpires,domain:this.settings.cookieDomain}),this.settings.timer>0&&clearTimeout(this.settings.automate),this.settings.modal&&this.settings.expose&&this.un_expose(),this.settings.$next_tip.data("closed",!0),e(".joyride-modal-bg").hide(),this.settings.$current_tip.hide(),this.settings.postStepCallback(this.settings.$li.index(),this.settings.$current_tip),this.settings.postRideCallback(this.settings.$li.index(),this.settings.$current_tip)},outerHTML:function(e){return e.outerHTML||(new XMLSerializer).serializeToString(e)},off:function(){e(this.scope).off(".joyride"),e(t).off(".joyride"),e(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),e(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(this.settings.automate),this.settings={}}}}(Foundation.zj,this,this.document),function(e,t,n,r){"use strict";Foundation.libs.magellan={name:"magellan",version:"4.0.0",settings:{activeClass:"active"},init:function(t,n,r){return this.scope=t||this.scope,Foundation.inherit(this,"data_options"),typeof n=="object"&&e.extend(!0,this.settings,n),typeof n!="string"?(this.settings.init||(this.fixed_magellan=e("[data-magellan-expedition]"),this.set_threshold(),this.last_destination=e("[data-magellan-destination]").last(),this.events()),this.settings.init):this[n].call(this,r)},events:function(){var n=this;e(this.scope).on("arrival.fndtn.magellan","[data-magellan-arrival]",function(t){var r=e(this),i=r.closest("[data-magellan-expedition]"),s=i.attr("data-magellan-active-class")||n.settings.activeClass;r.closest("[data-magellan-expedition]").find("[data-magellan-arrival]").not(r).removeClass(s),r.addClass(s)}),this.fixed_magellan.on("update-position.fndtn.magellan",function(){var t=e(this)}).trigger("update-position"),e(t).on("resize.fndtn.magellan",function(){this.fixed_magellan.trigger("update-position")}.bind(this)).on("scroll.fndtn.magellan",function(){var r=e(t).scrollTop();n.fixed_magellan.each(function(){var t=e(this);typeof t.data("magellan-top-offset")=="undefined"&&t.data("magellan-top-offset",t.offset().top),typeof t.data("magellan-fixed-position")=="undefined"&&t.data("magellan-fixed-position",!1);var i=r+n.settings.threshold>t.data("magellan-top-offset"),s=t.attr("data-magellan-top-offset");t.data("magellan-fixed-position")!=i&&(t.data("magellan-fixed-position",i),i?t.css({position:"fixed",top:0}):t.css({position:"",top:""}),i&&typeof s!="undefined"&&s!=0&&t.css({position:"fixed",top:s+"px"}))})}),this.last_destination.length>0&&e(t).on("scroll.fndtn.magellan",function(r){var i=e(t).scrollTop(),s=i+e(t).height(),o=Math.ceil(n.last_destination.offset().top);e("[data-magellan-destination]").each(function(){var t=e(this),r=t.attr("data-magellan-destination"),u=t.offset().top-i;u<=n.settings.threshold&&e("[data-magellan-arrival='"+r+"']").trigger("arrival"),s>=e(n.scope).height()&&o>i&&o0?this.outerHeight(this.fixed_magellan,!0):0)},off:function(){e(this.scope).off(".fndtn.magellan")}}}(Foundation.zj,this,this.document),function(e,t,n,r){"use strict";Foundation.libs=Foundation.libs||{},Foundation.libs.orbit={name:"orbit",version:"4.1.0",settings:{timer_speed:1e4,animation_speed:500,bullets:!0,stack_on_small:!0,container_class:"orbit-container",stack_on_small_class:"orbit-stack-on-small",next_class:"orbit-next",prev_class:"orbit-prev",timer_container_class:"orbit-timer",timer_paused_class:"paused",timer_progress_class:"orbit-progress",slides_container_class:"orbit-slides-container",bullets_container_class:"orbit-bullets",bullets_active_class:"active",slide_number_class:"orbit-slide-number",caption_class:"orbit-caption",active_slide_class:"active",orbit_transition_class:"orbit-transitioning"},init:function(t,n,r){var i=this;Foundation.inherit(i,"data_options"),typeof n=="object"&&e.extend(!0,i.settings,n),e("[data-orbit]",t).each(function(t,n){var r=e.extend(!0,{},i);r._init(t,n)})},_container_html:function(){var e=this;return'
'},_bullets_container_html:function(t){var n=this,r=e(' ');return t.each(function(t,i){var s=e(' ');t===0&&s.addClass(n.settings.bullets_active_class),r.append(s)}),r},_slide_number_html:function(t,n){var r=this,i=e('
');return i.append(""+t+" of "+n+" "),i},_timer_html:function(){var e=this;return typeof e.settings.timer_speed=="number"&&e.settings.timer_speed>0?'':""},_next_html:function(){var e=this;return'Next '},_prev_html:function(){var e=this;return'Prev '},_init:function(t,n){var r=this,i=e(n),s=i.wrap(r._container_html()).parent(),o=i.children();e.extend(!0,r.settings,r.data_options(i)),s.append(r._prev_html()),s.append(r._next_html()),i.addClass(r.settings.slides_container_class),r.settings.stack_on_small&&s.addClass(r.settings.stack_on_small_class),s.append(r._slide_number_html(1,o.length)),s.append(r._timer_html()),r.settings.bullets&&s.after(r._bullets_container_html(o)),i.append(o.first().clone().attr("data-orbit-slide","")),i.prepend(o.last().clone().attr("data-orbit-slide","")),i.css("marginLeft","-100%"),o.first().addClass(r.settings.active_slide_class),r._init_events(i),r._init_dimensions(i),r._start_timer(i)},_init_events:function(i){var s=this,o=i.parent();e(t).on("load.fndtn.orbit",function(){i.height(""),i.height(i.height(o.height())),i.trigger("orbit:ready")}).on("resize.fndtn.orbit",function(){i.height(""),i.height(i.height(o.height()))}),e(n).on("click.fndtn.orbit","[data-orbit-link]",function(t){t.preventDefault();var n=e(t.currentTarget).attr("data-orbit-link"),r=i.find("[data-orbit-slide="+n+"]").first();r.length===1&&(s._reset_timer(i,!0),s._goto(i,r.index(),function(){}))}),o.siblings("."+s.settings.bullets_container_class).on("click.fndtn.orbit","[data-orbit-slide-number]",function(t){t.preventDefault(),s._reset_timer(i,!0),s._goto(i,e(t.currentTarget).data("orbit-slide-number"),function(){})}),o.on("orbit:after-slide-change.fndtn.orbit",function(e,t){var n=o.find("."+s.settings.slide_number_class);n.length===1&&n.replaceWith(s._slide_number_html(t.slide_number,t.total_slides))}).on("orbit:next-slide.fndtn.orbit click.fndtn.orbit","."+s.settings.next_class,function(e){e.preventDefault(),s._reset_timer(i,!0),s._goto(i,"next",function(){})}).on("orbit:prev-slide.fndtn.orbit click.fndtn.orbit","."+s.settings.prev_class,function(e){e.preventDefault(),s._reset_timer(i,!0),s._goto(i,"prev",function(){})}).on("orbit:toggle-play-pause.fndtn.orbit click.fndtn.orbit touchstart.fndtn.orbit","."+s.settings.timer_container_class,function(t){t.preventDefault();var n=e(t.currentTarget).toggleClass(s.settings.timer_paused_class),r=n.closest("."+s.settings.container_class).find("."+s.settings.slides_container_class);n.hasClass(s.settings.timer_paused_class)?s._stop_timer(r):s._start_timer(r)}).on("touchstart.fndtn.orbit",function(e){e.touches||(e=e.originalEvent);var t={start_page_x:e.touches[0].pageX,start_page_y:e.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:r};o.data("swipe-transition",t),e.stopPropagation()}).on("touchmove.fndtn.orbit",function(e){e.touches||(e=e.originalEvent);if(e.touches.length>1||e.scale&&e.scale!==1)return;var t=o.data("swipe-transition");typeof t=="undefined"&&(t={}),t.delta_x=e.touches[0].pageX-t.start_page_x,typeof t.is_scrolling=="undefined"&&(t.is_scrolling=!!(t.is_scrolling||Math.abs(t.delta_x)").attr(n.extend(f(this),{type:"text"}))}e.removeAttr("name").data({"placeholder-password":!0,"placeholder-id":s}).bind("focus.placeholder",l),r.data({"placeholder-textinput":e,"placeholder-id":s}).before(e)}r=r.removeAttr("id").hide().prev().attr("id",s).show()}r.addClass("placeholder"),r[0].value=r.attr("placeholder")}else r.removeClass("placeholder")}var r="placeholder"in t.createElement("input"),i="placeholder"in t.createElement("textarea"),s=n.fn,o=n.valHooks,u,a;r&&i?(a=s.placeholder=function(){return this},a.input=a.textarea=!0):(a=s.placeholder=function(){var e=this;return e.filter((r?"textarea":":input")+"[placeholder]").not(".placeholder").bind({"focus.placeholder":l,"blur.placeholder":c}).data("placeholder-enabled",!0).trigger("blur.placeholder"),e},a.input=r,a.textarea=i,u={get:function(e){var t=n(e);return t.data("placeholder-enabled")&&t.hasClass("placeholder")?"":e.value},set:function(e,r){var i=n(e);return i.data("placeholder-enabled")?(r==""?(e.value=r,e!=t.activeElement&&c.call(e)):i.hasClass("placeholder")?l.call(e,!0,r)||(e.value=r):e.value=r,i):e.value=r}},r||(o.input=u),i||(o.textarea=u),n(function(){n(t).delegate("form","submit.placeholder",function(){var e=n(".placeholder",this).each(l);setTimeout(function(){e.each(c)},10)})}),n(e).bind("beforeunload.placeholder",function(){n(".placeholder").each(function(){this.value=""})}))}(this,document,Foundation.zj),function(e,t,n,r){"use strict";Foundation.libs.reveal={name:"reveal",version:"4.1.2",locked:!1,settings:{animation:"fadeAndPop",animationSpeed:250,closeOnBackgroundClick:!0,dismissModalClass:"close-reveal-modal",bgClass:"reveal-modal-bg",open:function(){},opened:function(){},close:function(){},closed:function(){},bg:e(".reveal-modal-bg"),css:{open:{opacity:0,visibility:"visible",display:"block"},close:{opacity:1,visibility:"hidden",display:"none"}}},init:function(t,n,r){return this.scope=t||this.scope,Foundation.inherit(this,"data_options delay"),typeof n=="object"?e.extend(!0,this.settings,n):typeof r!="undefined"&&e.extend(!0,this.settings,r),typeof n!="string"?(this.events(),this.settings.init):this[n].call(this,r)},events:function(){var t=this;return e(this.scope).off(".fndtn.reveal").on("click.fndtn.reveal","[data-reveal-id]",function(n){n.preventDefault(),t.locked||(t.locked=!0,t.open.call(t,e(this)))}).on("click.fndtn.reveal touchend.click.fndtn.reveal",this.close_targets(),function(n){n.preventDefault(),t.locked||(t.locked=!0,t.close.call(t,e(this).closest(".reveal-modal")))}).on("open.fndtn.reveal",".reveal-modal",this.settings.open).on("opened.fndtn.reveal",".reveal-modal",this.settings.opened).on("opened.fndtn.reveal",".reveal-modal",this.open_video).on("close.fndtn.reveal",".reveal-modal",this.settings.close).on("closed.fndtn.reveal",".reveal-modal",this.settings.closed).on("closed.fndtn.reveal",".reveal-modal",this.close_video),!0},open:function(t){if(t)var n=e("#"+t.data("reveal-id"));else var n=e(this.scope);if(!n.hasClass("open")){var r=e(".reveal-modal.open");typeof n.data("css-top")=="undefined"&&n.data("css-top",parseInt(n.css("top"),10)).data("offset",this.cache_offset(n)),n.trigger("open"),r.length<1&&this.toggle_bg(n),this.hide(r,this.settings.css.open),this.show(n,this.settings.css.open)}},close:function(t){var t=t||e(this.scope),n=e(".reveal-modal.open");n.length>0&&(this.locked=!0,t.trigger("close"),this.toggle_bg(t),this.hide(n,this.settings.css.close))},close_targets:function(){var e="."+this.settings.dismissModalClass;return this.settings.closeOnBackgroundClick?e+", ."+this.settings.bgClass:e},toggle_bg:function(t){e(".reveal-modal-bg").length===0&&(this.settings.bg=e("
",{"class":this.settings.bgClass}).appendTo("body")),this.settings.bg.filter(":visible").length>0?this.hide(this.settings.bg):this.show(this.settings.bg)},show:function(n,r){if(r){if(/pop/i.test(this.settings.animation)){r.top=e(t).scrollTop()-n.data("offset")+"px";var i={top:e(t).scrollTop()+n.data("css-top")+"px",opacity:1};return this.delay(function(){return n.css(r).animate(i,this.settings.animationSpeed,"linear",function(){this.locked=!1,n.trigger("opened")}.bind(this)).addClass("open")}.bind(this),this.settings.animationSpeed/2)}if(/fade/i.test(this.settings.animation)){var i={opacity:1};return this.delay(function(){return n.css(r).animate(i,this.settings.animationSpeed,"linear",function(){this.locked=!1,n.trigger("opened")}.bind(this)).addClass("open")}.bind(this),this.settings.animationSpeed/2)}return n.css(r).show().css({opacity:1}).addClass("open").trigger("opened")}return/fade/i.test(this.settings.animation)?n.fadeIn(this.settings.animationSpeed/2):n.show()},hide:function(n,r){if(r){if(/pop/i.test(this.settings.animation)){var i={top:-e(t).scrollTop()-n.data("offset")+"px",opacity:0};return this.delay(function(){return n.animate(i,this.settings.animationSpeed,"linear",function(){this.locked=!1,n.css(r).trigger("closed")}.bind(this)).removeClass("open")}.bind(this),this.settings.animationSpeed/2)}if(/fade/i.test(this.settings.animation)){var i={opacity:0};return this.delay(function(){return n.animate(i,this.settings.animationSpeed,"linear",function(){this.locked=!1,n.css(r).trigger("closed")}.bind(this)).removeClass("open")}.bind(this),this.settings.animationSpeed/2)}return n.hide().css(r).removeClass("open").trigger("closed")}return/fade/i.test(this.settings.animation)?n.fadeOut(this.settings.animationSpeed/2):n.hide()},close_video:function(t){var n=e(this).find(".flex-video"),r=n.find("iframe");r.length>0&&(r.attr("data-src",r[0].src),r.attr("src","about:blank"),n.fadeOut(100).hide())},open_video:function(t){var n=e(this).find(".flex-video"),r=n.find("iframe");if(r.length>0){var i=r.attr("data-src");typeof i=="string"&&(r[0].src=r.attr("data-src")),n.show().fadeIn(100)}},cache_offset:function(e){var t=e.show().height()+parseInt(e.css("top"),10);return e.hide(),t},off:function(){e(this.scope).off(".fndtn.reveal")}}}(Foundation.zj,this,this.document),function(e,t,n,r){"use strict";Foundation.libs.section={name:"section",version:"4.1.2",settings:{deep_linking:!1,one_up:!0,callback:function(){}},init:function(e,t,n){var r=this;return Foundation.inherit(this,"throttle data_options position_right offset_right"),typeof t!="string"?(this.set_active_from_hash(),this.events(),!0):this[t].call(this,n)},events:function(){var r=this;e(this.scope).on("click.fndtn.section","[data-section] .title, [data-section] [data-section-title]",function(t){var n=e(this),i=n.closest("[data-section]");r.toggle_active.call(this,t,r)}),e(t).on("resize.fndtn.section",r.throttle(function(){r.resize.call(this)},30)).on("hashchange",function(){r.settings.toggled||(r.set_active_from_hash(),e(this).trigger("resize"))}).trigger("resize"),e(n).on("click.fndtn.section",function(t){e(t.target).closest(".title, [data-section-title]").length<1&&e('[data-section="vertical-nav"], [data-section="horizontal-nav"]').find("section, .section, [data-section-region]").removeClass("active").attr("style","")})},toggle_active:function(t,n){var r=e(this),i=r.closest("section, .section, [data-section-region]"),s=i.find(".content, [data-section-content]"),o=i.closest("[data-section]"),n=Foundation.libs.section,u=e.extend({},n.settings,n.data_options(o));n.settings.toggled=!0,!u.deep_linking&&s.length>0&&t.preventDefault();if(i.hasClass("active"))(n.small(o)||n.is_vertical(o)||n.is_horizontal(o)||n.is_accordion(o))&&i.removeClass("active").attr("style","");else{var a=null,f=n.outerHeight(i.find(".title, [data-section-title]"));if(n.small(o)||u.one_up)a=r.closest("[data-section]").find("section.active, .section.active, .active[data-section-region]"),n.small(o)?a.attr("style",""):a.attr("style","visibility: hidden; padding-top: "+f+"px;");n.small(o)?i.attr("style",""):i.css("padding-top",f),i.addClass("active"),a!==null&&a.removeClass("active").attr("style","")}setTimeout(function(){n.settings.toggled=!1},300),u.callback()},resize:function(){var t=e("[data-section]"),n=Foundation.libs.section;t.each(function(){var t=e(this),r=t.find("section.active, .section.active, .active[data-section-region]"),i=e.extend({},n.settings,n.data_options(t));if(r.length>1)r.not(":first").removeClass("active").attr("style","");else if(r.length<1&&!n.is_vertical(t)&&!n.is_horizontal(t)&&!n.is_accordion(t)){var s=t.find("section, .section, [data-section-region]").first();i.one_up&&s.addClass("active"),n.small(t)?s.attr("style",""):s.css("padding-top",n.outerHeight(s.find(".title, [data-section-title]")))}n.small(t)?r.attr("style",""):r.css("padding-top",n.outerHeight(r.find(".title, [data-section-title]"))),n.position_titles(t),n.is_horizontal(t)&&!n.small(t)?n.position_content(t):n.position_content(t,!1)})},is_vertical:function(e){return/vertical-nav/i.test(e.data("section"))},is_horizontal:function(e){return/horizontal-nav/i.test(e.data("section"))},is_accordion:function(e){return/accordion/i.test(e.data("section"))},is_tabs:function(e){return/tabs/i.test(e.data("section"))},set_active_from_hash:function(){var n=t.location.hash.substring(1),r=e("[data-section]"),i=this;r.each(function(){var t=e(this),r=e.extend({},i.settings,i.data_options(t));n.length>0&&r.deep_linking&&(t.find("section, .section, [data-section-region]").attr("style","").removeClass("active"),t.find('.content[data-slug="'+n+'"], [data-section-content][data-slug="'+n+'"]').closest("section, .section, [data-section-region]").addClass("active"))})},position_titles:function(t,n){var r=t.find(".title, [data-section-title]"),i=0,s=this;typeof n=="boolean"?r.attr("style",""):r.each(function(){s.rtl?e(this).css("right",i):e(this).css("left",i),i+=s.outerWidth(e(this))})},position_content:function(t,n){var r=t.find(".title, [data-section-title]"),i=t.find(".content, [data-section-content]"),s=this;typeof n=="boolean"?(i.attr("style",""),t.attr("style","")):(t.find("section, .section, [data-section-region]").each(function(){var t=e(this).find(".title, [data-section-title]"),n=e(this).find(".content, [data-section-content]");s.rtl?n.css({right:s.position_right(t)+1,top:s.outerHeight(t)-2}):n.css({left:t.position().left-1,top:s.outerHeight(t)-2})}),typeof Zepto=="function"?t.height(this.outerHeight(r.first())):t.height(this.outerHeight(r.first())-2))},position_right:function(e){var t=e.closest("[data-section]"),n=e.closest("[data-section]").width(),r=t.find(".title, [data-section-title]").length;return n-e.position().left-e.width()*(e.index()+1)-r},reflow:function(){e("[data-section]").trigger("resize")},small:function(t){var n=e.extend({},this.settings,this.data_options(t));return this.is_tabs(t)?!1:t&&this.is_accordion(t)?!0:e("html").hasClass("lt-ie9")?!0:e("html").hasClass("ie8compat")?!0:e(this.scope).width()<768},off:function(){e(this.scope).off(".fndtn.section"),e(t).off(".fndtn.section"),e(n).off(".fndtn.section")}}}(Foundation.zj,this,this.document),function(e,t,n,r){"use strict";Foundation.libs.tooltips={name:"tooltips",version:"4.1.0",settings:{selector:".has-tip",additionalInheritableClasses:[],tooltipClass:".tooltip",tipTemplate:function(e,t){return''+t+' '}},cache:{},init:function(t,n,r){var i=this;this.scope=t||this.scope,typeof n=="object"&&e.extend(!0,this.settings,n);if(typeof n=="string")return this[n].call(this,r);Modernizr.touch?e(this.scope).on("click.fndtn.tooltip touchstart.fndtn.tooltip touchend.fndtn.tooltip","[data-tooltip]",function(t){t.preventDefault(),e(i.settings.tooltipClass).hide(),i.showOrCreateTip(e(this))}).on("click.fndtn.tooltip touchstart.fndtn.tooltip touchend.fndtn.tooltip",this.settings.tooltipClass,function(t){t.preventDefault(),e(this).fadeOut(150)}):e(this.scope).on("mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip","[data-tooltip]",function(t){var n=e(this);t.type==="mouseover"||t.type==="mouseenter"?i.showOrCreateTip(n):(t.type==="mouseout"||t.type==="mouseleave")&&i.hide(n)})},showOrCreateTip:function(e){var t=this.getTip(e);return t&&t.length>0?this.show(e):this.create(e)},getTip:function(t){var n=this.selector(t),r=null;return n&&(r=e("span[data-selector="+n+"]"+this.settings.tooltipClass)),typeof r=="object"?r:!1},selector:function(e){var t=e.attr("id"),n=e.attr("data-tooltip")||e.attr("data-selector");return(t&&t.length<1||!t)&&typeof n!="string"&&(n="tooltip"+Math.random().toString(36).substring(7),e.attr("data-selector",n)),t&&t.length>0?t:n},create:function(t){var n=e(this.settings.tipTemplate(this.selector(t),e("").html(t.attr("title")).html())),r=this.inheritable_classes(t);n.addClass(r).appendTo("body"),Modernizr.touch&&n.append('
tap to close '),t.removeAttr("title").attr("title",""),this.show(t)},reposition:function(n,r,i){var s,o,u,a,f,l;r.css("visibility","hidden").show(),s=n.data("width"),o=r.children(".nub"),u=this.outerHeight(o),a=this.outerHeight(o),l=function(e,t,n,r,i,s){return e.css({top:t?t:"auto",bottom:r?r:"auto",left:i?i:"auto",right:n?n:"auto",width:s?s:"auto"}).end()},l(r,n.offset().top+this.outerHeight(n)+10,"auto","auto",n.offset().left,s);if(e(t).width()<767)l(r,n.offset().top+this.outerHeight(n)+10,"auto","auto",12.5,e(this.scope).width()),r.addClass("tip-override"),l(o,-u,"auto","auto",n.offset().left);else{var c=n.offset().left;Foundation.rtl&&(c=n.offset().left+n.offset().width-this.outerWidth(r)),l(r,n.offset().top+this.outerHeight(n)+10,"auto","auto",c,s),r.removeClass("tip-override"),i&&i.indexOf("tip-top")>-1?l(r,n.offset().top-this.outerHeight(r),"auto","auto",c,s).removeClass("tip-override"):i&&i.indexOf("tip-left")>-1?l(r,n.offset().top+this.outerHeight(n)/2-u*2.5,"auto","auto",n.offset().left-this.outerWidth(r)-u,s).removeClass("tip-override"):i&&i.indexOf("tip-right")>-1&&l(r,n.offset().top+this.outerHeight(n)/2-u*2.5,"auto","auto",n.offset().left+this.outerWidth(n)+u,s).removeClass("tip-override")}r.css("visibility","visible").hide()},inheritable_classes:function(t){var n=["tip-top","tip-left","tip-bottom","tip-right","noradius"].concat(this.settings.additionalInheritableClasses),r=t.attr("class"),i=r?e.map(r.split(" "),function(t,r){if(e.inArray(t,n)!==-1)return t}).join(" "):"";return e.trim(i)},show:function(e){var t=this.getTip(e);this.reposition(e,t,e.attr("class")),t.fadeIn(150)},hide:function(e){var t=this.getTip(e);t.fadeOut(150)},reload:function(){var t=e(this);return t.data("fndtn-tooltips")?t.foundationTooltips("destroy").foundationTooltips("init"):t.foundationTooltips("init")},off:function(){e(this.scope).off(".fndtn.tooltip"),e(this.settings.tooltipClass).each(function(t){e("[data-tooltip]").get(t).attr("title",e(this).text())}).remove()}}}(Foundation.zj,this,this.document),function(e,t,n,r){"use strict";Foundation.libs.topbar={name:"topbar",version:"4.1.2",settings:{index:0,stickyClass:"sticky",custom_back_text:!0,back_text:"Back",init:!1},init:function(n,r,i){var s=this;return typeof r=="object"&&e.extend(!0,this.settings,r),typeof r!="string"?(e(".top-bar").each(function(){s.settings.$w=e(t),s.settings.$topbar=e(this),s.settings.$section=s.settings.$topbar.find("section"),s.settings.$titlebar=s.settings.$topbar.children("ul").first(),s.settings.$topbar.data("index",0);var n=e("
").insertAfter(s.settings.$topbar);s.settings.breakPoint=n.width(),n.remove(),s.assemble(),s.settings.$topbar.parent().hasClass("fixed")&&e("body").css("padding-top",s.outerHeight(s.settings.$topbar))}),s.settings.init||this.events(),this.settings.init):this[r].call(this,i)},events:function(){var n=this,r=this.outerHeight(e(".top-bar"));e(this.scope).on("click.fndtn.topbar",".top-bar .toggle-topbar",function(i){var s=e(this).closest(".top-bar"),o=s.find("section, .section"),u=s.children("ul").first();s.data("height")||n.largestUL(),i.preventDefault(),n.breakpoint()&&s.toggleClass("expanded").css("min-height",""),s.hasClass("expanded")?s.parent().hasClass("fixed")&&(s.parent().removeClass("fixed"),s.addClass("fixed"),e("body").css("padding-top","0"),t.scrollTo(0,0)):(n.rtl?(o.css({right:"0%"}),o.find(">.name").css({right:"100%"})):(o.css({left:"0%"}),o.find(">.name").css({left:"100%"})),o.find("li.moved").removeClass("moved"),s.data("index",0),s.hasClass("fixed")&&(s.parent().addClass("fixed"),s.removeClass("fixed"),e("body").css("padding-top",r)))}).on("click.fndtn.topbar",".top-bar .has-dropdown>a",function(t){var r=e(this).closest(".top-bar"),i=r.find("section, .section"),s=r.children("ul").first();(Modernizr.touch||n.breakpoint())&&t.preventDefault();if(n.breakpoint()){var o=e(this),u=o.closest("li");r.data("index",r.data("index")+1),u.addClass("moved"),n.rtl?(i.css({right:-(100*r.data("index"))+"%"}),i.find(">.name").css({right:100*r.data("index")+"%"})):(i.css({left:-(100*r.data("index"))+"%"}),i.find(">.name").css({left:100*r.data("index")+"%"})),o.siblings("ul").height(r.data("height")+n.outerHeight(s,!0)),r.css("min-height",r.data("height")+n.outerHeight(s,!0)*2)}}),e(t).on("resize.fndtn.topbar",function(){n.breakpoint()||e(".top-bar").css("min-height","").removeClass("expanded")}.bind(this)),e(this.scope).on("click.fndtn",".top-bar .has-dropdown .back",function(t){t.preventDefault();var r=e(this),i=r.closest(".top-bar"),s=i.find("section, .section"),o=r.closest("li.moved"),u=o.parent();i.data("index",i.data("index")-1),n.rtl?(s.css({right:-(100*i.data("index"))+"%"}),s.find(">.name").css({right:100*i.data("index")+"%"})):(s.css({left:-(100*i.data("index"))+"%"}),s.find(">.name").css({left:100*i.data("index")+"%"
-})),i.data("index")===0&&i.css("min-height",0),setTimeout(function(){o.removeClass("moved")},300)})},breakpoint:function(){return e(t).width()<=this.settings.breakPoint||e("html").hasClass("lt-ie9")},assemble:function(){var t=this;this.settings.$section.detach(),this.settings.$section.find(".has-dropdown>a").each(function(){var n=e(this),r=n.siblings(".dropdown"),i=e('
');t.settings.custom_back_text==1?i.find("h5>a").html("« "+t.settings.back_text):i.find("h5>a").html("« "+n.html()),r.prepend(i)}),this.settings.$section.appendTo(this.settings.$topbar),this.sticky()},largestUL:function(){var t=this.settings.$topbar.find("section ul ul"),n=t.first(),r=0,i=this;t.each(function(){e(this).children("li").length>n.children("li").length&&(n=e(this))}),n.children("li").each(function(){r+=i.outerHeight(e(this),!0)}),this.settings.$topbar.data("height",r)},sticky:function(){var n="."+this.settings.stickyClass;if(e(n).length>0){var r=e(n).length?e(n).offset().top:0,i=e(t),s=this.outerHeight(e(".top-bar"));i.scroll(function(){i.scrollTop()>=r?(e(n).addClass("fixed"),e("body").css("padding-top",s)):i.scrollTop()
×' +
- '' +
- '
' +
- '
'
- },
-
- // comma delimited list of selectors that, on click, will close clearing,
- // add 'div.clearing-blackout, div.visible-img' to close on background click
- close_selectors : '.clearing-close',
-
- // event initializers and locks
- init : false,
- locked : false
- },
-
- init : function (scope, method, options) {
- var self = this;
- Foundation.inherit(this, 'set_data get_data remove_data throttle data_options');
-
- if (typeof method === 'object') {
- options = $.extend(true, this.settings, method);
- }
-
- if (typeof method != 'string') {
- $(this.scope).find('ul[data-clearing]').each(function () {
- var $el = $(this),
- options = options || {},
- lis = $el.find('li'),
- settings = self.get_data($el);
-
- if (!settings && lis.length > 0) {
- options.$parent = $el.parent();
-
- self.set_data($el, $.extend({}, self.settings, options, self.data_options($el)));
-
- self.assemble($el.find('li'));
-
- if (!self.settings.init) {
- self.events().swipe_events();
- }
- }
- });
-
- return this.settings.init;
- } else {
- // fire method
- return this[method].call(this, options);
- }
- },
-
- // event binding and initial setup
-
- events : function () {
- var self = this;
-
- $(this.scope)
- .on('click.fndtn.clearing', 'ul[data-clearing] li',
- function (e, current, target) {
- var current = current || $(this),
- target = target || current,
- next = current.next('li'),
- settings = self.get_data(current.parent()),
- image = $(e.target);
-
- e.preventDefault();
- if (!settings) self.init();
-
- // if clearing is open and the current image is
- // clicked, go to the next image in sequence
- if (target.hasClass('visible')
- && current[0] === target[0]
- && next.length > 0 && self.is_open(current)) {
- target = next;
- image = target.find('img');
- }
-
- // set current and target to the clicked li if not otherwise defined.
- self.open(image, current, target);
- self.update_paddles(target);
- })
-
- .on('click.fndtn.clearing', '.clearing-main-next',
- function (e) { this.nav(e, 'next') }.bind(this))
- .on('click.fndtn.clearing', '.clearing-main-prev',
- function (e) { this.nav(e, 'prev') }.bind(this))
- .on('click.fndtn.clearing', this.settings.close_selectors,
- function (e) { Foundation.libs.clearing.close(e, this) })
- .on('keydown.fndtn.clearing',
- function (e) { this.keydown(e) }.bind(this));
-
- $(window).on('resize.fndtn.clearing',
- function (e) { this.resize() }.bind(this));
-
- this.settings.init = true;
- return this;
- },
-
- swipe_events : function () {
- var self = this;
-
- $(this.scope)
- .on('touchstart.fndtn.clearing', '.visible-img', function(e) {
- if (!e.touches) { e = e.originalEvent; }
- var data = {
- start_page_x: e.touches[0].pageX,
- start_page_y: e.touches[0].pageY,
- start_time: (new Date()).getTime(),
- delta_x: 0,
- is_scrolling: undefined
- };
-
- $(this).data('swipe-transition', data);
- e.stopPropagation();
- })
- .on('touchmove.fndtn.clearing', '.visible-img', function(e) {
- if (!e.touches) { e = e.originalEvent; }
- // Ignore pinch/zoom events
- if(e.touches.length > 1 || e.scale && e.scale !== 1) return;
-
- var data = $(this).data('swipe-transition');
-
- if (typeof data === 'undefined') {
- data = {};
- }
-
- data.delta_x = e.touches[0].pageX - data.start_page_x;
-
- if ( typeof data.is_scrolling === 'undefined') {
- data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
- }
-
- if (!data.is_scrolling && !data.active) {
- e.preventDefault();
- var direction = (data.delta_x < 0) ? 'next' : 'prev';
- data.active = true;
- self.nav(e, direction);
- }
- })
- .on('touchend.fndtn.clearing', '.visible-img', function(e) {
- $(this).data('swipe-transition', {});
- e.stopPropagation();
- });
- },
-
- assemble : function ($li) {
- var $el = $li.parent();
- $el.after('
');
-
- var holder = $('#foundationClearingHolder'),
- settings = this.get_data($el),
- grid = $el.detach(),
- data = {
- grid: '' + this.outerHTML(grid[0]) + '
',
- viewing: settings.templates.viewing
- },
- wrapper = '' + data.viewing +
- data.grid + '
';
-
- return holder.after(wrapper).remove();
- },
-
- // event callbacks
-
- open : function ($image, current, target) {
- var root = target.closest('.clearing-assembled'),
- container = root.find('div').first(),
- visible_image = container.find('.visible-img'),
- image = visible_image.find('img').not($image);
-
- if (!this.locked()) {
- // set the image to the selected thumbnail
- image
- .attr('src', this.load($image))
- .css('visibility', 'hidden');
-
- this.loaded(image, function () {
- image.css('visibility', 'visible');
- // toggle the gallery
- root.addClass('clearing-blackout');
- container.addClass('clearing-container');
- visible_image.show();
- this.fix_height(target)
- .caption(visible_image.find('.clearing-caption'), $image)
- .center(image)
- .shift(current, target, function () {
- target.siblings().removeClass('visible');
- target.addClass('visible');
- });
- }.bind(this));
- }
- },
-
- close : function (e, el) {
- e.preventDefault();
-
- var root = (function (target) {
- if (/blackout/.test(target.selector)) {
- return target;
- } else {
- return target.closest('.clearing-blackout');
- }
- }($(el))), container, visible_image;
-
- if (el === e.target && root) {
- container = root.find('div').first(),
- visible_image = container.find('.visible-img');
- this.settings.prev_index = 0;
- root.find('ul[data-clearing]')
- .attr('style', '').closest('.clearing-blackout')
- .removeClass('clearing-blackout');
- container.removeClass('clearing-container');
- visible_image.hide();
- }
-
- return false;
- },
-
- is_open : function (current) {
- return current.parent().attr('style').length > 0;
- },
-
- keydown : function (e) {
- var clearing = $('.clearing-blackout').find('ul[data-clearing]');
-
- if (e.which === 39) this.go(clearing, 'next');
- if (e.which === 37) this.go(clearing, 'prev');
- if (e.which === 27) $('a.clearing-close').trigger('click');
- },
-
- nav : function (e, direction) {
- var clearing = $('.clearing-blackout').find('ul[data-clearing]');
-
- e.preventDefault();
- this.go(clearing, direction);
- },
-
- resize : function () {
- var image = $('.clearing-blackout .visible-img').find('img');
-
- if (image.length) {
- this.center(image);
- }
- },
-
- // visual adjustments
- fix_height : function (target) {
- var lis = target.parent().children(),
- self = this;
-
- lis.each(function () {
- var li = $(this),
- image = li.find('img');
-
- if (li.height() > self.outerHeight(image)) {
- li.addClass('fix-height');
- }
- })
- .closest('ul')
- .width(lis.length * 100 + '%');
-
- return this;
- },
-
- update_paddles : function (target) {
- var visible_image = target
- .closest('.carousel')
- .siblings('.visible-img');
-
- if (target.next().length > 0) {
- visible_image
- .find('.clearing-main-next')
- .removeClass('disabled');
- } else {
- visible_image
- .find('.clearing-main-next')
- .addClass('disabled');
- }
-
- if (target.prev().length > 0) {
- visible_image
- .find('.clearing-main-prev')
- .removeClass('disabled');
- } else {
- visible_image
- .find('.clearing-main-prev')
- .addClass('disabled');
- }
- },
-
- center : function (target) {
- if (!this.rtl) {
- target.css({
- marginLeft : -(this.outerWidth(target) / 2),
- marginTop : -(this.outerHeight(target) / 2)
- });
- } else {
- target.css({
- marginRight : -(this.outerWidth(target) / 2),
- marginTop : -(this.outerHeight(target) / 2)
- });
- }
- return this;
- },
-
- // image loading and preloading
-
- load : function ($image) {
- var href = $image.parent().attr('href');
-
- this.preload($image);
-
- if (href) return href;
- return $image.attr('src');
- },
-
- preload : function ($image) {
- this
- .img($image.closest('li').next())
- .img($image.closest('li').prev());
- },
-
- loaded : function (image, callback) {
- // based on jquery.imageready.js
- // @weblinc, @jsantell, (c) 2012
-
- function loaded () {
- callback();
- }
-
- function bindLoad () {
- this.one('load', loaded);
-
- if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
- var src = this.attr( 'src' ),
- param = src.match( /\?/ ) ? '&' : '?';
-
- param += 'random=' + (new Date()).getTime();
- this.attr('src', src + param);
- }
- }
-
- if (!image.attr('src')) {
- loaded();
- return;
- }
-
- if (image[0].complete || image[0].readyState === 4) {
- loaded();
- } else {
- bindLoad.call(image);
- }
- },
-
- img : function (img) {
- if (img.length) {
- var new_img = new Image(),
- new_a = img.find('a');
-
- if (new_a.length) {
- new_img.src = new_a.attr('href');
- } else {
- new_img.src = img.find('img').attr('src');
- }
- }
- return this;
- },
-
- // image caption
-
- caption : function (container, $image) {
- var caption = $image.data('caption');
-
- if (caption) {
- container
- .text(caption)
- .show();
- } else {
- container
- .text('')
- .hide();
- }
- return this;
- },
-
- // directional methods
-
- go : function ($ul, direction) {
- var current = $ul.find('.visible'),
- target = current[direction]();
-
- if (target.length) {
- target
- .find('img')
- .trigger('click', [current, target]);
- }
- },
-
- shift : function (current, target, callback) {
- var clearing = target.parent(),
- old_index = this.settings.prev_index || target.index(),
- direction = this.direction(clearing, current, target),
- left = parseInt(clearing.css('left'), 10),
- width = this.outerWidth(target),
- skip_shift;
-
- // we use jQuery animate instead of CSS transitions because we
- // need a callback to unlock the next animation
- if (target.index() !== old_index && !/skip/.test(direction)){
- if (/left/.test(direction)) {
- this.lock();
- clearing.animate({left : left + width}, 300, this.unlock());
- } else if (/right/.test(direction)) {
- this.lock();
- clearing.animate({left : left - width}, 300, this.unlock());
- }
- } else if (/skip/.test(direction)) {
- // the target image is not adjacent to the current image, so
- // do we scroll right or not
- skip_shift = target.index() - this.settings.up_count;
- this.lock();
-
- if (skip_shift > 0) {
- clearing.animate({left : -(skip_shift * width)}, 300, this.unlock());
- } else {
- clearing.animate({left : 0}, 300, this.unlock());
- }
- }
-
- callback();
- },
-
- direction : function ($el, current, target) {
- var lis = $el.find('li'),
- li_width = this.outerWidth(lis) + (this.outerWidth(lis) / 4),
- up_count = Math.floor(this.outerWidth($('.clearing-container')) / li_width) - 1,
- target_index = lis.index(target),
- response;
-
- this.settings.up_count = up_count;
-
- if (this.adjacent(this.settings.prev_index, target_index)) {
- if ((target_index > up_count)
- && target_index > this.settings.prev_index) {
- response = 'right';
- } else if ((target_index > up_count - 1)
- && target_index <= this.settings.prev_index) {
- response = 'left';
- } else {
- response = false;
- }
- } else {
- response = 'skip';
- }
-
- this.settings.prev_index = target_index;
-
- return response;
- },
-
- adjacent : function (current_index, target_index) {
- for (var i = target_index + 1; i >= target_index - 1; i--) {
- if (i === current_index) return true;
- }
- return false;
- },
-
- // lock management
-
- lock : function () {
- this.settings.locked = true;
- },
-
- unlock : function () {
- this.settings.locked = false;
- },
-
- locked : function () {
- return this.settings.locked;
- },
-
- // plugin management/browser quirks
-
- outerHTML : function (el) {
- // support FireFox < 11
- return el.outerHTML || new XMLSerializer().serializeToString(el);
- },
-
- off : function () {
- $(this.scope).off('.fndtn.clearing');
- $(window).off('.fndtn.clearing');
- this.remove_data(); // empty settings cache
- this.settings.init = false;
- },
-
- reflow : function () {
- this.init();
- }
- };
-
-}(Foundation.zj, this, this.document));
diff --git a/foundation/javascripts/foundation/foundation.cookie.js b/foundation/javascripts/foundation/foundation.cookie.js
deleted file mode 100644
index 862027c..0000000
--- a/foundation/javascripts/foundation/foundation.cookie.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/*!
- * jQuery Cookie Plugin v1.3
- * https://github.com/carhartl/jquery-cookie
- *
- * Copyright 2011, Klaus Hartl
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.opensource.org/licenses/GPL-2.0
- *
- * Modified to work with Zepto.js by ZURB
- */
-(function ($, document, undefined) {
-
- var pluses = /\+/g;
-
- function raw(s) {
- return s;
- }
-
- function decoded(s) {
- return decodeURIComponent(s.replace(pluses, ' '));
- }
-
- var config = $.cookie = function (key, value, options) {
-
- // write
- if (value !== undefined) {
- options = $.extend({}, config.defaults, options);
-
- if (value === null) {
- options.expires = -1;
- }
-
- if (typeof options.expires === 'number') {
- var days = options.expires, t = options.expires = new Date();
- t.setDate(t.getDate() + days);
- }
-
- value = config.json ? JSON.stringify(value) : String(value);
-
- return (document.cookie = [
- encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value),
- options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
- options.path ? '; path=' + options.path : '',
- options.domain ? '; domain=' + options.domain : '',
- options.secure ? '; secure' : ''
- ].join(''));
- }
-
- // read
- var decode = config.raw ? raw : decoded;
- var cookies = document.cookie.split('; ');
- for (var i = 0, l = cookies.length; i < l; i++) {
- var parts = cookies[i].split('=');
- if (decode(parts.shift()) === key) {
- var cookie = decode(parts.join('='));
- return config.json ? JSON.parse(cookie) : cookie;
- }
- }
-
- return null;
- };
-
- config.defaults = {};
-
- $.removeCookie = function (key, options) {
- if ($.cookie(key) !== null) {
- $.cookie(key, null, options);
- return true;
- }
- return false;
- };
-
-})(Foundation.zj, document);
diff --git a/foundation/javascripts/foundation/foundation.dropdown.js b/foundation/javascripts/foundation/foundation.dropdown.js
deleted file mode 100644
index 3e877b3..0000000
--- a/foundation/javascripts/foundation/foundation.dropdown.js
+++ /dev/null
@@ -1,139 +0,0 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.dropdown = {
- name : 'dropdown',
-
- version : '4.1.0',
-
- settings : {
- activeClass: 'open'
- },
-
- init : function (scope, method, options) {
- this.scope = scope || this.scope;
- Foundation.inherit(this, 'throttle scrollLeft');
-
- if (typeof method === 'object') {
- $.extend(true, this.settings, method);
- }
-
- if (typeof method != 'string') {
-
- if (!this.settings.init) {
- this.events();
- }
-
- return this.settings.init;
- } else {
- return this[method].call(this, options);
- }
- },
-
- events : function () {
- var self = this;
-
- $(this.scope).on('click.fndtn.dropdown', '[data-dropdown]', function (e) {
- e.preventDefault();
- self.toggle($(this));
- });
-
- $('body').on('click.fndtn.dropdown', function (e) {
- var parent = $(e.target).closest('[data-dropdown-content]');
-
- if ($(e.target).data('dropdown')) {
- return;
- }
- if (parent.length > 0 && ($(e.target).is('[data-dropdown-content]') || $.contains(parent.first()[0], e.target))) {
- e.stopPropagation();
- return;
- }
-
- $('[data-dropdown-content]')
- .css(Foundation.rtl ? 'right':'left', '-99999px')
- .removeClass(self.settings.activeClass);
- });
-
- $(window).on('resize.fndtn.dropdown', self.throttle(function () {
- self.resize.call(self);
- }, 50)).trigger('resize');
-
- this.settings.init = true;
- },
-
- toggle : function (target, resize) {
- var dropdown = $('#' + target.data('dropdown'));
-
- $('[data-dropdown-content]')
- .not(dropdown)
- .css(Foundation.rtl ? 'right':'left', '-99999px')
- .removeClass(this.settings.activeClass);
-
- if (dropdown.hasClass(this.settings.activeClass)) {
- dropdown
- .css(Foundation.rtl ? 'right':'left', '-99999px')
- .removeClass(this.settings.activeClass);
- } else {
- this
- .css(dropdown
- .addClass(this.settings.activeClass), target);
- }
- },
-
- resize : function () {
- var dropdown = $('[data-dropdown-content].open'),
- target = $("[data-dropdown='" + dropdown.attr('id') + "']");
-
- if (dropdown.length && target.length) {
- this.css(dropdown, target);
- }
- },
-
- css : function (dropdown, target) {
- var position = target.position();
- position.top += target.offsetParent().offset().top;
- position.left += target.offsetParent().offset().left;
-
- if (this.small()) {
- dropdown.css({
- position : 'absolute',
- width: '95%',
- left: '2.5%',
- 'max-width': 'none',
- top: position.top + this.outerHeight(target)
- });
- } else {
- if (!Foundation.rtl && $(window).width() > this.outerWidth(dropdown) + target.offset().left) {
- var left = position.left;
- } else {
- if (!dropdown.hasClass('right')) {
- dropdown.addClass('right');
- }
- var left = position.left - (this.outerWidth(dropdown) - this.outerWidth(target));
- }
-
- dropdown.attr('style', '').css({
- position : 'absolute',
- top: position.top + this.outerHeight(target),
- left: left
- });
- }
-
- return dropdown;
- },
-
- small : function () {
- return $(window).width() < 768 || $('html').hasClass('lt-ie9');
- },
-
- off: function () {
- $(this.scope).off('.fndtn.dropdown');
- $('html, body').off('.fndtn.dropdown');
- $(window).off('.fndtn.dropdown');
- $('[data-dropdown-content]').off('.fndtn.dropdown');
- this.settings.init = false;
- }
- };
-}(Foundation.zj, this, this.document));
diff --git a/foundation/javascripts/foundation/foundation.forms.js b/foundation/javascripts/foundation/foundation.forms.js
deleted file mode 100644
index d6eaf08..0000000
--- a/foundation/javascripts/foundation/foundation.forms.js
+++ /dev/null
@@ -1,427 +0,0 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.forms = {
- name : 'forms',
-
- version : '4.0.4',
-
- settings : {
- disable_class: 'no-custom'
- },
-
- init : function (scope, method, options) {
- this.scope = scope || this.scope;
-
- if (typeof method === 'object') {
- $.extend(true, this.settings, method);
- }
-
- if (typeof method != 'string') {
- if (!this.settings.init) {
- this.events();
- }
-
- this.assemble();
-
- return this.settings.init;
- } else {
- return this[method].call(this, options);
- }
- },
-
- assemble : function () {
- $('form.custom input[type="radio"]', $(this.scope)).not('[data-customforms="disabled"]')
- .each(this.append_custom_markup);
- $('form.custom input[type="checkbox"]', $(this.scope)).not('[data-customforms="disabled"]')
- .each(this.append_custom_markup);
- $('form.custom select', $(this.scope)).not('[data-customforms="disabled"]')
- .each(this.append_custom_select);
- },
-
- events : function () {
- var self = this;
-
- $(this.scope)
- .on('click.fndtn.forms', 'form.custom span.custom.checkbox', function (e) {
- e.preventDefault();
- e.stopPropagation();
- self.toggle_checkbox($(this));
- })
- .on('click.fndtn.forms', 'form.custom span.custom.radio', function (e) {
- e.preventDefault();
- e.stopPropagation();
- self.toggle_radio($(this));
- })
- .on('change.fndtn.forms', 'form.custom select:not([data-customforms="disabled"])', function (e) {
- self.refresh_custom_select($(this));
- })
- .on('click.fndtn.forms', 'form.custom label', function (e) {
- var $associatedElement = $('#' + self.escape($(this).attr('for')) + ':not([data-customforms="disabled"])'),
- $customCheckbox,
- $customRadio;
- if ($associatedElement.length !== 0) {
- if ($associatedElement.attr('type') === 'checkbox') {
- e.preventDefault();
- $customCheckbox = $(this).find('span.custom.checkbox');
- //the checkbox might be outside after the label or inside of another element
- if ($customCheckbox.length == 0) {
- $customCheckbox = $associatedElement.add(this).siblings('span.custom.checkbox').first();
- }
- self.toggle_checkbox($customCheckbox);
- } else if ($associatedElement.attr('type') === 'radio') {
- e.preventDefault();
- $customRadio = $(this).find('span.custom.radio');
- //the radio might be outside after the label or inside of another element
- if ($customRadio.length == 0) {
- $customRadio = $associatedElement.add(this).siblings('span.custom.radio').first();
- }
- self.toggle_radio($customRadio);
- }
- }
- })
- .on('click.fndtn.forms', 'form.custom div.custom.dropdown a.current, form.custom div.custom.dropdown a.selector', function (e) {
- var $this = $(this),
- $dropdown = $this.closest('div.custom.dropdown'),
- $select = $dropdown.prev();
-
- // make sure other dropdowns close
- if(!$dropdown.hasClass('open'))
- $(self.scope).trigger('click');
-
- e.preventDefault();
- if (false === $select.is(':disabled')) {
- $dropdown.toggleClass('open');
-
- if ($dropdown.hasClass('open')) {
- $(self.scope).on('click.fndtn.forms.customdropdown', function () {
- $dropdown.removeClass('open');
- $(self.scope).off('.fndtn.forms.customdropdown');
- });
- } else {
- $(self.scope).on('.fndtn.forms.customdropdown');
- }
- return false;
- }
- })
- .on('click.fndtn.forms touchend.fndtn.forms', 'form.custom div.custom.dropdown li', function (e) {
- var $this = $(this),
- $customDropdown = $this.closest('div.custom.dropdown'),
- $select = $customDropdown.prev(),
- selectedIndex = 0;
-
- e.preventDefault();
- e.stopPropagation();
-
- if ( ! $(this).hasClass('disabled')) {
- $('div.dropdown').not($customDropdown).removeClass('open');
-
- var $oldThis= $this
- .closest('ul')
- .find('li.selected');
- $oldThis.removeClass('selected');
-
- $this.addClass('selected');
-
- $customDropdown
- .removeClass('open')
- .find('a.current')
- .html($this.html());
-
- $this.closest('ul').find('li').each(function (index) {
- if ($this[0] == this) {
- selectedIndex = index;
- }
-
- });
- $select[0].selectedIndex = selectedIndex;
-
- //store the old value in data
- $select.data('prevalue', $oldThis.html());
- $select.trigger('change');
- }
- });
-
- $(window).on('keydown', function (e) {
- var focus = document.activeElement,
- dropdown = $('.custom.dropdown.open');
-
- if (dropdown.length > 0) {
- e.preventDefault();
-
- if (e.which === 13) {
- dropdown.find('li.selected').trigger('click');
- }
-
- if (e.which === 38) {
- var current = dropdown.find('li.selected'),
- prev = current.prev(':not(.disabled)');
-
- if (prev.length > 0) {
- current.removeClass('selected');
- prev.addClass('selected');
- }
- } else if (e.which === 40) {
- var current = dropdown.find('li.selected'),
- next = current.next(':not(.disabled)');
-
- if (next.length > 0) {
- current.removeClass('selected');
- next.addClass('selected');
- }
- }
- }
- });
-
- this.settings.init = true;
- },
-
- append_custom_markup : function (idx, sel) {
- var $this = $(sel).hide(),
- type = $this.attr('type'),
- $span = $this.next('span.custom.' + type);
-
- if ($span.length === 0) {
- $span = $(' ').insertAfter($this);
- }
-
- $span.toggleClass('checked', $this.is(':checked'));
- $span.toggleClass('disabled', $this.is(':disabled'));
- },
-
- append_custom_select : function (idx, sel) {
- var self = Foundation.libs.forms,
- $this = $( sel ),
- $customSelect = $this.next( 'div.custom.dropdown' ),
- $customList = $customSelect.find( 'ul' ),
- $selectCurrent = $customSelect.find( ".current" ),
- $selector = $customSelect.find( ".selector" ),
- $options = $this.find( 'option' ),
- $selectedOption = $options.filter( ':selected' ),
- copyClasses = $this.attr('class') ? $this.attr('class').split(' ') : [],
- maxWidth = 0,
- liHtml = '',
- $listItems,
- $currentSelect = false;
-
- if ($this.hasClass(self.settings.disable_class)) return;
-
- if ($customSelect.length === 0) {
- var customSelectSize = $this.hasClass( 'small' ) ? 'small' :
- $this.hasClass( 'medium' ) ? 'medium' :
- $this.hasClass( 'large' ) ? 'large' :
- $this.hasClass( 'expand' ) ? 'expand' : '';
-
- $customSelect = $('');
- $selector = $customSelect.find(".selector");
- $customList = $customSelect.find("ul");
- liHtml = $options.map(function() { return "" + $( this ).html() + " "; } ).get().join( '' );
- $customList.append(liHtml);
- $currentSelect = $customSelect.prepend('' + $selectedOption.html() + ' ' ).find( ".current" );
- $this
- .after( $customSelect )
- .hide();
-
- } else {
- liHtml = $options.map(function() {
- return "" + $( this ).html() + " ";
- })
- .get().join('');
- $customList
- .html('')
- .append(liHtml);
-
- } // endif $customSelect.length === 0
- $customSelect.toggleClass('disabled', $this.is( ':disabled' ) );
- $listItems = $customList.find( 'li' );
-
- $options.each( function ( index ) {
- if ( this.selected ) {
- $listItems.eq( index ).addClass( 'selected' );
-
- if ($currentSelect) {
- $currentSelect.html( $( this ).html() );
- }
-
- }
- if ($(this).is(':disabled')) {
- $listItems.eq( index ).addClass( 'disabled' );
- }
- });
-
- //
- // If we're not specifying a predetermined form size.
- //
- if (!$customSelect.is('.small, .medium, .large, .expand')) {
-
- // ------------------------------------------------------------------------------------
- // This is a work-around for when elements are contained within hidden parents.
- // For example, when custom-form elements are inside of a hidden reveal modal.
- //
- // We need to display the current custom list element as well as hidden parent elements
- // in order to properly calculate the list item element's width property.
- // -------------------------------------------------------------------------------------
-
- $customSelect.addClass( 'open' );
- //
- // Quickly, display all parent elements.
- // This should help us calcualate the width of the list item's within the drop down.
- //
- var self = Foundation.libs.forms;
- self.hidden_fix.adjust( $customList );
-
- maxWidth = ( self.outerWidth($listItems) > maxWidth ) ? self.outerWidth($listItems) : maxWidth;
-
- Foundation.libs.forms.hidden_fix.reset();
-
- $customSelect.removeClass( 'open' );
-
- } // endif
-
- },
-
- refresh_custom_select : function ($select) {
- var self = this;
- var maxWidth = 0,
- $customSelect = $select.next(),
- $options = $select.find('option');
-
- $customSelect.find('ul').html('');
-
- $options.each(function () {
- var $li = $('' + $(this).html() + ' ');
- $customSelect.find('ul').append($li);
- });
-
- // re-populate
- $options.each(function (index) {
- if (this.selected) {
- $customSelect.find('li').eq(index).addClass('selected');
- $customSelect.find('.current').html($(this).html());
- }
- if ($(this).is(':disabled')) {
- $customSelect.find('li').eq(index).addClass('disabled');
- }
- });
-
- // fix width
- $customSelect.removeAttr('style')
- .find('ul').removeAttr('style');
- $customSelect.find('li').each(function () {
- $customSelect.addClass('open');
- if (self.outerWidth($(this)) > maxWidth) {
- maxWidth = self.outerWidth($(this));
- }
- $customSelect.removeClass('open');
- });
- },
-
- toggle_checkbox : function ($element) {
- var $input = $element.prev(),
- input = $input[0];
-
- if (false === $input.is(':disabled')) {
- input.checked = ((input.checked) ? false : true);
- $element.toggleClass('checked');
-
- $input.trigger('change');
- }
- },
-
- toggle_radio : function ($element) {
- var $input = $element.prev(),
- $form = $input.closest('form.custom'),
- input = $input[0];
-
- if (false === $input.is(':disabled')) {
- $form.find('input[type="radio"][name="' + this.escape($input.attr('name')) + '"]').next().not($element).removeClass('checked');
- if ( !$element.hasClass('checked') ) {
- $element.toggleClass('checked');
- }
- input.checked = $element.hasClass('checked');
-
- $input.trigger('change');
- }
- },
-
- escape : function (text) {
- return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
- },
-
- hidden_fix : {
- /**
- * Sets all hidden parent elements and self to visibile.
- *
- * @method adjust
- * @param {jQuery Object} $child
- */
-
- // We'll use this to temporarily store style properties.
- tmp : [],
-
- // We'll use this to set hidden parent elements.
- hidden : null,
-
- adjust : function( $child ) {
- // Internal reference.
- var _self = this;
-
- // Set all hidden parent elements, including this element.
- _self.hidden = $child.parents().andSelf().filter( ":hidden" );
-
- // Loop through all hidden elements.
- _self.hidden.each( function() {
-
- // Cache the element.
- var $elem = $( this );
-
- // Store the style attribute.
- // Undefined if element doesn't have a style attribute.
- _self.tmp.push( $elem.attr( 'style' ) );
-
- // Set the element's display property to block,
- // but ensure it's visibility is hidden.
- $elem.css( { 'visibility' : 'hidden', 'display' : 'block' } );
- });
-
- }, // end adjust
-
- /**
- * Resets the elements previous state.
- *
- * @method reset
- */
- reset : function() {
- // Internal reference.
- var _self = this;
- // Loop through our hidden element collection.
- _self.hidden.each( function( i ) {
- // Cache this element.
- var $elem = $( this ),
- _tmp = _self.tmp[ i ]; // Get the stored 'style' value for this element.
-
- // If the stored value is undefined.
- if( _tmp === undefined )
- // Remove the style attribute.
- $elem.removeAttr( 'style' );
- else
- // Otherwise, reset the element style attribute.
- $elem.attr( 'style', _tmp );
-
- });
- // Reset the tmp array.
- _self.tmp = [];
- // Reset the hidden elements variable.
- _self.hidden = null;
-
- } // end reset
-
- },
-
- off : function () {
- $(this.scope).off('.fndtn.forms');
- }
- };
-}(Foundation.zj, this, this.document));
diff --git a/foundation/javascripts/foundation/foundation.joyride.js b/foundation/javascripts/foundation/foundation.joyride.js
deleted file mode 100644
index a2bc067..0000000
--- a/foundation/javascripts/foundation/foundation.joyride.js
+++ /dev/null
@@ -1,833 +0,0 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.joyride = {
- name: 'joyride',
-
- version : '4.1.2',
-
- defaults : {
- expose : false, // turn on or off the expose feature
- modal : false, // Whether to cover page with modal during the tour
- tipLocation : 'bottom', // 'top' or 'bottom' in relation to parent
- nubPosition : 'auto', // override on a per tooltip bases
- scrollSpeed : 300, // Page scrolling speed in milliseconds, 0 = no scroll animation
- timer : 0, // 0 = no timer , all other numbers = timer in milliseconds
- startTimerOnClick : true, // true or false - true requires clicking the first button start the timer
- startOffset : 0, // the index of the tooltip you want to start on (index of the li)
- nextButton : true, // true or false to control whether a next button is used
- tipAnimation : 'fade', // 'pop' or 'fade' in each tip
- pauseAfter : [], // array of indexes where to pause the tour after
- exposed : [], // array of expose elements
- tipAnimationFadeSpeed: 300, // when tipAnimation = 'fade' this is speed in milliseconds for the transition
- cookieMonster : false, // true or false to control whether cookies are used
- cookieName : 'joyride', // Name the cookie you'll use
- cookieDomain : false, // Will this cookie be attached to a domain, ie. '.notableapp.com'
- cookieExpires : 365, // set when you would like the cookie to expire.
- tipContainer : 'body', // Where will the tip be attached
- postRideCallback : function (){}, // A method to call once the tour closes (canceled or complete)
- postStepCallback : function (){}, // A method to call after each step
- preStepCallback : function (){}, // A method to call before each step
- preRideCallback : function (){}, // A method to call before the tour starts (passed index, tip, and cloned exposed element)
- postExposeCallback : function (){}, // A method to call after an element has been exposed
- template : { // HTML segments for tip layout
- link : '× ',
- timer : '
',
- tip : '
',
- wrapper : '
',
- button : ' ',
- modal : '
',
- expose : '
',
- exposeCover: '
'
- }
- },
-
- settings : {},
-
- init : function (scope, method, options) {
- this.scope = scope || this.scope;
- Foundation.inherit(this, 'throttle data_options scrollTo scrollLeft delay');
-
- if (typeof method === 'object') {
- $.extend(true, this.settings, this.defaults, method);
- } else {
- $.extend(true, this.settings, this.defaults, options);
- }
-
- if (typeof method != 'string') {
- if (!this.settings.init) this.events();
-
- return this.settings.init;
- } else {
- return this[method].call(this, options);
- }
- },
-
- events : function () {
- var self = this;
-
- $(this.scope)
- .on('click.joyride', '.joyride-next-tip, .joyride-modal-bg', function (e) {
- e.preventDefault();
-
- if (this.settings.$li.next().length < 1) {
- this.end();
- } else if (this.settings.timer > 0) {
- clearTimeout(this.settings.automate);
- this.hide();
- this.show();
- this.startTimer();
- } else {
- this.hide();
- this.show();
- }
-
- }.bind(this))
-
- .on('click.joyride', '.joyride-close-tip', function (e) {
- e.preventDefault();
- this.end();
- }.bind(this));
-
- $(window).on('resize.fndtn.joyride', self.throttle(function () {
- if ($('[data-joyride]').length > 0 && self.settings.$next_tip) {
- if (self.settings.exposed.length > 0) {
- var $els = $(self.settings.exposed);
-
- $els.each(function () {
- var $this = $(this);
- self.un_expose($this);
- self.expose($this);
- });
- }
-
- if (self.is_phone()) {
- self.pos_phone();
- } else {
- self.pos_default(false, true);
- }
- }
- }, 100));
-
- this.settings.init = true;
- },
-
- start : function () {
- var self = this,
- $this = $(this.scope).find('[data-joyride]'),
- integer_settings = ['timer', 'scrollSpeed', 'startOffset', 'tipAnimationFadeSpeed', 'cookieExpires'],
- int_settings_count = integer_settings.length;
-
- if (!this.settings.init) this.init();
-
- // non configureable settings
- this.settings.$content_el = $this;
- this.settings.$body = $(this.settings.tipContainer);
- this.settings.body_offset = $(this.settings.tipContainer).position();
- this.settings.$tip_content = this.settings.$content_el.find('> li');
- this.settings.paused = false;
- this.settings.attempts = 0;
-
- this.settings.tipLocationPatterns = {
- top: ['bottom'],
- bottom: [], // bottom should not need to be repositioned
- left: ['right', 'top', 'bottom'],
- right: ['left', 'top', 'bottom']
- };
-
- // can we create cookies?
- if (typeof $.cookie !== 'function') {
- this.settings.cookieMonster = false;
- }
-
- // generate the tips and insert into dom.
- if (!this.settings.cookieMonster || this.settings.cookieMonster && $.cookie(this.settings.cookieName) === null) {
- this.settings.$tip_content.each(function (index) {
- var $this = $(this);
- $.extend(true, self.settings, self.data_options($this));
- // Make sure that settings parsed from data_options are integers where necessary
- for (var i = int_settings_count - 1; i >= 0; i--) {
- self.settings[integer_settings[i]] = parseInt(self.settings[integer_settings[i]], 10);
- }
- self.create({$li : $this, index : index});
- });
-
- // show first tip
- if (!this.settings.startTimerOnClick && this.settings.timer > 0) {
- this.show('init');
- this.startTimer();
- } else {
- this.show('init');
- }
-
- }
- },
-
- resume : function () {
- this.set_li();
- this.show();
- },
-
- tip_template : function (opts) {
- var $blank, content;
-
- opts.tip_class = opts.tip_class || '';
-
- $blank = $(this.settings.template.tip).addClass(opts.tip_class);
- content = $.trim($(opts.li).html()) +
- this.button_text(opts.button_text) +
- this.settings.template.link +
- this.timer_instance(opts.index);
-
- $blank.append($(this.settings.template.wrapper));
- $blank.first().attr('data-index', opts.index);
- $('.joyride-content-wrapper', $blank).append(content);
-
- return $blank[0];
- },
-
- timer_instance : function (index) {
- var txt;
-
- if ((index === 0 && this.settings.startTimerOnClick && this.settings.timer > 0) || this.settings.timer === 0) {
- txt = '';
- } else {
- txt = this.outerHTML($(this.settings.template.timer)[0]);
- }
- return txt;
- },
-
- button_text : function (txt) {
- if (this.settings.nextButton) {
- txt = $.trim(txt) || 'Next';
- txt = this.outerHTML($(this.settings.template.button).append(txt)[0]);
- } else {
- txt = '';
- }
- return txt;
- },
-
- create : function (opts) {
- var buttonText = opts.$li.attr('data-button') || opts.$li.attr('data-text'),
- tipClass = opts.$li.attr('class'),
- $tip_content = $(this.tip_template({
- tip_class : tipClass,
- index : opts.index,
- button_text : buttonText,
- li : opts.$li
- }));
-
- $(this.settings.tipContainer).append($tip_content);
- },
-
- show : function (init) {
- var $timer = null;
-
- // are we paused?
- if (this.settings.$li === undefined
- || ($.inArray(this.settings.$li.index(), this.settings.pauseAfter) === -1)) {
-
- // don't go to the next li if the tour was paused
- if (this.settings.paused) {
- this.settings.paused = false;
- } else {
- this.set_li(init);
- }
-
- this.settings.attempts = 0;
-
- if (this.settings.$li.length && this.settings.$target.length > 0) {
- if (init) { //run when we first start
- this.settings.preRideCallback(this.settings.$li.index(), this.settings.$next_tip);
- if (this.settings.modal) {
- this.show_modal();
- }
- }
-
- this.settings.preStepCallback(this.settings.$li.index(), this.settings.$next_tip);
-
- if (this.settings.modal && this.settings.expose) {
- this.expose();
- }
-
- this.settings.tipSettings = $.extend(this.settings, this.data_options(this.settings.$li));
-
- this.settings.timer = parseInt(this.settings.timer, 10);
-
- this.settings.tipSettings.tipLocationPattern = this.settings.tipLocationPatterns[this.settings.tipSettings.tipLocation];
-
- // scroll if not modal
- if (!/body/i.test(this.settings.$target.selector)) {
- this.scroll_to();
- }
-
- if (this.is_phone()) {
- this.pos_phone(true);
- } else {
- this.pos_default(true);
- }
-
- $timer = this.settings.$next_tip.find('.joyride-timer-indicator');
-
- if (/pop/i.test(this.settings.tipAnimation)) {
-
- $timer.width(0);
-
- if (this.settings.timer > 0) {
-
- this.settings.$next_tip.show();
-
- this.delay(function () {
- $timer.animate({
- width: $timer.parent().width()
- }, this.settings.timer, 'linear');
- }.bind(this), this.settings.tipAnimationFadeSpeed);
-
- } else {
- this.settings.$next_tip.show();
-
- }
-
-
- } else if (/fade/i.test(this.settings.tipAnimation)) {
-
- $timer.width(0);
-
- if (this.settings.timer > 0) {
-
- this.settings.$next_tip
- .fadeIn(this.settings.tipAnimationFadeSpeed)
- .show();
-
- this.delay(function () {
- $timer.animate({
- width: $timer.parent().width()
- }, this.settings.timer, 'linear');
- }.bind(this), this.settings.tipAnimationFadeSpeed);
-
- } else {
- this.settings.$next_tip.fadeIn(this.settings.tipAnimationFadeSpeed);
-
- }
- }
-
- this.settings.$current_tip = this.settings.$next_tip;
-
- // skip non-existant targets
- } else if (this.settings.$li && this.settings.$target.length < 1) {
-
- this.show();
-
- } else {
-
- this.end();
-
- }
- } else {
-
- this.settings.paused = true;
-
- }
-
- },
-
- is_phone : function () {
- if (Modernizr) {
- return Modernizr.mq('only screen and (max-width: 767px)') || $('.lt-ie9').length > 0;
- }
-
- return (this.settings.$window.width() < 767) ? true : false;
- },
-
- hide : function () {
- if (this.settings.modal && this.settings.expose) {
- this.un_expose();
- }
-
- if (!this.settings.modal) {
- $('.joyride-modal-bg').hide();
- }
- this.settings.$current_tip.hide();
- this.settings.postStepCallback(this.settings.$li.index(),
- this.settings.$current_tip);
- },
-
- set_li : function (init) {
- if (init) {
- this.settings.$li = this.settings.$tip_content.eq(this.settings.startOffset);
- this.set_next_tip();
- this.settings.$current_tip = this.settings.$next_tip;
- } else {
- this.settings.$li = this.settings.$li.next();
- this.set_next_tip();
- }
-
- this.set_target();
- },
-
- set_next_tip : function () {
- this.settings.$next_tip = $(".joyride-tip-guide[data-index='" + this.settings.$li.index() + "']");
- this.settings.$next_tip.data('closed', '');
- },
-
- set_target : function () {
- var cl = this.settings.$li.attr('data-class'),
- id = this.settings.$li.attr('data-id'),
- $sel = function () {
- if (id) {
- return $(document.getElementById(id));
- } else if (cl) {
- return $('.' + cl).first();
- } else {
- return $('body');
- }
- };
-
- this.settings.$target = $sel();
- },
-
- scroll_to : function () {
- var window_half, tipOffset;
-
- window_half = $(window).height() / 2;
- tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.outerHeight(this.settings.$next_tip));
- if (tipOffset > 0) {
- this.scrollTo($('html, body'), tipOffset, this.settings.scrollSpeed);
- }
- },
-
- paused : function () {
- if (($.inArray((this.settings.$li.index() + 1), this.settings.pauseAfter) === -1)) {
- return true;
- }
-
- return false;
- },
-
- restart : function () {
- this.hide();
- this.settings.$li = undefined;
- this.show('init');
- },
-
- pos_default : function (init, resizing) {
- var half_fold = Math.ceil($(window).height() / 2),
- tip_position = this.settings.$next_tip.offset(),
- $nub = this.settings.$next_tip.find('.joyride-nub'),
- nub_width = Math.ceil(this.outerWidth($nub) / 2),
- nub_height = Math.ceil(this.outerHeight($nub) / 2),
- toggle = init || false;
-
- // tip must not be "display: none" to calculate position
- if (toggle) {
- this.settings.$next_tip.css('visibility', 'hidden');
- this.settings.$next_tip.show();
- }
-
- if (typeof resizing === 'undefined') {
- resizing = false;
- }
-
- if (!/body/i.test(this.settings.$target.selector)) {
-
- if (this.bottom()) {
- var leftOffset = this.settings.$target.offset().left;
- if (Foundation.rtl) {
- leftOffset = this.settings.$target.offset().width - this.settings.$next_tip.width() + leftOffset;
- }
- this.settings.$next_tip.css({
- top: (this.settings.$target.offset().top + nub_height + this.outerHeight(this.settings.$target)),
- left: leftOffset});
-
- this.nub_position($nub, this.settings.tipSettings.nubPosition, 'top');
-
- } else if (this.top()) {
- var leftOffset = this.settings.$target.offset().left;
- if (Foundation.rtl) {
- leftOffset = this.settings.$target.offset().width - this.settings.$next_tip.width() + leftOffset;
- }
- this.settings.$next_tip.css({
- top: (this.settings.$target.offset().top - this.outerHeight(this.settings.$next_tip) - nub_height),
- left: leftOffset});
-
- this.nub_position($nub, this.settings.tipSettings.nubPosition, 'bottom');
-
- } else if (this.right()) {
-
- this.settings.$next_tip.css({
- top: this.settings.$target.offset().top,
- left: (this.outerWidth(this.settings.$target) + this.settings.$target.offset().left + nub_width)});
-
- this.nub_position($nub, this.settings.tipSettings.nubPosition, 'left');
-
- } else if (this.left()) {
-
- this.settings.$next_tip.css({
- top: this.settings.$target.offset().top,
- left: (this.settings.$target.offset().left - this.outerWidth(this.settings.$next_tip) - nub_width)});
-
- this.nub_position($nub, this.settings.tipSettings.nubPosition, 'right');
-
- }
-
- if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tipSettings.tipLocationPattern.length) {
-
- $nub.removeClass('bottom')
- .removeClass('top')
- .removeClass('right')
- .removeClass('left');
-
- this.settings.tipSettings.tipLocation = this.settings.tipSettings.tipLocationPattern[this.settings.attempts];
-
- this.settings.attempts++;
-
- this.pos_default();
-
- }
-
- } else if (this.settings.$li.length) {
-
- this.pos_modal($nub);
-
- }
-
- if (toggle) {
- this.settings.$next_tip.hide();
- this.settings.$next_tip.css('visibility', 'visible');
- }
-
- },
-
- pos_phone : function (init) {
- var tip_height = this.outerHeight(this.settings.$next_tip),
- tip_offset = this.settings.$next_tip.offset(),
- target_height = this.outerHeight(this.settings.$target),
- $nub = $('.joyride-nub', this.settings.$next_tip),
- nub_height = Math.ceil(this.outerHeight($nub) / 2),
- toggle = init || false;
-
- $nub.removeClass('bottom')
- .removeClass('top')
- .removeClass('right')
- .removeClass('left');
-
- if (toggle) {
- this.settings.$next_tip.css('visibility', 'hidden');
- this.settings.$next_tip.show();
- }
-
- if (!/body/i.test(this.settings.$target.selector)) {
-
- if (this.top()) {
-
- this.settings.$next_tip.offset({top: this.settings.$target.offset().top - tip_height - nub_height});
- $nub.addClass('bottom');
-
- } else {
-
- this.settings.$next_tip.offset({top: this.settings.$target.offset().top + target_height + nub_height});
- $nub.addClass('top');
-
- }
-
- } else if (this.settings.$li.length) {
- this.pos_modal($nub);
- }
-
- if (toggle) {
- this.settings.$next_tip.hide();
- this.settings.$next_tip.css('visibility', 'visible');
- }
- },
-
- pos_modal : function ($nub) {
- this.center();
- $nub.hide();
-
- this.show_modal();
- },
-
- show_modal : function () {
- if (!this.settings.$next_tip.data('closed')) {
- if ($('.joyride-modal-bg').length < 1) {
- $('body').append(this.settings.template.modal).show();
- }
-
- if (/pop/i.test(this.settings.tipAnimation)) {
- $('.joyride-modal-bg').show();
- } else {
- $('.joyride-modal-bg').fadeIn(this.settings.tipAnimationFadeSpeed);
- }
- }
- },
-
- expose : function () {
- var expose,
- exposeCover,
- el,
- origCSS,
- randId = 'expose-'+Math.floor(Math.random()*10000);
-
- if (arguments.length > 0 && arguments[0] instanceof $) {
- el = arguments[0];
- } else if(this.settings.$target && !/body/i.test(this.settings.$target.selector)){
- el = this.settings.$target;
- } else {
- return false;
- }
-
- if(el.length < 1){
- if(window.console){
- console.error('element not valid', el);
- }
- return false;
- }
-
- expose = $(this.settings.template.expose);
- this.settings.$body.append(expose);
- expose.css({
- top: el.offset().top,
- left: el.offset().left,
- width: this.outerWidth(el, true),
- height: this.outerHeight(el, true)
- });
-
- exposeCover = $(this.settings.template.exposeCover);
-
- origCSS = {
- zIndex: el.css('z-index'),
- position: el.css('position')
- };
-
- el.css('z-index',expose.css('z-index')*1+1);
-
- if (origCSS.position == 'static') {
- el.css('position','relative');
- }
-
- el.data('expose-css',origCSS);
-
- exposeCover.css({
- top: el.offset().top,
- left: el.offset().left,
- width: this.outerWidth(el, true),
- height: this.outerHeight(el, true)
- });
-
- this.settings.$body.append(exposeCover);
- expose.addClass(randId);
- exposeCover.addClass(randId);
- el.data('expose', randId);
- this.settings.postExposeCallback(this.settings.$li.index(), this.settings.$next_tip, el);
- this.add_exposed(el);
- },
-
- un_expose : function () {
- var exposeId,
- el,
- expose ,
- origCSS,
- clearAll = false;
-
- if (arguments.length > 0 && arguments[0] instanceof $) {
- el = arguments[0];
- } else if(this.settings.$target && !/body/i.test(this.settings.$target.selector)){
- el = this.settings.$target;
- } else {
- return false;
- }
-
- if(el.length < 1){
- if (window.console) {
- console.error('element not valid', el);
- }
- return false;
- }
-
- exposeId = el.data('expose');
- expose = $('.' + exposeId);
-
- if (arguments.length > 1) {
- clearAll = arguments[1];
- }
-
- if (clearAll === true) {
- $('.joyride-expose-wrapper,.joyride-expose-cover').remove();
- } else {
- expose.remove();
- }
-
- origCSS = el.data('expose-css');
-
- if (origCSS.zIndex == 'auto') {
- el.css('z-index', '');
- } else {
- el.css('z-index', origCSS.zIndex);
- }
-
- if (origCSS.position != el.css('position')) {
- if(origCSS.position == 'static') {// this is default, no need to set it.
- el.css('position', '');
- } else {
- el.css('position', origCSS.position);
- }
- }
-
- el.removeData('expose');
- el.removeData('expose-z-index');
- this.remove_exposed(el);
- },
-
- add_exposed: function(el){
- this.settings.exposed = this.settings.exposed || [];
- if (el instanceof $ || typeof el === 'object') {
- this.settings.exposed.push(el[0]);
- } else if (typeof el == 'string') {
- this.settings.exposed.push(el);
- }
- },
-
- remove_exposed: function(el){
- var search, count;
- if (el instanceof $) {
- search = el[0]
- } else if (typeof el == 'string'){
- search = el;
- }
-
- this.settings.exposed = this.settings.exposed || [];
- count = this.settings.exposed.length;
-
- for (var i=0; i < count; i++) {
- if (this.settings.exposed[i] == search) {
- this.settings.exposed.splice(i, 1);
- return;
- }
- }
- },
-
- center : function () {
- var $w = $(window);
-
- this.settings.$next_tip.css({
- top : ((($w.height() - this.outerHeight(this.settings.$next_tip)) / 2) + $w.scrollTop()),
- left : ((($w.width() - this.outerWidth(this.settings.$next_tip)) / 2) + this.scrollLeft($w))
- });
-
- return true;
- },
-
- bottom : function () {
- return /bottom/i.test(this.settings.tipSettings.tipLocation);
- },
-
- top : function () {
- return /top/i.test(this.settings.tipSettings.tipLocation);
- },
-
- right : function () {
- return /right/i.test(this.settings.tipSettings.tipLocation);
- },
-
- left : function () {
- return /left/i.test(this.settings.tipSettings.tipLocation);
- },
-
- corners : function (el) {
- var w = $(window),
- window_half = w.height() / 2,
- //using this to calculate since scroll may not have finished yet.
- tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()),
- right = w.width() + this.scrollLeft(w),
- offsetBottom = w.height() + tipOffset,
- bottom = w.height() + w.scrollTop(),
- top = w.scrollTop();
-
- if (tipOffset < top) {
- if (tipOffset < 0) {
- top = 0;
- } else {
- top = tipOffset;
- }
- }
-
- if (offsetBottom > bottom) {
- bottom = offsetBottom;
- }
-
- return [
- el.offset().top < top,
- right < el.offset().left + el.outerWidth(),
- bottom < el.offset().top + el.outerHeight(),
- this.scrollLeft(w) > el.offset().left
- ];
- },
-
- visible : function (hidden_corners) {
- var i = hidden_corners.length;
-
- while (i--) {
- if (hidden_corners[i]) return false;
- }
-
- return true;
- },
-
- nub_position : function (nub, pos, def) {
- if (pos === 'auto') {
- nub.addClass(def);
- } else {
- nub.addClass(pos);
- }
- },
-
- startTimer : function () {
- if (this.settings.$li.length) {
- this.settings.automate = setTimeout(function () {
- this.hide();
- this.show();
- this.startTimer();
- }.bind(this), this.settings.timer);
- } else {
- clearTimeout(this.settings.automate);
- }
- },
-
- end : function () {
- if (this.settings.cookieMonster) {
- $.cookie(this.settings.cookieName, 'ridden', { expires: this.settings.cookieExpires, domain: this.settings.cookieDomain });
- }
-
- if (this.settings.timer > 0) {
- clearTimeout(this.settings.automate);
- }
-
- if (this.settings.modal && this.settings.expose) {
- this.un_expose();
- }
-
- this.settings.$next_tip.data('closed', true);
-
- $('.joyride-modal-bg').hide();
- this.settings.$current_tip.hide();
- this.settings.postStepCallback(this.settings.$li.index(), this.settings.$current_tip);
- this.settings.postRideCallback(this.settings.$li.index(), this.settings.$current_tip);
- },
-
- outerHTML : function (el) {
- // support FireFox < 11
- return el.outerHTML || new XMLSerializer().serializeToString(el);
- },
-
- off : function () {
- $(this.scope).off('.joyride');
- $(window).off('.joyride');
- $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride');
- $('.joyride-tip-guide, .joyride-modal-bg').remove();
- clearTimeout(this.settings.automate);
- this.settings = {};
- }
- };
-}(Foundation.zj, this, this.document));
diff --git a/foundation/javascripts/foundation/foundation.js b/foundation/javascripts/foundation/foundation.js
deleted file mode 100644
index 5919cf8..0000000
--- a/foundation/javascripts/foundation/foundation.js
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * Foundation Responsive Library
- * http://foundation.zurb.com
- * Copyright 2013, ZURB
- * Free to use under the MIT license.
- * http://www.opensource.org/licenses/mit-license.php
-*/
-
-/*jslint unparam: true, browser: true, indent: 2 */
-
-// Accommodate running jQuery or Zepto in noConflict() mode by
-// using an anonymous function to redefine the $ shorthand name.
-// See http://docs.jquery.com/Using_jQuery_with_Other_Libraries
-// and http://zeptojs.com/
-var libFuncName = null;
-if (typeof jQuery === "undefined" &&
- typeof Zepto === "undefined" &&
- typeof $ === "function") {
- libFuncName = $;
-} else if (typeof jQuery === "function") {
- libFuncName = jQuery;
-} else if (typeof Zepto === "function") {
- libFuncName = Zepto;
-} else {
- throw new TypeError();
-}
-
-(function ($) {
-
-(function () {
- // add dusty browser stuff
- if (!Array.prototype.filter) {
- Array.prototype.filter = function(fun /*, thisp */) {
- "use strict";
-
- if (this == null) {
- throw new TypeError();
- }
-
- var t = Object(this),
- len = t.length >>> 0;
- if (typeof fun != "function") {
- try {
- throw new TypeError();
- } catch (e) {
- return;
- }
- }
-
- var res = [],
- thisp = arguments[1];
- for (var i = 0; i < len; i++) {
- if (i in t) {
- var val = t[i]; // in case fun mutates this
- if (fun && fun.call(thisp, val, i, t)) {
- res.push(val);
- }
- }
- }
-
- return res;
- };
-
- if (!Function.prototype.bind) {
- Function.prototype.bind = function (oThis) {
- if (typeof this !== "function") {
- // closest thing possible to the ECMAScript 5 internal IsCallable function
- throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
- }
-
- var aArgs = Array.prototype.slice.call(arguments, 1),
- fToBind = this,
- fNOP = function () {},
- fBound = function () {
- return fToBind.apply(this instanceof fNOP && oThis
- ? this
- : oThis,
- aArgs.concat(Array.prototype.slice.call(arguments)));
- };
-
- fNOP.prototype = this.prototype;
- fBound.prototype = new fNOP();
-
- return fBound;
- };
- }
- }
-
- // fake stop() for zepto.
- $.fn.stop = $.fn.stop || function() {
- return this;
- };
-}());
-
-;(function (window, document, undefined) {
- 'use strict';
-
- window.Foundation = {
- name : 'Foundation',
-
- version : '4.1.0',
-
- // global Foundation cache object
- cache : {},
-
- init : function (scope, libraries, method, options, response, /* internal */ nc) {
- var library_arr,
- args = [scope, method, options, response],
- responses = [],
- nc = nc || false;
-
- // disable library error catching,
- // used for development only
- if (nc) this.nc = nc;
-
-
- // check RTL
- this.rtl = /rtl/i.test($('html').attr('dir'));
-
- // set foundation global scope
- this.scope = scope || this.scope;
-
- if (libraries && typeof libraries === 'string') {
- if (/off/i.test(libraries)) return this.off();
-
- library_arr = libraries.split(' ');
-
- if (library_arr.length > 0) {
- for (var i = library_arr.length - 1; i >= 0; i--) {
- responses.push(this.init_lib(library_arr[i], args));
- }
- }
- } else {
- for (var lib in this.libs) {
- responses.push(this.init_lib(lib, args));
- }
- }
-
- // if first argument is callback, add to args
- if (typeof libraries === 'function') {
- args.unshift(libraries);
- }
-
- return this.response_obj(responses, args);
- },
-
- response_obj : function (response_arr, args) {
- for (var i = 0, len = args.length; i < len; i++) {
- if (typeof args[i] === 'function') {
- return args[i]({
- errors: response_arr.filter(function (s) {
- if (typeof s === 'string') return s;
- })
- });
- }
- }
-
- return response_arr;
- },
-
- init_lib : function (lib, args) {
- return this.trap(function () {
- if (this.libs.hasOwnProperty(lib)) {
- this.patch(this.libs[lib]);
- return this.libs[lib].init.apply(this.libs[lib], args);
- }
- }.bind(this), lib);
- },
-
- trap : function (fun, lib) {
- if (!this.nc) {
- try {
- return fun();
- } catch (e) {
- return this.error({name: lib, message: 'could not be initialized', more: e.name + ' ' + e.message});
- }
- }
-
- return fun();
- },
-
- patch : function (lib) {
- this.fix_outer(lib);
- lib.scope = this.scope;
- lib.rtl = this.rtl;
- },
-
- inherit : function (scope, methods) {
- var methods_arr = methods.split(' ');
-
- for (var i = methods_arr.length - 1; i >= 0; i--) {
- if (this.lib_methods.hasOwnProperty(methods_arr[i])) {
- this.libs[scope.name][methods_arr[i]] = this.lib_methods[methods_arr[i]];
- }
- }
- },
-
- random_str : function (length) {
- var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');
-
- if (!length) {
- length = Math.floor(Math.random() * chars.length);
- }
-
- var str = '';
- for (var i = 0; i < length; i++) {
- str += chars[Math.floor(Math.random() * chars.length)];
- }
- return str;
- },
-
- libs : {},
-
- // methods that can be inherited in libraries
- lib_methods : {
- set_data : function (node, data) {
- // this.name references the name of the library calling this method
- var id = [this.name,+new Date(),Foundation.random_str(5)].join('-');
-
- Foundation.cache[id] = data;
- node.attr('data-' + this.name + '-id', id);
- return data;
- },
-
- get_data : function (node) {
- return Foundation.cache[node.attr('data-' + this.name + '-id')];
- },
-
- remove_data : function (node) {
- if (node) {
- delete Foundation.cache[node.attr('data-' + this.name + '-id')];
- node.attr('data-' + this.name + '-id', '');
- } else {
- $('[data-' + this.name + '-id]').each(function () {
- delete Foundation.cache[$(this).attr('data-' + this.name + '-id')];
- $(this).attr('data-' + this.name + '-id', '');
- });
- }
- },
-
- throttle : function(fun, delay) {
- var timer = null;
- return function () {
- var context = this, args = arguments;
- clearTimeout(timer);
- timer = setTimeout(function () {
- fun.apply(context, args);
- }, delay);
- };
- },
-
- // parses data-options attribute on nodes and turns
- // them into an object
- data_options : function (el) {
- var opts = {}, ii, p,
- opts_arr = (el.attr('data-options') || ':').split(';'),
- opts_len = opts_arr.length;
-
- function isNumber (o) {
- return ! isNaN (o-0) && o !== null && o !== "" && o !== false && o !== true;
- }
-
- function trim(str) {
- if (typeof str === 'string') return $.trim(str);
- return str;
- }
-
- // parse options
- for (ii = opts_len - 1; ii >= 0; ii--) {
- p = opts_arr[ii].split(':');
-
- if (/true/i.test(p[1])) p[1] = true;
- if (/false/i.test(p[1])) p[1] = false;
- if (isNumber(p[1])) p[1] = parseInt(p[1], 10);
-
- if (p.length === 2 && p[0].length > 0) {
- opts[trim(p[0])] = trim(p[1]);
- }
- }
-
- return opts;
- },
-
- delay : function (fun, delay) {
- return setTimeout(fun, delay);
- },
-
- // animated scrolling
- scrollTo : function (el, to, duration) {
- if (duration < 0) return;
- var difference = to - $(window).scrollTop();
- var perTick = difference / duration * 10;
-
- this.scrollToTimerCache = setTimeout(function() {
- if (!isNaN(parseInt(perTick, 10))) {
- window.scrollTo(0, $(window).scrollTop() + perTick);
- this.scrollTo(el, to, duration - 10);
- }
- }.bind(this), 10);
- },
-
- // not supported in core Zepto
- scrollLeft : function (el) {
- if (!el.length) return;
- return ('scrollLeft' in el[0]) ? el[0].scrollLeft : el[0].pageXOffset;
- },
-
- // test for empty object or array
- empty : function (obj) {
- if (obj.length && obj.length > 0) return false;
- if (obj.length && obj.length === 0) return true;
-
- for (var key in obj) {
- if (hasOwnProperty.call(obj, key)) return false;
- }
-
- return true;
- }
- },
-
- fix_outer : function (lib) {
- lib.outerHeight = function (el, bool) {
- if (typeof Zepto === 'function') {
- return el.height();
- }
-
- if (typeof bool !== 'undefined') {
- return el.outerHeight(bool);
- }
-
- return el.outerHeight();
- };
-
- lib.outerWidth = function (el) {
- if (typeof Zepto === 'function') {
- return el.width();
- }
-
- if (typeof bool !== 'undefined') {
- return el.outerWidth(bool);
- }
-
- return el.outerWidth();
- };
- },
-
- error : function (error) {
- return error.name + ' ' + error.message + '; ' + error.more;
- },
-
- // remove all foundation events.
- off: function () {
- $(this.scope).off('.fndtn');
- $(window).off('.fndtn');
- return true;
- },
-
- zj : function () {
- try {
- return Zepto;
- } catch (e) {
- return jQuery;
- }
- }()
- },
-
- $.fn.foundation = function () {
- var args = Array.prototype.slice.call(arguments, 0);
-
- return this.each(function () {
- Foundation.init.apply(Foundation, [this].concat(args));
- return this;
- });
- };
-
-}(this, this.document));
-
-})(libFuncName);
diff --git a/foundation/javascripts/foundation/foundation.magellan.js b/foundation/javascripts/foundation/foundation.magellan.js
deleted file mode 100644
index 3cdef5b..0000000
--- a/foundation/javascripts/foundation/foundation.magellan.js
+++ /dev/null
@@ -1,130 +0,0 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.magellan = {
- name : 'magellan',
-
- version : '4.0.0',
-
- settings : {
- activeClass: 'active'
- },
-
- init : function (scope, method, options) {
- this.scope = scope || this.scope;
- Foundation.inherit(this, 'data_options');
-
- if (typeof method === 'object') {
- $.extend(true, this.settings, method);
- }
-
- if (typeof method != 'string') {
- if (!this.settings.init) {
- this.fixed_magellan = $("[data-magellan-expedition]");
- this.set_threshold();
- this.last_destination = $('[data-magellan-destination]').last();
- this.events();
- }
-
- return this.settings.init;
- } else {
- return this[method].call(this, options);
- }
- },
-
- events : function () {
- var self = this;
- $(this.scope).on('arrival.fndtn.magellan', '[data-magellan-arrival]', function (e) {
- var $destination = $(this),
- $expedition = $destination.closest('[data-magellan-expedition]'),
- activeClass = $expedition.attr('data-magellan-active-class')
- || self.settings.activeClass;
-
- $destination
- .closest('[data-magellan-expedition]')
- .find('[data-magellan-arrival]')
- .not($destination)
- .removeClass(activeClass);
- $destination.addClass(activeClass);
- });
-
- this.fixed_magellan
- .on('update-position.fndtn.magellan', function(){
- var $el = $(this);
- // $el.data("magellan-fixed-position","");
- //$el.data("magellan-top-offset", "");
- })
- .trigger('update-position');
-
- $(window)
- .on('resize.fndtn.magellan', function() {
- this.fixed_magellan.trigger('update-position');
- }.bind(this))
-
- .on('scroll.fndtn.magellan', function() {
- var windowScrollTop = $(window).scrollTop();
- self.fixed_magellan.each(function() {
- var $expedition = $(this);
- if (typeof $expedition.data('magellan-top-offset') === 'undefined') {
- $expedition.data('magellan-top-offset', $expedition.offset().top);
- }
- if (typeof $expedition.data('magellan-fixed-position') === 'undefined') {
- $expedition.data('magellan-fixed-position', false)
- }
- var fixed_position = (windowScrollTop + self.settings.threshold) > $expedition.data("magellan-top-offset");
- var attr = $expedition.attr('data-magellan-top-offset');
-
- if ($expedition.data("magellan-fixed-position") != fixed_position) {
- $expedition.data("magellan-fixed-position", fixed_position);
- if (fixed_position) {
- $expedition.css({position:"fixed", top:0});
- } else {
- $expedition.css({position:"", top:""});
- }
- if (fixed_position && typeof attr != 'undefined' && attr != false) {
- $expedition.css({position:"fixed", top:attr + "px"});
- }
- }
- });
- });
-
-
- if (this.last_destination.length > 0) {
- $(window).on('scroll.fndtn.magellan', function (e) {
- var windowScrollTop = $(window).scrollTop(),
- scrolltopPlusHeight = windowScrollTop + $(window).height(),
- lastDestinationTop = Math.ceil(self.last_destination.offset().top);
-
- $('[data-magellan-destination]').each(function () {
- var $destination = $(this),
- destination_name = $destination.attr('data-magellan-destination'),
- topOffset = $destination.offset().top - windowScrollTop;
-
- if (topOffset <= self.settings.threshold) {
- $("[data-magellan-arrival='" + destination_name + "']").trigger('arrival');
- }
- // In large screens we may hit the bottom of the page and dont reach the top of the last magellan-destination, so lets force it
- if (scrolltopPlusHeight >= $(self.scope).height() && lastDestinationTop > windowScrollTop && lastDestinationTop < scrolltopPlusHeight) {
- $('[data-magellan-arrival]').last().trigger('arrival');
- }
- });
- });
- }
-
- this.settings.init = true;
- },
-
- set_threshold : function () {
- if (!this.settings.threshold) {
- this.settings.threshold = (this.fixed_magellan.length > 0) ?
- this.outerHeight(this.fixed_magellan, true) : 0;
- }
- },
-
- off : function () {
- $(this.scope).off('.fndtn.magellan');
- }
- };
-}(Foundation.zj, this, this.document));
diff --git a/foundation/javascripts/foundation/foundation.orbit.js b/foundation/javascripts/foundation/foundation.orbit.js
deleted file mode 100644
index 08c9206..0000000
--- a/foundation/javascripts/foundation/foundation.orbit.js
+++ /dev/null
@@ -1,367 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs = Foundation.libs || {};
-
- Foundation.libs.orbit = {
- name: 'orbit',
-
- version: '4.1.0',
-
- settings: {
- timer_speed: 10000,
- animation_speed: 500,
- bullets: true,
- stack_on_small: true,
- container_class: 'orbit-container',
- stack_on_small_class: 'orbit-stack-on-small',
- next_class: 'orbit-next',
- prev_class: 'orbit-prev',
- timer_container_class: 'orbit-timer',
- timer_paused_class: 'paused',
- timer_progress_class: 'orbit-progress',
- slides_container_class: 'orbit-slides-container',
- bullets_container_class: 'orbit-bullets',
- bullets_active_class: 'active',
- slide_number_class: 'orbit-slide-number',
- caption_class: 'orbit-caption',
- active_slide_class: 'active',
- orbit_transition_class: 'orbit-transitioning'
- },
-
- init: function (scope, method, options) {
- var self = this;
- Foundation.inherit(self, 'data_options');
-
- if (typeof method === 'object') {
- $.extend(true, self.settings, method);
- }
-
- $('[data-orbit]', scope).each(function(idx, el) {
- var scoped_self = $.extend(true, {}, self);
- scoped_self._init(idx, el);
- });
- },
-
- _container_html: function() {
- var self = this;
- return '
';
- },
-
- _bullets_container_html: function($slides) {
- var self = this,
- $list = $(' ');
- $slides.each(function(idx, slide) {
- var $item = $(' ');
- if (idx === 0) {
- $item.addClass(self.settings.bullets_active_class);
- }
- $list.append($item);
- });
- return $list;
- },
-
- _slide_number_html: function(slide_number, total_slides) {
- var self = this,
- $container = $('
');
- $container.append('' + slide_number + ' of ' + total_slides + ' ');
- return $container;
- },
-
- _timer_html: function() {
- var self = this;
- if (typeof self.settings.timer_speed === 'number' && self.settings.timer_speed > 0) {
- return '';
- } else {
- return '';
- }
- },
-
- _next_html: function() {
- var self = this;
- return 'Next ';
- },
-
- _prev_html: function() {
- var self = this;
- return 'Prev ';
- },
-
- _init: function (idx, slider) {
- var self = this,
- $slides_container = $(slider),
- $container = $slides_container.wrap(self._container_html()).parent(),
- $slides = $slides_container.children();
-
- $.extend(true, self.settings, self.data_options($slides_container));
-
- $container.append(self._prev_html());
- $container.append(self._next_html());
- $slides_container.addClass(self.settings.slides_container_class);
- if (self.settings.stack_on_small) {
- $container.addClass(self.settings.stack_on_small_class);
- }
- $container.append(self._slide_number_html(1, $slides.length));
- $container.append(self._timer_html());
- if (self.settings.bullets) {
- $container.after(self._bullets_container_html($slides));
- }
- // To better support the "sliding" effect it's easier
- // if we just clone the first and last slides
- $slides_container.append($slides.first().clone().attr('data-orbit-slide',''));
- $slides_container.prepend($slides.last().clone().attr('data-orbit-slide',''));
- // Make the first "real" slide active
- $slides_container.css('marginLeft', '-100%');
- $slides.first().addClass(self.settings.active_slide_class);
-
- self._init_events($slides_container);
- self._init_dimensions($slides_container);
- self._start_timer($slides_container);
- },
-
- _init_events: function ($slides_container) {
- var self = this,
- $container = $slides_container.parent();
-
- $(window)
- .on('load.fndtn.orbit', function() {
- $slides_container.height('');
- $slides_container.height($slides_container.height($container.height()));
- $slides_container.trigger('orbit:ready');
- })
- .on('resize.fndtn.orbit', function() {
- $slides_container.height('');
- $slides_container.height($slides_container.height($container.height()));
- });
-
- $(document).on('click.fndtn.orbit', '[data-orbit-link]', function(e) {
- e.preventDefault();
- var id = $(e.currentTarget).attr('data-orbit-link'),
- $slide = $slides_container.find('[data-orbit-slide=' + id + ']').first();
-
- if ($slide.length === 1) {
- self._reset_timer($slides_container, true);
- self._goto($slides_container, $slide.index(), function() {});
- }
- });
-
- $container.siblings('.' + self.settings.bullets_container_class)
- .on('click.fndtn.orbit', '[data-orbit-slide-number]', function(e) {
- e.preventDefault();
- self._reset_timer($slides_container, true);
- self._goto($slides_container, $(e.currentTarget).data('orbit-slide-number'),function() {});
- });
-
- $container
- .on('orbit:after-slide-change.fndtn.orbit', function(e, orbit) {
- var $slide_number = $container.find('.' + self.settings.slide_number_class);
-
- if ($slide_number.length === 1) {
- $slide_number.replaceWith(self._slide_number_html(orbit.slide_number, orbit.total_slides));
- }
- })
- .on('orbit:next-slide.fndtn.orbit click.fndtn.orbit', '.' + self.settings.next_class, function(e) {
- e.preventDefault();
- self._reset_timer($slides_container, true);
- self._goto($slides_container, 'next', function() {});
- })
- .on('orbit:prev-slide.fndtn.orbit click.fndtn.orbit', '.' + self.settings.prev_class, function(e) {
- e.preventDefault();
- self._reset_timer($slides_container, true);
- self._goto($slides_container, 'prev', function() {});
- })
- .on('orbit:toggle-play-pause.fndtn.orbit click.fndtn.orbit touchstart.fndtn.orbit', '.' + self.settings.timer_container_class, function(e) {
- e.preventDefault();
- var $timer = $(e.currentTarget).toggleClass(self.settings.timer_paused_class),
- $slides_container = $timer.closest('.' + self.settings.container_class)
- .find('.' + self.settings.slides_container_class);
-
- if ($timer.hasClass(self.settings.timer_paused_class)) {
- self._stop_timer($slides_container);
- } else {
- self._start_timer($slides_container);
- }
- })
- .on('touchstart.fndtn.orbit', function(e) {
- if (!e.touches) { e = e.originalEvent; }
- var data = {
- start_page_x: e.touches[0].pageX,
- start_page_y: e.touches[0].pageY,
- start_time: (new Date()).getTime(),
- delta_x: 0,
- is_scrolling: undefined
- };
- $container.data('swipe-transition', data);
- e.stopPropagation();
- })
- .on('touchmove.fndtn.orbit', function(e) {
- if (!e.touches) { e = e.originalEvent; }
- // Ignore pinch/zoom events
- if(e.touches.length > 1 || e.scale && e.scale !== 1) return;
-
- var data = $container.data('swipe-transition');
- if (typeof data === 'undefined') {
- data = {};
- }
-
- data.delta_x = e.touches[0].pageX - data.start_page_x;
-
- if ( typeof data.is_scrolling === 'undefined') {
- data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
- }
-
- if (!data.is_scrolling && !data.active) {
- e.preventDefault();
- self._stop_timer($slides_container);
- var direction = (data.delta_x < 0) ? 'next' : 'prev';
- data.active = true;
- self._goto($slides_container, direction, function() {});
- }
- })
- .on('touchend.fndtn.orbit', function(e) {
- $container.data('swipe-transition', {});
- e.stopPropagation();
- });
- },
-
- _init_dimensions: function ($slides_container) {
- var $container = $slides_container.parent(),
- $slides = $slides_container.children();
-
- $slides_container.css('width', $slides.length * 100 + '%');
- $slides.css('width', 100 / $slides.length + '%');
- $slides_container.height($container.height());
- $slides_container.css('width', $slides.length * 100 + '%');
- },
-
- _start_timer: function ($slides_container) {
- var self = this,
- $container = $slides_container.parent();
-
- var callback = function() {
- self._reset_timer($slides_container, false);
- self._goto($slides_container, 'next', function() {
- self._start_timer($slides_container);
- });
- };
-
- var $timer = $container.find('.' + self.settings.timer_container_class),
- $progress = $timer.find('.' + self.settings.timer_progress_class),
- progress_pct = ($progress.width() / $timer.width()),
- delay = self.settings.timer_speed - (progress_pct * self.settings.timer_speed);
-
- $progress.animate({'width': '100%'}, delay, 'linear', callback);
- $slides_container.trigger('orbit:timer-started');
- },
-
- _stop_timer: function ($slides_container) {
- var self = this,
- $container = $slides_container.parent(),
- $timer = $container.find('.' + self.settings.timer_container_class),
- $progress = $timer.find('.' + self.settings.timer_progress_class),
- progress_pct = $progress.width() / $timer.width()
- self._rebuild_timer($container, progress_pct * 100 + '%');
- // $progress.stop();
- $slides_container.trigger('orbit:timer-stopped');
- $timer = $container.find('.' + self.settings.timer_container_class);
- $timer.addClass(self.settings.timer_paused_class);
- },
-
- _reset_timer: function($slides_container, is_paused) {
- var self = this,
- $container = $slides_container.parent();
- self._rebuild_timer($container, '0%');
- if (typeof is_paused === 'boolean' && is_paused) {
- var $timer = $container.find('.' + self.settings.timer_container_class);
- $timer.addClass(self.settings.timer_paused_class);
- }
- },
-
- _rebuild_timer: function ($container, width_pct) {
- // Zepto is unable to stop animations since they
- // are css-based. This is a workaround for that
- // limitation, which rebuilds the dom element
- // thus stopping the animation
- var self = this,
- $timer = $container.find('.' + self.settings.timer_container_class),
- $new_timer = $(self._timer_html()),
- $new_timer_progress = $new_timer.find('.' + self.settings.timer_progress_class);
-
- if (typeof Zepto === 'function') {
- $timer.remove();
- $container.append($new_timer);
- $new_timer_progress.css('width', width_pct);
- } else if (typeof jQuery === 'function') {
- var $progress = $timer.find('.' + self.settings.timer_progress_class);
- $progress.css('width', width_pct);
- $progress.stop();
- }
- },
-
- _goto: function($slides_container, index_or_direction, callback) {
- var self = this,
- $container = $slides_container.parent(),
- $slides = $slides_container.children(),
- $active_slide = $slides_container.find('.' + self.settings.active_slide_class),
- active_index = $active_slide.index(),
- margin_position = Foundation.rtl ? 'marginRight' : 'marginLeft';
-
- if ($container.hasClass(self.settings.orbit_transition_class)) {
- return false;
- }
-
- if (index_or_direction === 'prev') {
- if (active_index === 0) {
- active_index = $slides.length - 1;
- }
- else {
- active_index--;
- }
- }
- else if (index_or_direction === 'next') {
- active_index = (active_index+1) % $slides.length;
- }
- else if (typeof index_or_direction === 'number') {
- active_index = (index_or_direction % $slides.length);
- }
- if (active_index === ($slides.length - 1) && index_or_direction === 'next') {
- $slides_container.css(margin_position, '0%');
- active_index = 1;
- }
- else if (active_index === 0 && index_or_direction === 'prev') {
- $slides_container.css(margin_position, '-' + ($slides.length - 1) * 100 + '%');
- active_index = $slides.length - 2;
- }
- // Start transition, make next slide active
- $container.addClass(self.settings.orbit_transition_class);
- $active_slide.removeClass(self.settings.active_slide_class);
- $($slides[active_index]).addClass(self.settings.active_slide_class);
- // Make next bullet active
- var $bullets = $container.siblings('.' + self.settings.bullets_container_class);
- if ($bullets.length === 1) {
- $bullets.children().removeClass(self.settings.bullets_active_class);
- $($bullets.children()[active_index-1]).addClass(self.settings.bullets_active_class);
- }
- var new_margin_left = '-' + (active_index * 100) + '%';
- // Check to see if animation will occur, otherwise perform
- // callbacks manually
- $slides_container.trigger('orbit:before-slide-change');
- if ($slides_container.css(margin_position) === new_margin_left) {
- $container.removeClass(self.settings.orbit_transition_class);
- $slides_container.trigger('orbit:after-slide-change', [{slide_number: active_index, total_slides: $slides_container.children().length - 2}]);
- callback();
- } else {
- var properties = {};
- properties[margin_position] = new_margin_left;
-
- $slides_container.animate(properties, self.settings.animation_speed, 'linear', function() {
- $container.removeClass(self.settings.orbit_transition_class);
- $slides_container.trigger('orbit:after-slide-change', [{slide_number: active_index, total_slides: $slides_container.children().length - 2}]);
- callback();
- });
- }
- }
- };
-}(Foundation.zj, this, this.document));
diff --git a/foundation/javascripts/foundation/foundation.placeholder.js b/foundation/javascripts/foundation/foundation.placeholder.js
deleted file mode 100644
index 65c18fc..0000000
--- a/foundation/javascripts/foundation/foundation.placeholder.js
+++ /dev/null
@@ -1,159 +0,0 @@
-/*! http://mths.be/placeholder v2.0.7 by @mathias
- Modified to work with Zepto.js by ZURB
-*/
-;(function(window, document, $) {
-
- var isInputSupported = 'placeholder' in document.createElement('input'),
- isTextareaSupported = 'placeholder' in document.createElement('textarea'),
- prototype = $.fn,
- valHooks = $.valHooks,
- hooks,
- placeholder;
-
- if (isInputSupported && isTextareaSupported) {
-
- placeholder = prototype.placeholder = function() {
- return this;
- };
-
- placeholder.input = placeholder.textarea = true;
-
- } else {
-
- placeholder = prototype.placeholder = function() {
- var $this = this;
- $this
- .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')
- .not('.placeholder')
- .bind({
- 'focus.placeholder': clearPlaceholder,
- 'blur.placeholder': setPlaceholder
- })
- .data('placeholder-enabled', true)
- .trigger('blur.placeholder');
- return $this;
- };
-
- placeholder.input = isInputSupported;
- placeholder.textarea = isTextareaSupported;
-
- hooks = {
- 'get': function(element) {
- var $element = $(element);
- return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value;
- },
- 'set': function(element, value) {
- var $element = $(element);
- if (!$element.data('placeholder-enabled')) {
- return element.value = value;
- }
- if (value == '') {
- element.value = value;
- // Issue #56: Setting the placeholder causes problems if the element continues to have focus.
- if (element != document.activeElement) {
- // We can't use `triggerHandler` here because of dummy text/password inputs :(
- setPlaceholder.call(element);
- }
- } else if ($element.hasClass('placeholder')) {
- clearPlaceholder.call(element, true, value) || (element.value = value);
- } else {
- element.value = value;
- }
- // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363
- return $element;
- }
- };
-
- isInputSupported || (valHooks.input = hooks);
- isTextareaSupported || (valHooks.textarea = hooks);
-
- $(function() {
- // Look for forms
- $(document).delegate('form', 'submit.placeholder', function() {
- // Clear the placeholder values so they don't get submitted
- var $inputs = $('.placeholder', this).each(clearPlaceholder);
- setTimeout(function() {
- $inputs.each(setPlaceholder);
- }, 10);
- });
- });
-
- // Clear placeholder values upon page reload
- $(window).bind('beforeunload.placeholder', function() {
- $('.placeholder').each(function() {
- this.value = '';
- });
- });
-
- }
-
- function args(elem) {
- // Return an object of element attributes
- var newAttrs = {},
- rinlinejQuery = /^jQuery\d+$/;
- $.each(elem.attributes, function(i, attr) {
- if (attr.specified && !rinlinejQuery.test(attr.name)) {
- newAttrs[attr.name] = attr.value;
- }
- });
- return newAttrs;
- }
-
- function clearPlaceholder(event, value) {
- var input = this,
- $input = $(input);
- if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) {
- if ($input.data('placeholder-password')) {
- $input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id'));
- // If `clearPlaceholder` was called from `$.valHooks.input.set`
- if (event === true) {
- return $input[0].value = value;
- }
- $input.focus();
- } else {
- input.value = '';
- $input.removeClass('placeholder');
- input == document.activeElement && input.select();
- }
- }
- }
-
- function setPlaceholder() {
- var $replacement,
- input = this,
- $input = $(input),
- $origInput = $input,
- id = this.id;
- if (input.value == '') {
- if (input.type == 'password') {
- if (!$input.data('placeholder-textinput')) {
- try {
- $replacement = $input.clone().attr({ 'type': 'text' });
- } catch(e) {
- $replacement = $(' ').attr($.extend(args(this), { 'type': 'text' }));
- }
- $replacement
- .removeAttr('name')
- .data({
- 'placeholder-password': true,
- 'placeholder-id': id
- })
- .bind('focus.placeholder', clearPlaceholder);
- $input
- .data({
- 'placeholder-textinput': $replacement,
- 'placeholder-id': id
- })
- .before($replacement);
- }
- $input = $input.removeAttr('id').hide().prev().attr('id', id).show();
- // Note: `$input[0] != input` now!
- }
- $input.addClass('placeholder');
- $input[0].value = $input.attr('placeholder');
- } else {
- $input.removeClass('placeholder');
- }
- }
-
-}(this, document, Foundation.zj));
diff --git a/foundation/javascripts/foundation/foundation.reveal.js b/foundation/javascripts/foundation/foundation.reveal.js
deleted file mode 100644
index 3ef6c60..0000000
--- a/foundation/javascripts/foundation/foundation.reveal.js
+++ /dev/null
@@ -1,272 +0,0 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.reveal = {
- name: 'reveal',
-
- version : '4.1.2',
-
- locked : false,
-
- settings : {
- animation: 'fadeAndPop',
- animationSpeed: 250,
- closeOnBackgroundClick: true,
- dismissModalClass: 'close-reveal-modal',
- bgClass: 'reveal-modal-bg',
- open: function(){},
- opened: function(){},
- close: function(){},
- closed: function(){},
- bg : $('.reveal-modal-bg'),
- css : {
- open : {
- 'opacity': 0,
- 'visibility': 'visible',
- 'display' : 'block'
- },
- close : {
- 'opacity': 1,
- 'visibility': 'hidden',
- 'display': 'none'
- }
- }
- },
-
- init : function (scope, method, options) {
- this.scope = scope || this.scope;
- Foundation.inherit(this, 'data_options delay');
-
- if (typeof method === 'object') {
- $.extend(true, this.settings, method);
- } else if (typeof options !== 'undefined') {
- $.extend(true, this.settings, options);
- }
-
- if (typeof method != 'string') {
- this.events();
-
- return this.settings.init;
- } else {
- return this[method].call(this, options);
- }
- },
-
- events : function () {
- var self = this;
-
- $(this.scope)
- .off('.fndtn.reveal')
- .on('click.fndtn.reveal', '[data-reveal-id]', function (e) {
- e.preventDefault();
- if (!self.locked) {
- self.locked = true;
- self.open.call(self, $(this));
- }
- })
- .on('click.fndtn.reveal touchend.click.fndtn.reveal', this.close_targets(), function (e) {
- e.preventDefault();
- if (!self.locked) {
- self.locked = true;
- self.close.call(self, $(this).closest('.reveal-modal'));
- }
- })
- .on('open.fndtn.reveal', '.reveal-modal', this.settings.open)
- .on('opened.fndtn.reveal', '.reveal-modal', this.settings.opened)
- .on('opened.fndtn.reveal', '.reveal-modal', this.open_video)
- .on('close.fndtn.reveal', '.reveal-modal', this.settings.close)
- .on('closed.fndtn.reveal', '.reveal-modal', this.settings.closed)
- .on('closed.fndtn.reveal', '.reveal-modal', this.close_video);
-
- return true;
- },
-
- open : function (target) {
- if (target) {
- var modal = $('#' + target.data('reveal-id'));
- } else {
- var modal = $(this.scope);
- }
-
- if (!modal.hasClass('open')) {
- var open_modal = $('.reveal-modal.open');
-
- if (typeof modal.data('css-top') === 'undefined') {
- modal.data('css-top', parseInt(modal.css('top'), 10))
- .data('offset', this.cache_offset(modal));
- }
-
- modal.trigger('open');
-
- if (open_modal.length < 1) {
- this.toggle_bg(modal);
- }
- this.hide(open_modal, this.settings.css.open);
- this.show(modal, this.settings.css.open);
- }
- },
-
- close : function (modal) {
-
- var modal = modal || $(this.scope),
- open_modals = $('.reveal-modal.open');
-
- if (open_modals.length > 0) {
- this.locked = true;
- modal.trigger('close');
- this.toggle_bg(modal);
- this.hide(open_modals, this.settings.css.close);
- }
- },
-
- close_targets : function () {
- var base = '.' + this.settings.dismissModalClass;
-
- if (this.settings.closeOnBackgroundClick) {
- return base + ', .' + this.settings.bgClass;
- }
-
- return base;
- },
-
- toggle_bg : function (modal) {
- if ($('.reveal-modal-bg').length === 0) {
- this.settings.bg = $('
', {'class': this.settings.bgClass})
- .appendTo('body');
- }
-
- if (this.settings.bg.filter(':visible').length > 0) {
- this.hide(this.settings.bg);
- } else {
- this.show(this.settings.bg);
- }
- },
-
- show : function (el, css) {
- // is modal
- if (css) {
- if (/pop/i.test(this.settings.animation)) {
- css.top = $(window).scrollTop() - el.data('offset') + 'px';
- var end_css = {
- top: $(window).scrollTop() + el.data('css-top') + 'px',
- opacity: 1
- }
-
- return this.delay(function () {
- return el
- .css(css)
- .animate(end_css, this.settings.animationSpeed, 'linear', function () {
- this.locked = false;
- el.trigger('opened');
- }.bind(this))
- .addClass('open');
- }.bind(this), this.settings.animationSpeed / 2);
- }
-
- if (/fade/i.test(this.settings.animation)) {
- var end_css = {opacity: 1};
-
- return this.delay(function () {
- return el
- .css(css)
- .animate(end_css, this.settings.animationSpeed, 'linear', function () {
- this.locked = false;
- el.trigger('opened');
- }.bind(this))
- .addClass('open');
- }.bind(this), this.settings.animationSpeed / 2);
- }
-
- return el.css(css).show().css({opacity: 1}).addClass('open').trigger('opened');
- }
-
- // should we animate the background?
- if (/fade/i.test(this.settings.animation)) {
- return el.fadeIn(this.settings.animationSpeed / 2);
- }
-
- return el.show();
- },
-
- hide : function (el, css) {
- // is modal
- if (css) {
- if (/pop/i.test(this.settings.animation)) {
- var end_css = {
- top: - $(window).scrollTop() - el.data('offset') + 'px',
- opacity: 0
- };
-
- return this.delay(function () {
- return el
- .animate(end_css, this.settings.animationSpeed, 'linear', function () {
- this.locked = false;
- el.css(css).trigger('closed');
- }.bind(this))
- .removeClass('open');
- }.bind(this), this.settings.animationSpeed / 2);
- }
-
- if (/fade/i.test(this.settings.animation)) {
- var end_css = {opacity: 0};
-
- return this.delay(function () {
- return el
- .animate(end_css, this.settings.animationSpeed, 'linear', function () {
- this.locked = false;
- el.css(css).trigger('closed');
- }.bind(this))
- .removeClass('open');
- }.bind(this), this.settings.animationSpeed / 2);
- }
-
- return el.hide().css(css).removeClass('open').trigger('closed');
- }
-
- // should we animate the background?
- if (/fade/i.test(this.settings.animation)) {
- return el.fadeOut(this.settings.animationSpeed / 2);
- }
-
- return el.hide();
- },
-
- close_video : function (e) {
- var video = $(this).find('.flex-video'),
- iframe = video.find('iframe');
-
- if (iframe.length > 0) {
- iframe.attr('data-src', iframe[0].src);
- iframe.attr('src', 'about:blank');
- video.fadeOut(100).hide();
- }
- },
-
- open_video : function (e) {
- var video = $(this).find('.flex-video'),
- iframe = video.find('iframe');
-
- if (iframe.length > 0) {
- var data_src = iframe.attr('data-src');
- if (typeof data_src === 'string') {
- iframe[0].src = iframe.attr('data-src');
- }
- video.show().fadeIn(100);
- }
- },
-
- cache_offset : function (modal) {
- var offset = modal.show().height() + parseInt(modal.css('top'), 10);
-
- modal.hide();
-
- return offset;
- },
-
- off : function () {
- $(this.scope).off('.fndtn.reveal');
- }
- };
-}(Foundation.zj, this, this.document));
diff --git a/foundation/javascripts/foundation/foundation.section.js b/foundation/javascripts/foundation/foundation.section.js
deleted file mode 100644
index 17e17fe..0000000
--- a/foundation/javascripts/foundation/foundation.section.js
+++ /dev/null
@@ -1,291 +0,0 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.section = {
- name: 'section',
-
- version : '4.1.2',
-
- settings : {
- deep_linking: false,
- one_up: true,
- callback: function (){}
- },
-
- init : function (scope, method, options) {
- var self = this;
- Foundation.inherit(this, 'throttle data_options position_right offset_right');
-
- if (typeof method != 'string') {
- this.set_active_from_hash();
- this.events();
-
- return true;
- } else {
- return this[method].call(this, options);
- }
- },
-
- events : function () {
- var self = this;
-
- $(this.scope)
- .on('click.fndtn.section', '[data-section] .title, [data-section] [data-section-title]', function (e) {
- var $this = $(this),
- section = $this.closest('[data-section]');
-
- self.toggle_active.call(this, e, self);
- });
-
- $(window)
- .on('resize.fndtn.section', self.throttle(function () {
- self.resize.call(this);
- }, 30))
- .on('hashchange', function () {
- if (!self.settings.toggled){
- self.set_active_from_hash();
- $(this).trigger('resize');
- }
- }).trigger('resize');
-
- $(document)
- .on('click.fndtn.section', function (e) {
- if ($(e.target).closest('.title, [data-section-title]').length < 1) {
- $('[data-section="vertical-nav"], [data-section="horizontal-nav"]')
- .find('section, .section, [data-section-region]')
- .removeClass('active')
- .attr('style', '');
- }
- });
-
- },
-
- toggle_active : function (e, self) {
- var $this = $(this),
- section = $this.closest('section, .section, [data-section-region]'),
- content = section.find('.content, [data-section-content]'),
- parent = section.closest('[data-section]'),
- self = Foundation.libs.section,
- settings = $.extend({}, self.settings, self.data_options(parent));
-
- self.settings.toggled = true;
-
- if (!settings.deep_linking && content.length > 0) {
- e.preventDefault();
- }
-
- if (section.hasClass('active')) {
- if (self.small(parent)
- || self.is_vertical(parent)
- || self.is_horizontal(parent)
- || self.is_accordion(parent)) {
- section
- .removeClass('active')
- .attr('style', '');
- }
- } else {
- var prev_active_section = null,
- title_height = self.outerHeight(section.find('.title, [data-section-title]'));
-
- if (self.small(parent) || settings.one_up) {
- prev_active_section = $this.closest('[data-section]').find('section.active, .section.active, .active[data-section-region]');
-
- if (self.small(parent)) {
- prev_active_section.attr('style', '');
- } else {
- prev_active_section.attr('style', 'visibility: hidden; padding-top: '+title_height+'px;');
- }
- }
-
- if (self.small(parent)) {
- section.attr('style', '');
- } else {
- section.css('padding-top', title_height);
- }
-
- section.addClass('active');
-
- if (prev_active_section !== null) {
- prev_active_section.removeClass('active').attr('style', '');
- }
- }
-
- setTimeout(function () {
- self.settings.toggled = false;
- }, 300);
-
- settings.callback();
- },
-
- resize : function () {
- var sections = $('[data-section]'),
- self = Foundation.libs.section;
-
- sections.each(function() {
- var $this = $(this),
- active_section = $this.find('section.active, .section.active, .active[data-section-region]'),
- settings = $.extend({}, self.settings, self.data_options($this));
-
- if (active_section.length > 1) {
- active_section
- .not(':first')
- .removeClass('active')
- .attr('style', '');
- } else if (active_section.length < 1
- && !self.is_vertical($this)
- && !self.is_horizontal($this)
- && !self.is_accordion($this)) {
-
- var first = $this.find('section, .section, [data-section-region]').first();
-
- if (settings.one_up) {
- first.addClass('active');
- }
-
- if (self.small($this)) {
- first.attr('style', '');
- } else {
- first.css('padding-top', self.outerHeight(first.find('.title, [data-section-title]')));
- }
- }
-
- if (self.small($this)) {
- active_section.attr('style', '');
- } else {
- active_section.css('padding-top', self.outerHeight(active_section.find('.title, [data-section-title]')));
- }
-
- self.position_titles($this);
-
- if (self.is_horizontal($this) && !self.small($this)) {
- self.position_content($this);
- } else {
- self.position_content($this, false);
- }
- });
- },
-
- is_vertical : function (el) {
- return /vertical-nav/i.test(el.data('section'));
- },
-
- is_horizontal : function (el) {
- return /horizontal-nav/i.test(el.data('section'));
- },
-
- is_accordion : function (el) {
- return /accordion/i.test(el.data('section'));
- },
-
- is_tabs : function (el) {
- return /tabs/i.test(el.data('section'));
- },
-
- set_active_from_hash : function () {
- var hash = window.location.hash.substring(1),
- sections = $('[data-section]'),
- self = this;
-
- sections.each(function () {
- var section = $(this),
- settings = $.extend({}, self.settings, self.data_options(section));
-
- if (hash.length > 0 && settings.deep_linking) {
- section
- .find('section, .section, [data-section-region]')
- .attr('style', '')
- .removeClass('active');
- section
- .find('.content[data-slug="' + hash + '"], [data-section-content][data-slug="' + hash + '"]')
- .closest('section, .section, [data-section-region]')
- .addClass('active');
- }
- });
- },
-
- position_titles : function (section, off) {
- var titles = section.find('.title, [data-section-title]'),
- previous_width = 0,
- self = this;
-
- if (typeof off === 'boolean') {
- titles.attr('style', '');
-
- } else {
- titles.each(function () {
- if (!self.rtl) {
- $(this).css('left', previous_width);
- } else {
- $(this).css('right', previous_width);
- }
- previous_width += self.outerWidth($(this));
- });
- }
- },
-
- position_content : function (section, off) {
- var titles = section.find('.title, [data-section-title]'),
- content = section.find('.content, [data-section-content]'),
- self = this;
-
- if (typeof off === 'boolean') {
- content.attr('style', '');
- section.attr('style', '');
- } else {
- section.find('section, .section, [data-section-region]').each(function () {
- var title = $(this).find('.title, [data-section-title]'),
- content = $(this).find('.content, [data-section-content]');
- if (!self.rtl) {
- content.css({left: title.position().left - 1, top: self.outerHeight(title) - 2});
- } else {
- content.css({right: self.position_right(title) + 1, top: self.outerHeight(title) - 2});
- }
- });
-
- // temporary work around for Zepto outerheight calculation issues.
- if (typeof Zepto === 'function') {
- section.height(this.outerHeight(titles.first()));
- } else {
- section.height(this.outerHeight(titles.first()) - 2);
- }
- }
-
- },
-
- position_right : function (el) {
- var section = el.closest('[data-section]'),
- section_width = el.closest('[data-section]').width(),
- offset = section.find('.title, [data-section-title]').length;
- return (section_width - el.position().left - el.width() * (el.index() + 1) - offset);
- },
-
- reflow : function () {
- $('[data-section]').trigger('resize');
- },
-
- small : function (el) {
- var settings = $.extend({}, this.settings, this.data_options(el));
- if (this.is_tabs(el)) {
- return false;
- }
- if (el && this.is_accordion(el)) {
- return true;
- }
- if ($('html').hasClass('lt-ie9')) {
- return true;
- }
- if ($('html').hasClass('ie8compat')) {
- return true;
- }
- return $(this.scope).width() < 768;
- },
-
- off : function () {
- $(this.scope).off('.fndtn.section');
- $(window).off('.fndtn.section');
- $(document).off('.fndtn.section')
- }
- };
-}(Foundation.zj, this, this.document));
diff --git a/foundation/javascripts/foundation/foundation.tooltips.js b/foundation/javascripts/foundation/foundation.tooltips.js
deleted file mode 100644
index 4e9cf7e..0000000
--- a/foundation/javascripts/foundation/foundation.tooltips.js
+++ /dev/null
@@ -1,199 +0,0 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.tooltips = {
- name: 'tooltips',
-
- version : '4.1.0',
-
- settings : {
- selector : '.has-tip',
- additionalInheritableClasses : [],
- tooltipClass : '.tooltip',
- tipTemplate : function (selector, content) {
- return '' + content + ' ';
- }
- },
-
- cache : {},
-
- init : function (scope, method, options) {
- var self = this;
- this.scope = scope || this.scope;
-
- if (typeof method === 'object') {
- $.extend(true, this.settings, method);
- }
-
- if (typeof method != 'string') {
- if (Modernizr.touch) {
- $(this.scope)
- .on('click.fndtn.tooltip touchstart.fndtn.tooltip touchend.fndtn.tooltip',
- '[data-tooltip]', function (e) {
- e.preventDefault();
- $(self.settings.tooltipClass).hide();
- self.showOrCreateTip($(this));
- })
- .on('click.fndtn.tooltip touchstart.fndtn.tooltip touchend.fndtn.tooltip',
- this.settings.tooltipClass, function (e) {
- e.preventDefault();
- $(this).fadeOut(150);
- });
- } else {
- $(this.scope)
- .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip',
- '[data-tooltip]', function (e) {
- var $this = $(this);
-
- if (e.type === 'mouseover' || e.type === 'mouseenter') {
- self.showOrCreateTip($this);
- } else if (e.type === 'mouseout' || e.type === 'mouseleave') {
- self.hide($this);
- }
- });
- }
-
- // $(this.scope).data('fndtn-tooltips', true);
- } else {
- return this[method].call(this, options);
- }
-
- },
-
- showOrCreateTip : function ($target) {
- var $tip = this.getTip($target);
-
- if ($tip && $tip.length > 0) {
- return this.show($target);
- }
-
- return this.create($target);
- },
-
- getTip : function ($target) {
- var selector = this.selector($target),
- tip = null;
-
- if (selector) {
- tip = $('span[data-selector=' + selector + ']' + this.settings.tooltipClass);
- }
-
- return (typeof tip === 'object') ? tip : false;
- },
-
- selector : function ($target) {
- var id = $target.attr('id'),
- dataSelector = $target.attr('data-tooltip') || $target.attr('data-selector');
-
- if ((id && id.length < 1 || !id) && typeof dataSelector != 'string') {
- dataSelector = 'tooltip' + Math.random().toString(36).substring(7);
- $target.attr('data-selector', dataSelector);
- }
-
- return (id && id.length > 0) ? id : dataSelector;
- },
-
- create : function ($target) {
- var $tip = $(this.settings.tipTemplate(this.selector($target), $('').html($target.attr('title')).html())),
- classes = this.inheritable_classes($target);
-
- $tip.addClass(classes).appendTo('body');
- if (Modernizr.touch) {
- $tip.append('
tap to close ');
- }
- $target.removeAttr('title').attr('title','');
- this.show($target);
- },
-
- reposition : function (target, tip, classes) {
- var width, nub, nubHeight, nubWidth, column, objPos;
-
- tip.css('visibility', 'hidden').show();
-
- width = target.data('width');
- nub = tip.children('.nub');
- nubHeight = this.outerHeight(nub);
- nubWidth = this.outerHeight(nub);
-
- objPos = function (obj, top, right, bottom, left, width) {
- return obj.css({
- 'top' : (top) ? top : 'auto',
- 'bottom' : (bottom) ? bottom : 'auto',
- 'left' : (left) ? left : 'auto',
- 'right' : (right) ? right : 'auto',
- 'width' : (width) ? width : 'auto'
- }).end();
- };
-
- objPos(tip, (target.offset().top + this.outerHeight(target) + 10), 'auto', 'auto', target.offset().left, width);
-
- if ($(window).width() < 767) {
- objPos(tip, (target.offset().top + this.outerHeight(target) + 10), 'auto', 'auto', 12.5, $(this.scope).width());
- tip.addClass('tip-override');
- objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left);
- } else {
- var left = target.offset().left;
- if (Foundation.rtl) {
- left = target.offset().left + target.offset().width - this.outerWidth(tip);
- }
- objPos(tip, (target.offset().top + this.outerHeight(target) + 10), 'auto', 'auto', left, width);
- tip.removeClass('tip-override');
- if (classes && classes.indexOf('tip-top') > -1) {
- objPos(tip, (target.offset().top - this.outerHeight(tip)), 'auto', 'auto', left, width)
- .removeClass('tip-override');
- } else if (classes && classes.indexOf('tip-left') > -1) {
- objPos(tip, (target.offset().top + (this.outerHeight(target) / 2) - nubHeight*2.5), 'auto', 'auto', (target.offset().left - this.outerWidth(tip) - nubHeight), width)
- .removeClass('tip-override');
- } else if (classes && classes.indexOf('tip-right') > -1) {
- objPos(tip, (target.offset().top + (this.outerHeight(target) / 2) - nubHeight*2.5), 'auto', 'auto', (target.offset().left + this.outerWidth(target) + nubHeight), width)
- .removeClass('tip-override');
- }
- }
-
- tip.css('visibility', 'visible').hide();
- },
-
- inheritable_classes : function (target) {
- var inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'noradius'].concat(this.settings.additionalInheritableClasses),
- classes = target.attr('class'),
- filtered = classes ? $.map(classes.split(' '), function (el, i) {
- if ($.inArray(el, inheritables) !== -1) {
- return el;
- }
- }).join(' ') : '';
-
- return $.trim(filtered);
- },
-
- show : function ($target) {
- var $tip = this.getTip($target);
-
- this.reposition($target, $tip, $target.attr('class'));
- $tip.fadeIn(150);
- },
-
- hide : function ($target) {
- var $tip = this.getTip($target);
-
- $tip.fadeOut(150);
- },
-
- // deprecate reload
- reload : function () {
- var $self = $(this);
-
- return ($self.data('fndtn-tooltips')) ? $self.foundationTooltips('destroy').foundationTooltips('init') : $self.foundationTooltips('init');
- },
-
- off : function () {
- $(this.scope).off('.fndtn.tooltip');
- $(this.settings.tooltipClass).each(function (i) {
- $('[data-tooltip]').get(i).attr('title', $(this).text());
- }).remove();
- }
- };
-}(Foundation.zj, this, this.document));
diff --git a/foundation/javascripts/foundation/foundation.topbar.js b/foundation/javascripts/foundation/foundation.topbar.js
deleted file mode 100644
index c49992c..0000000
--- a/foundation/javascripts/foundation/foundation.topbar.js
+++ /dev/null
@@ -1,242 +0,0 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.topbar = {
- name : 'topbar',
-
- version : '4.1.2',
-
- settings : {
- index : 0,
- stickyClass : 'sticky',
- custom_back_text: true,
- back_text: 'Back',
- init : false
- },
-
- init : function (section, method, options) {
- var self = this;
-
- if (typeof method === 'object') {
- $.extend(true, this.settings, method);
- }
-
- if (typeof method != 'string') {
-
- $('.top-bar').each(function () {
- self.settings.$w = $(window);
- self.settings.$topbar = $(this);
- self.settings.$section = self.settings.$topbar.find('section');
- self.settings.$titlebar = self.settings.$topbar.children('ul').first();
-
-
- self.settings.$topbar.data('index', 0);
-
- var breakpoint = $("
").insertAfter(self.settings.$topbar);
- self.settings.breakPoint = breakpoint.width();
- breakpoint.remove();
-
- self.assemble();
-
- if (self.settings.$topbar.parent().hasClass('fixed')) {
- $('body').css('padding-top', self.outerHeight(self.settings.$topbar));
- }
- });
-
- if (!self.settings.init) {
- this.events();
- }
-
- return this.settings.init;
- } else {
- // fire method
- return this[method].call(this, options);
- }
- },
-
- events : function () {
- var self = this;
- var offst = this.outerHeight($('.top-bar'));
- $(this.scope)
- .on('click.fndtn.topbar', '.top-bar .toggle-topbar', function (e) {
- var topbar = $(this).closest('.top-bar'),
- section = topbar.find('section, .section'),
- titlebar = topbar.children('ul').first();
-
- if (!topbar.data('height')) self.largestUL();
-
- e.preventDefault();
-
- if (self.breakpoint()) {
- topbar
- .toggleClass('expanded')
- .css('min-height', '');
- }
-
- if (!topbar.hasClass('expanded')) {
- if (!self.rtl) {
- section.css({left: '0%'});
- section.find('>.name').css({left: '100%'});
- } else {
- section.css({right: '0%'});
- section.find('>.name').css({right: '100%'});
- }
- section.find('li.moved').removeClass('moved');
- topbar.data('index', 0);
-
- if (topbar.hasClass('fixed')) {
- topbar.parent().addClass('fixed');
- topbar.removeClass('fixed');
- $('body').css('padding-top',offst);
- }
- } else if (topbar.parent().hasClass('fixed')) {
- topbar.parent().removeClass('fixed');
- topbar.addClass('fixed');
- $('body').css('padding-top','0');
- window.scrollTo(0,0);
- }
- })
-
- .on('click.fndtn.topbar', '.top-bar .has-dropdown>a', function (e) {
- var topbar = $(this).closest('.top-bar'),
- section = topbar.find('section, .section'),
- titlebar = topbar.children('ul').first();
-
- if (Modernizr.touch || self.breakpoint()) {
- e.preventDefault();
- }
-
- if (self.breakpoint()) {
- var $this = $(this),
- $selectedLi = $this.closest('li');
-
- topbar.data('index', topbar.data('index') + 1);
- $selectedLi.addClass('moved');
- if (!self.rtl) {
- section.css({left: -(100 * topbar.data('index')) + '%'});
- section.find('>.name').css({left: 100 * topbar.data('index') + '%'});
- } else {
- section.css({right: -(100 * topbar.data('index')) + '%'});
- section.find('>.name').css({right: 100 * topbar.data('index') + '%'});
- }
-
- $this.siblings('ul')
- .height(topbar.data('height') + self.outerHeight(titlebar, true));
- topbar
- .css('min-height', topbar.data('height') + self.outerHeight(titlebar, true) * 2)
- }
- });
-
- $(window).on('resize.fndtn.topbar', function () {
- if (!self.breakpoint()) {
- $('.top-bar')
- .css('min-height', '')
- .removeClass('expanded');
- }
- }.bind(this));
-
- // Go up a level on Click
- $(this.scope).on('click.fndtn', '.top-bar .has-dropdown .back', function (e) {
- e.preventDefault();
-
- var $this = $(this),
- topbar = $this.closest('.top-bar'),
- section = topbar.find('section, .section'),
- $movedLi = $this.closest('li.moved'),
- $previousLevelUl = $movedLi.parent();
-
- topbar.data('index', topbar.data('index') - 1);
- if (!self.rtl) {
- section.css({left: -(100 * topbar.data('index')) + '%'});
- section.find('>.name').css({left: 100 * topbar.data('index') + '%'});
- } else {
- section.css({right: -(100 * topbar.data('index')) + '%'});
- section.find('>.name').css({right: 100 * topbar.data('index') + '%'});
- }
-
- if (topbar.data('index') === 0) {
- topbar.css('min-height', 0);
- }
-
- setTimeout(function () {
- $movedLi.removeClass('moved');
- }, 300);
- });
- },
-
- breakpoint : function () {
- return $(window).width() <= this.settings.breakPoint || $('html').hasClass('lt-ie9');
- },
-
- assemble : function () {
- var self = this;
- // Pull element out of the DOM for manipulation
- this.settings.$section.detach();
-
- this.settings.$section.find('.has-dropdown>a').each(function () {
- var $link = $(this),
- $dropdown = $link.siblings('.dropdown'),
- $titleLi = $('
');
-
- // Copy link to subnav
- if (self.settings.custom_back_text == true) {
- $titleLi.find('h5>a').html('« ' + self.settings.back_text);
- } else {
- $titleLi.find('h5>a').html('« ' + $link.html());
- }
- $dropdown.prepend($titleLi);
- });
-
- // Put element back in the DOM
- this.settings.$section.appendTo(this.settings.$topbar);
-
- // check for sticky
- this.sticky();
- },
-
- largestUL : function () {
- var uls = this.settings.$topbar.find('section ul ul'),
- largest = uls.first(),
- total = 0,
- self = this;
-
- uls.each(function () {
- if ($(this).children('li').length > largest.children('li').length) {
- largest = $(this);
- }
- });
-
- largest.children('li').each(function () { total += self.outerHeight($(this), true); });
-
- this.settings.$topbar.data('height', total);
- },
-
- sticky : function () {
- var klass = '.' + this.settings.stickyClass;
- if ($(klass).length > 0) {
- var distance = $(klass).length ? $(klass).offset().top: 0,
- $window = $(window);
- var offst = this.outerHeight($('.top-bar'));
-
- $window.scroll(function() {
- if ($window.scrollTop() >= (distance)) {
- $(klass).addClass("fixed");
- $('body').css('padding-top',offst);
- }
-
- else if ($window.scrollTop() < distance) {
- $(klass).removeClass("fixed");
- $('body').css('padding-top','0');
- }
- });
- }
- },
-
- off : function () {
- $(this.scope).off('.fndtn.topbar');
- $(window).off('.fndtn.topbar');
- }
- };
-}(Foundation.zj, this, this.document));
diff --git a/foundation/javascripts/vendor/custom.modernizr.js b/foundation/javascripts/vendor/custom.modernizr.js
deleted file mode 100644
index e5afa6c..0000000
--- a/foundation/javascripts/vendor/custom.modernizr.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Modernizr 2.6.2 (Custom Build) | MIT & BSD
- * Build: http://modernizr.com/download/#-inlinesvg-svg-svgclippaths-touch-shiv-mq-cssclasses-teststyles-prefixes-ie8compat-load
- */
-;window.Modernizr=function(a,b,c){function y(a){j.cssText=a}function z(a,b){return y(m.join(a+";")+(b||""))}function A(a,b){return typeof a===b}function B(a,b){return!!~(""+a).indexOf(b)}function C(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:A(f,"function")?f.bind(d||b):f}return!1}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={svg:"http://www.w3.org/2000/svg"},o={},p={},q={},r=[],s=r.slice,t,u=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},v=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return u("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},w={}.hasOwnProperty,x;!A(w,"undefined")&&!A(w.call,"undefined")?x=function(a,b){return w.call(a,b)}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=s.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(s.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(s.call(arguments)))};return e}),o.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:u(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},o.svg=function(){return!!b.createElementNS&&!!b.createElementNS(n.svg,"svg").createSVGRect},o.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="
",(a.firstChild&&a.firstChild.namespaceURI)==n.svg},o.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(l.call(b.createElementNS(n.svg,"clipPath")))};for(var D in o)x(o,D)&&(t=D.toLowerCase(),e[t]=o[D](),r.push((e[t]?"":"no-")+t));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)x(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},y(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e
",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e.mq=v,e.testStyles=u,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+r.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f type pairs
- class2type = {},
-
- // List of deleted data cache ids, so we can reuse them
- core_deletedIds = [],
-
- core_version = "1.9.1",
-
- // Save a reference to some core methods
- core_concat = core_deletedIds.concat,
- core_push = core_deletedIds.push,
- core_slice = core_deletedIds.slice,
- core_indexOf = core_deletedIds.indexOf,
- core_toString = class2type.toString,
- core_hasOwn = class2type.hasOwnProperty,
- core_trim = core_version.trim,
-
- // Define a local copy of jQuery
- jQuery = function( selector, context ) {
- // The jQuery object is actually just the init constructor 'enhanced'
- return new jQuery.fn.init( selector, context, rootjQuery );
- },
-
- // Used for matching numbers
- core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
-
- // Used for splitting on whitespace
- core_rnotwhite = /\S+/g,
-
- // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)
- rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
-
- // A simple way to check for HTML strings
- // Prioritize #id over to avoid XSS via location.hash (#9521)
- // Strict HTML recognition (#11290: must start with <)
- rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,
-
- // Match a standalone tag
- rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
-
- // JSON RegExp
- rvalidchars = /^[\],:{}\s]*$/,
- rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
- rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
- rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
-
- // Matches dashed string for camelizing
- rmsPrefix = /^-ms-/,
- rdashAlpha = /-([\da-z])/gi,
-
- // Used by jQuery.camelCase as callback to replace()
- fcamelCase = function( all, letter ) {
- return letter.toUpperCase();
- },
-
- // The ready event handler
- completed = function( event ) {
-
- // readyState === "complete" is good enough for us to call the dom ready in oldIE
- if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) {
- detach();
- jQuery.ready();
- }
- },
- // Clean-up method for dom ready events
- detach = function() {
- if ( document.addEventListener ) {
- document.removeEventListener( "DOMContentLoaded", completed, false );
- window.removeEventListener( "load", completed, false );
-
- } else {
- document.detachEvent( "onreadystatechange", completed );
- window.detachEvent( "onload", completed );
- }
- };
-
-jQuery.fn = jQuery.prototype = {
- // The current version of jQuery being used
- jquery: core_version,
-
- constructor: jQuery,
- init: function( selector, context, rootjQuery ) {
- var match, elem;
-
- // HANDLE: $(""), $(null), $(undefined), $(false)
- if ( !selector ) {
- return this;
- }
-
- // Handle HTML strings
- if ( typeof selector === "string" ) {
- if ( selector.charAt(0) === "<" && selector.charAt( 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;
-
- // scripts is true for back-compat
- 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] );
-
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- if ( elem && elem.parentNode ) {
- // Handle the case where IE and Opera return items
- // by name instead of ID
- if ( elem.id !== match[2] ) {
- return rootjQuery.find( selector );
- }
-
- // Otherwise, we inject the element directly into the jQuery object
- this.length = 1;
- this[0] = elem;
- }
-
- this.context = document;
- this.selector = selector;
- return this;
- }
-
- // HANDLE: $(expr, $(...))
- } else if ( !context || context.jquery ) {
- return ( context || rootjQuery ).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.context = this[0] = selector;
- this.length = 1;
- return this;
-
- // HANDLE: $(function)
- // Shortcut for document ready
- } else if ( jQuery.isFunction( selector ) ) {
- return rootjQuery.ready( selector );
- }
-
- if ( selector.selector !== undefined ) {
- this.selector = selector.selector;
- this.context = selector.context;
- }
-
- return jQuery.makeArray( selector, this );
- },
-
- // Start with an empty selector
- selector: "",
-
- // The default length of a jQuery object is 0
- length: 0,
-
- // The number of elements contained in the matched element set
- size: function() {
- return this.length;
- },
-
- toArray: function() {
- return core_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 num == null ?
-
- // Return a 'clean' array
- this.toArray() :
-
- // Return just the object
- ( num < 0 ? this[ this.length + num ] : 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;
- ret.context = this.context;
-
- // Return the newly-formed element set
- return ret;
- },
-
- // Execute a callback for every element in the matched set.
- // (You can seed the arguments with an array of args, but this is
- // only used internally.)
- each: function( callback, args ) {
- return jQuery.each( this, callback, args );
- },
-
- ready: function( fn ) {
- // Add the callback
- jQuery.ready.promise().done( fn );
-
- return this;
- },
-
- slice: function() {
- return this.pushStack( core_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] ] : [] );
- },
-
- map: function( callback ) {
- return this.pushStack( jQuery.map(this, function( elem, i ) {
- return callback.call( elem, i, elem );
- }));
- },
-
- end: function() {
- return this.prevObject || this.constructor(null);
- },
-
- // For internal use only.
- // Behaves like an Array's method, not like a jQuery method.
- push: core_push,
- sort: [].sort,
- splice: [].splice
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-jQuery.extend = jQuery.fn.extend = function() {
- var src, copyIsArray, copy, name, options, clone,
- target = arguments[0] || {},
- i = 1,
- length = arguments.length,
- deep = false;
-
- // Handle a deep copy situation
- if ( typeof target === "boolean" ) {
- deep = target;
- target = arguments[1] || {};
- // skip the boolean and the target
- i = 2;
- }
-
- // 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 ( length === i ) {
- 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 = jQuery.isArray(copy)) ) ) {
- if ( copyIsArray ) {
- copyIsArray = false;
- clone = src && jQuery.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({
- noConflict: function( deep ) {
- if ( window.$ === jQuery ) {
- window.$ = _$;
- }
-
- if ( deep && window.jQuery === jQuery ) {
- window.jQuery = _jQuery;
- }
-
- return jQuery;
- },
-
- // 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,
-
- // Hold (or release) the ready event
- holdReady: function( hold ) {
- if ( hold ) {
- jQuery.readyWait++;
- } else {
- jQuery.ready( true );
- }
- },
-
- // 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;
- }
-
- // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
- if ( !document.body ) {
- return setTimeout( jQuery.ready );
- }
-
- // 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 ] );
-
- // Trigger any bound ready events
- if ( jQuery.fn.trigger ) {
- jQuery( document ).trigger("ready").off("ready");
- }
- },
-
- // See test/unit/core.js for details concerning isFunction.
- // Since version 1.3, DOM methods and functions like alert
- // aren't supported. They return false on IE (#2968).
- isFunction: function( obj ) {
- return jQuery.type(obj) === "function";
- },
-
- isArray: Array.isArray || function( obj ) {
- return jQuery.type(obj) === "array";
- },
-
- isWindow: function( obj ) {
- return obj != null && obj == obj.window;
- },
-
- isNumeric: function( obj ) {
- return !isNaN( parseFloat(obj) ) && isFinite( obj );
- },
-
- type: function( obj ) {
- if ( obj == null ) {
- return String( obj );
- }
- return typeof obj === "object" || typeof obj === "function" ?
- class2type[ core_toString.call(obj) ] || "object" :
- typeof obj;
- },
-
- isPlainObject: function( obj ) {
- // Must be an Object.
- // Because of IE, we also have to check the presence of the constructor property.
- // Make sure that DOM nodes and window objects don't pass through, as well
- if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
- return false;
- }
-
- try {
- // Not own constructor property must be Object
- if ( obj.constructor &&
- !core_hasOwn.call(obj, "constructor") &&
- !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
- return false;
- }
- } catch ( e ) {
- // IE8,9 Will throw exceptions on certain host objects #9897
- return false;
- }
-
- // Own properties are enumerated firstly, so to speed up,
- // if last one is own, then all properties are own.
-
- var key;
- for ( key in obj ) {}
-
- return key === undefined || core_hasOwn.call( obj, key );
- },
-
- isEmptyObject: function( obj ) {
- var name;
- for ( name in obj ) {
- return false;
- }
- return true;
- },
-
- error: function( msg ) {
- throw new Error( msg );
- },
-
- // data: 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
- parseHTML: function( data, context, keepScripts ) {
- if ( !data || typeof data !== "string" ) {
- return null;
- }
- if ( typeof context === "boolean" ) {
- keepScripts = context;
- context = false;
- }
- context = context || document;
-
- var parsed = rsingleTag.exec( data ),
- scripts = !keepScripts && [];
-
- // Single tag
- if ( parsed ) {
- return [ context.createElement( parsed[1] ) ];
- }
-
- parsed = jQuery.buildFragment( [ data ], context, scripts );
- if ( scripts ) {
- jQuery( scripts ).remove();
- }
- return jQuery.merge( [], parsed.childNodes );
- },
-
- parseJSON: function( data ) {
- // Attempt to parse using the native JSON parser first
- if ( window.JSON && window.JSON.parse ) {
- return window.JSON.parse( data );
- }
-
- if ( data === null ) {
- return data;
- }
-
- if ( typeof data === "string" ) {
-
- // Make sure leading/trailing whitespace is removed (IE can't handle it)
- data = jQuery.trim( data );
-
- if ( data ) {
- // Make sure the incoming data is actual JSON
- // Logic borrowed from http://json.org/json2.js
- if ( rvalidchars.test( data.replace( rvalidescape, "@" )
- .replace( rvalidtokens, "]" )
- .replace( rvalidbraces, "")) ) {
-
- return ( new Function( "return " + data ) )();
- }
- }
- }
-
- jQuery.error( "Invalid JSON: " + data );
- },
-
- // Cross-browser xml parsing
- parseXML: function( data ) {
- var xml, tmp;
- if ( !data || typeof data !== "string" ) {
- return null;
- }
- try {
- if ( window.DOMParser ) { // Standard
- tmp = new DOMParser();
- xml = tmp.parseFromString( data , "text/xml" );
- } else { // IE
- xml = new ActiveXObject( "Microsoft.XMLDOM" );
- xml.async = "false";
- xml.loadXML( data );
- }
- } catch( e ) {
- xml = undefined;
- }
- if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
- jQuery.error( "Invalid XML: " + data );
- }
- return xml;
- },
-
- noop: function() {},
-
- // Evaluates a script in a global context
- // Workarounds based on findings by Jim Driscoll
- // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
- globalEval: function( data ) {
- if ( data && jQuery.trim( data ) ) {
- // We use execScript on Internet Explorer
- // We use an anonymous function so that context is window
- // rather than jQuery in Firefox
- ( window.execScript || function( data ) {
- window[ "eval" ].call( window, data );
- } )( data );
- }
- },
-
- // Convert dashed to camelCase; used by the css and data modules
- // Microsoft forgot to hump their vendor prefix (#9572)
- camelCase: function( string ) {
- return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
- },
-
- nodeName: function( elem, name ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
- },
-
- // args is for internal usage only
- each: function( obj, callback, args ) {
- var value,
- i = 0,
- length = obj.length,
- isArray = isArraylike( obj );
-
- if ( args ) {
- if ( isArray ) {
- for ( ; i < length; i++ ) {
- value = callback.apply( obj[ i ], args );
-
- if ( value === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- value = callback.apply( obj[ i ], args );
-
- if ( value === false ) {
- break;
- }
- }
- }
-
- // A special, fast, case for the most common use of each
- } else {
- if ( isArray ) {
- for ( ; i < length; i++ ) {
- value = callback.call( obj[ i ], i, obj[ i ] );
-
- if ( value === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- value = callback.call( obj[ i ], i, obj[ i ] );
-
- if ( value === false ) {
- break;
- }
- }
- }
- }
-
- return obj;
- },
-
- // Use native String.trim function wherever possible
- trim: core_trim && !core_trim.call("\uFEFF\xA0") ?
- function( text ) {
- return text == null ?
- "" :
- core_trim.call( text );
- } :
-
- // Otherwise use our own trimming functionality
- 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 {
- core_push.call( ret, arr );
- }
- }
-
- return ret;
- },
-
- inArray: function( elem, arr, i ) {
- var len;
-
- if ( arr ) {
- if ( core_indexOf ) {
- return core_indexOf.call( arr, elem, i );
- }
-
- len = arr.length;
- i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
-
- for ( ; i < len; i++ ) {
- // Skip accessing in sparse arrays
- if ( i in arr && arr[ i ] === elem ) {
- return i;
- }
- }
- }
-
- return -1;
- },
-
- merge: function( first, second ) {
- var l = second.length,
- i = first.length,
- j = 0;
-
- if ( typeof l === "number" ) {
- for ( ; j < l; j++ ) {
- first[ i++ ] = second[ j ];
- }
- } else {
- while ( second[j] !== undefined ) {
- first[ i++ ] = second[ j++ ];
- }
- }
-
- first.length = i;
-
- return first;
- },
-
- grep: function( elems, callback, inv ) {
- var retVal,
- ret = [],
- i = 0,
- length = elems.length;
- inv = !!inv;
-
- // Go through the array, only saving the items
- // that pass the validator function
- for ( ; i < length; i++ ) {
- retVal = !!callback( elems[ i ], i );
- if ( inv !== retVal ) {
- ret.push( elems[ i ] );
- }
- }
-
- return ret;
- },
-
- // arg is for internal usage only
- map: function( elems, callback, arg ) {
- var value,
- i = 0,
- length = elems.length,
- isArray = isArraylike( elems ),
- ret = [];
-
- // Go through the array, translating each of the items to their
- if ( isArray ) {
- for ( ; i < length; i++ ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret[ ret.length ] = value;
- }
- }
-
- // Go through every key on the object,
- } else {
- for ( i in elems ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret[ ret.length ] = value;
- }
- }
- }
-
- // Flatten any nested arrays
- return core_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 args, proxy, tmp;
-
- 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 = core_slice.call( arguments, 2 );
- proxy = function() {
- return fn.apply( context || this, args.concat( core_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;
- },
-
- // Multifunctional method to get and set values of a collection
- // The value/s can optionally be executed if it's a function
- access: function( elems, fn, key, value, chainable, emptyGet, raw ) {
- var i = 0,
- length = elems.length,
- bulk = key == null;
-
- // Sets many values
- if ( jQuery.type( key ) === "object" ) {
- chainable = true;
- for ( i in key ) {
- jQuery.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 < length; i++ ) {
- fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
- }
- }
- }
-
- return chainable ?
- elems :
-
- // Gets
- bulk ?
- fn.call( elems ) :
- length ? fn( elems[0], key ) : emptyGet;
- },
-
- now: function() {
- return ( new Date() ).getTime();
- }
-});
-
-jQuery.ready.promise = function( obj ) {
- if ( !readyList ) {
-
- readyList = jQuery.Deferred();
-
- // Catch cases where $(document).ready() is called after the browser event has already occurred.
- // we once tried to use readyState "interactive" here, but it caused issues like the one
- // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
- if ( document.readyState === "complete" ) {
- // Handle it asynchronously to allow scripts the opportunity to delay ready
- setTimeout( jQuery.ready );
-
- // Standards-based browsers support DOMContentLoaded
- } else if ( document.addEventListener ) {
- // Use the handy event callback
- document.addEventListener( "DOMContentLoaded", completed, false );
-
- // A fallback to window.onload, that will always work
- window.addEventListener( "load", completed, false );
-
- // If IE event model is used
- } else {
- // Ensure firing before onload, maybe late but safe also for iframes
- document.attachEvent( "onreadystatechange", completed );
-
- // A fallback to window.onload, that will always work
- window.attachEvent( "onload", completed );
-
- // If IE and not a frame
- // continually check to see if the document is ready
- var top = false;
-
- try {
- top = window.frameElement == null && document.documentElement;
- } catch(e) {}
-
- if ( top && top.doScroll ) {
- (function doScrollCheck() {
- if ( !jQuery.isReady ) {
-
- try {
- // Use the trick by Diego Perini
- // http://javascript.nwbox.com/IEContentLoaded/
- top.doScroll("left");
- } catch(e) {
- return setTimeout( doScrollCheck, 50 );
- }
-
- // detach all dom ready events
- detach();
-
- // and execute any waiting functions
- jQuery.ready();
- }
- })();
- }
- }
- }
- return readyList.promise( obj );
-};
-
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
- class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
-
-function isArraylike( obj ) {
- var length = obj.length,
- type = jQuery.type( obj );
-
- if ( jQuery.isWindow( obj ) ) {
- return false;
- }
-
- if ( obj.nodeType === 1 && length ) {
- return true;
- }
-
- return type === "array" || type !== "function" &&
- ( length === 0 ||
- typeof length === "number" && length > 0 && ( length - 1 ) in obj );
-}
-
-// All jQuery objects should point back to these
-rootjQuery = jQuery(document);
-// String to Object options format cache
-var optionsCache = {};
-
-// Convert String-formatted options into Object-formatted ones and store in cache
-function createOptions( options ) {
- var object = optionsCache[ options ] = {};
- jQuery.each( options.match( core_rnotwhite ) || [], 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" ?
- ( optionsCache[ options ] || 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,
- // End of the loop when firing
- firingLength,
- // Index of currently firing callback (modified by remove if needed)
- firingIndex,
- // First callback to fire (used internally by add and fireWith)
- firingStart,
- // Actual callback list
- list = [],
- // Stack of fire calls for repeatable lists
- stack = !options.once && [],
- // Fire callbacks
- fire = function( data ) {
- memory = options.memory && data;
- fired = true;
- firingIndex = firingStart || 0;
- firingStart = 0;
- firingLength = list.length;
- firing = true;
- for ( ; list && firingIndex < firingLength; firingIndex++ ) {
- if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
- memory = false; // To prevent further calls using add
- break;
- }
- }
- firing = false;
- if ( list ) {
- if ( stack ) {
- if ( stack.length ) {
- fire( stack.shift() );
- }
- } else if ( memory ) {
- list = [];
- } else {
- self.disable();
- }
- }
- },
- // Actual Callbacks object
- self = {
- // Add a callback or a collection of callbacks to the list
- add: function() {
- if ( list ) {
- // First, we save the current length
- var start = list.length;
- (function add( args ) {
- jQuery.each( args, function( _, arg ) {
- var type = jQuery.type( arg );
- if ( type === "function" ) {
- if ( !options.unique || !self.has( arg ) ) {
- list.push( arg );
- }
- } else if ( arg && arg.length && type !== "string" ) {
- // Inspect recursively
- add( arg );
- }
- });
- })( arguments );
- // Do we need to add the callbacks to the
- // current firing batch?
- if ( firing ) {
- firingLength = list.length;
- // With memory, if we're not firing then
- // we should call right away
- } else if ( memory ) {
- firingStart = start;
- fire( memory );
- }
- }
- return this;
- },
- // Remove a callback from the list
- remove: function() {
- if ( list ) {
- jQuery.each( arguments, function( _, arg ) {
- var index;
- while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
- list.splice( index, 1 );
- // Handle firing indexes
- if ( firing ) {
- if ( index <= firingLength ) {
- firingLength--;
- }
- 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 && list.length );
- },
- // Remove all callbacks from the list
- empty: function() {
- list = [];
- return this;
- },
- // Have the list do nothing anymore
- disable: function() {
- list = stack = memory = undefined;
- return this;
- },
- // Is it disabled?
- disabled: function() {
- return !list;
- },
- // Lock the list in its current state
- lock: function() {
- stack = undefined;
- if ( !memory ) {
- self.disable();
- }
- return this;
- },
- // Is it locked?
- locked: function() {
- return !stack;
- },
- // Call all callbacks with the given context and arguments
- fireWith: function( context, args ) {
- args = args || [];
- args = [ context, args.slice ? args.slice() : args ];
- if ( list && ( !fired || stack ) ) {
- if ( firing ) {
- stack.push( args );
- } else {
- fire( args );
- }
- }
- 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;
-};
-jQuery.extend({
-
- Deferred: function( func ) {
- var tuples = [
- // action, add listener, listener list, final state
- [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
- [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
- [ "notify", "progress", jQuery.Callbacks("memory") ]
- ],
- state = "pending",
- promise = {
- state: function() {
- return state;
- },
- always: function() {
- deferred.done( arguments ).fail( arguments );
- return this;
- },
- then: function( /* fnDone, fnFail, fnProgress */ ) {
- var fns = arguments;
- return jQuery.Deferred(function( newDefer ) {
- jQuery.each( tuples, function( i, tuple ) {
- var action = tuple[ 0 ],
- fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
- // deferred[ done | fail | progress ] for forwarding actions to newDefer
- deferred[ tuple[1] ](function() {
- var returned = fn && fn.apply( this, arguments );
- if ( returned && jQuery.isFunction( returned.promise ) ) {
- returned.promise()
- .done( newDefer.resolve )
- .fail( newDefer.reject )
- .progress( newDefer.notify );
- } else {
- newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
- }
- });
- });
- fns = null;
- }).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 = {};
-
- // Keep pipe for back-compat
- promise.pipe = promise.then;
-
- // Add list-specific methods
- jQuery.each( tuples, function( i, tuple ) {
- var list = tuple[ 2 ],
- stateString = tuple[ 3 ];
-
- // promise[ done | fail | progress ] = list.add
- promise[ tuple[1] ] = list.add;
-
- // Handle state
- if ( stateString ) {
- list.add(function() {
- // state = [ resolved | rejected ]
- state = stateString;
-
- // [ reject_list | resolve_list ].disable; progress_list.lock
- }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
- }
-
- // deferred[ resolve | reject | notify ]
- deferred[ tuple[0] ] = function() {
- deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
- return this;
- };
- 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( subordinate /* , ..., subordinateN */ ) {
- var i = 0,
- resolveValues = core_slice.call( arguments ),
- length = resolveValues.length,
-
- // the count of uncompleted subordinates
- remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
-
- // the master Deferred. If resolveValues consist of only a single Deferred, just use that.
- deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
-
- // Update function for both resolve and progress values
- updateFunc = function( i, contexts, values ) {
- return function( value ) {
- contexts[ i ] = this;
- values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;
- if( values === progressValues ) {
- deferred.notifyWith( contexts, values );
- } else if ( !( --remaining ) ) {
- deferred.resolveWith( contexts, values );
- }
- };
- },
-
- progressValues, progressContexts, resolveContexts;
-
- // add listeners to Deferred subordinates; treat others as resolved
- if ( length > 1 ) {
- progressValues = new Array( length );
- progressContexts = new Array( length );
- resolveContexts = new Array( length );
- for ( ; i < length; i++ ) {
- if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
- resolveValues[ i ].promise()
- .done( updateFunc( i, resolveContexts, resolveValues ) )
- .fail( deferred.reject )
- .progress( updateFunc( i, progressContexts, progressValues ) );
- } else {
- --remaining;
- }
- }
- }
-
- // if we're not waiting on anything, resolve the master
- if ( !remaining ) {
- deferred.resolveWith( resolveContexts, resolveValues );
- }
-
- return deferred.promise();
- }
-});
-jQuery.support = (function() {
-
- var support, all, a,
- input, select, fragment,
- opt, eventName, isSupported, i,
- div = document.createElement("div");
-
- // Setup
- div.setAttribute( "className", "t" );
- div.innerHTML = " a ";
-
- // Support tests won't run in some limited or non-browser environments
- all = div.getElementsByTagName("*");
- a = div.getElementsByTagName("a")[ 0 ];
- if ( !all || !a || !all.length ) {
- return {};
- }
-
- // First batch of tests
- select = document.createElement("select");
- opt = select.appendChild( document.createElement("option") );
- input = div.getElementsByTagName("input")[ 0 ];
-
- a.style.cssText = "top:1px;float:left;opacity:.5";
- support = {
- // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
- getSetAttribute: div.className !== "t",
-
- // IE strips leading whitespace when .innerHTML is used
- leadingWhitespace: div.firstChild.nodeType === 3,
-
- // Make sure that tbody elements aren't automatically inserted
- // IE will insert them into empty tables
- tbody: !div.getElementsByTagName("tbody").length,
-
- // Make sure that link elements get serialized correctly by innerHTML
- // This requires a wrapper element in IE
- htmlSerialize: !!div.getElementsByTagName("link").length,
-
- // Get the style information from getAttribute
- // (IE uses .cssText instead)
- style: /top/.test( a.getAttribute("style") ),
-
- // Make sure that URLs aren't manipulated
- // (IE normalizes it by default)
- hrefNormalized: a.getAttribute("href") === "/a",
-
- // Make sure that element opacity exists
- // (IE uses filter instead)
- // Use a regex to work around a WebKit issue. See #5145
- opacity: /^0.5/.test( a.style.opacity ),
-
- // Verify style float existence
- // (IE uses styleFloat instead of cssFloat)
- cssFloat: !!a.style.cssFloat,
-
- // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
- checkOn: !!input.value,
-
- // Make sure that a selected-by-default option has a working selected property.
- // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
- optSelected: opt.selected,
-
- // Tests for enctype support on a form (#6743)
- enctype: !!document.createElement("form").enctype,
-
- // Makes sure cloning an html5 element does not cause problems
- // Where outerHTML is undefined, this still works
- html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>",
-
- // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode
- boxModel: document.compatMode === "CSS1Compat",
-
- // Will be defined later
- deleteExpando: true,
- noCloneEvent: true,
- inlineBlockNeedsLayout: false,
- shrinkWrapBlocks: false,
- reliableMarginRight: true,
- boxSizingReliable: true,
- pixelPosition: false
- };
-
- // Make sure checked status is properly cloned
- input.checked = true;
- support.noCloneChecked = input.cloneNode( true ).checked;
-
- // Make sure that the options inside disabled selects aren't marked as disabled
- // (WebKit marks them as disabled)
- select.disabled = true;
- support.optDisabled = !opt.disabled;
-
- // Support: IE<9
- try {
- delete div.test;
- } catch( e ) {
- support.deleteExpando = false;
- }
-
- // Check if we can trust getAttribute("value")
- input = document.createElement("input");
- input.setAttribute( "value", "" );
- support.input = input.getAttribute( "value" ) === "";
-
- // Check if an input maintains its value after becoming a radio
- input.value = "t";
- input.setAttribute( "type", "radio" );
- support.radioValue = input.value === "t";
-
- // #11217 - WebKit loses check when the name is after the checked attribute
- input.setAttribute( "checked", "t" );
- input.setAttribute( "name", "t" );
-
- fragment = document.createDocumentFragment();
- fragment.appendChild( input );
-
- // Check if a disconnected checkbox will retain its checked
- // value of true after appended to the DOM (IE6/7)
- support.appendChecked = input.checked;
-
- // WebKit doesn't clone checked state correctly in fragments
- support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
- // Support: IE<9
- // Opera does not clone events (and typeof div.attachEvent === undefined).
- // IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
- if ( div.attachEvent ) {
- div.attachEvent( "onclick", function() {
- support.noCloneEvent = false;
- });
-
- div.cloneNode( true ).click();
- }
-
- // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)
- // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php
- for ( i in { submit: true, change: true, focusin: true }) {
- div.setAttribute( eventName = "on" + i, "t" );
-
- support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false;
- }
-
- div.style.backgroundClip = "content-box";
- div.cloneNode( true ).style.backgroundClip = "";
- support.clearCloneStyle = div.style.backgroundClip === "content-box";
-
- // Run tests that need a body at doc ready
- jQuery(function() {
- var container, marginDiv, tds,
- divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
- body = document.getElementsByTagName("body")[0];
-
- if ( !body ) {
- // Return for frameset docs that don't have a body
- return;
- }
-
- container = document.createElement("div");
- container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";
-
- body.appendChild( container ).appendChild( div );
-
- // Support: IE8
- // Check if table cells still have offsetWidth/Height when they are set
- // to display:none and there are still other visible table cells in a
- // table row; if so, offsetWidth/Height are not reliable for use when
- // determining if an element has been hidden directly using
- // display:none (it is still safe to use offsets if a parent element is
- // hidden; don safety goggles and see bug #4512 for more information).
- div.innerHTML = "";
- tds = div.getElementsByTagName("td");
- tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
- isSupported = ( tds[ 0 ].offsetHeight === 0 );
-
- tds[ 0 ].style.display = "";
- tds[ 1 ].style.display = "none";
-
- // Support: IE8
- // Check if empty table cells still have offsetWidth/Height
- support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
-
- // Check box-sizing and margin behavior
- div.innerHTML = "";
- div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";
- support.boxSizing = ( div.offsetWidth === 4 );
- support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 );
-
- // Use window.getComputedStyle because jsdom on node.js will break without it.
- if ( window.getComputedStyle ) {
- support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
- support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
-
- // Check if div with explicit width and no margin-right incorrectly
- // gets computed margin-right based on width of container. (#3333)
- // Fails in WebKit before Feb 2011 nightlies
- // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
- marginDiv = div.appendChild( document.createElement("div") );
- marginDiv.style.cssText = div.style.cssText = divReset;
- marginDiv.style.marginRight = marginDiv.style.width = "0";
- div.style.width = "1px";
-
- support.reliableMarginRight =
- !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
- }
-
- if ( typeof div.style.zoom !== core_strundefined ) {
- // Support: IE<8
- // Check if natively block-level elements act like inline-block
- // elements when setting their display to 'inline' and giving
- // them layout
- div.innerHTML = "";
- div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1";
- support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
-
- // Support: IE6
- // Check if elements with layout shrink-wrap their children
- div.style.display = "block";
- div.innerHTML = "
";
- div.firstChild.style.width = "5px";
- support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
-
- if ( support.inlineBlockNeedsLayout ) {
- // Prevent IE 6 from affecting layout for positioned elements #11048
- // Prevent IE from shrinking the body in IE 7 mode #12869
- // Support: IE<8
- body.style.zoom = 1;
- }
- }
-
- body.removeChild( container );
-
- // Null elements to avoid leaks in IE
- container = div = tds = marginDiv = null;
- });
-
- // Null elements to avoid leaks in IE
- all = select = fragment = opt = a = input = null;
-
- return support;
-})();
-
-var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
- rmultiDash = /([A-Z])/g;
-
-function internalData( elem, name, data, pvt /* Internal Use Only */ ){
- if ( !jQuery.acceptData( elem ) ) {
- return;
- }
-
- var thisCache, ret,
- internalKey = jQuery.expando,
- getByName = typeof name === "string",
-
- // We have to handle DOM nodes and JS objects differently because IE6-7
- // can't GC object references properly across the DOM-JS boundary
- isNode = elem.nodeType,
-
- // Only DOM nodes need the global jQuery cache; JS object data is
- // attached directly to the object so GC can occur automatically
- cache = isNode ? jQuery.cache : elem,
-
- // Only defining an ID for JS objects if its cache already exists allows
- // the code to shortcut on the same path as a DOM node with no cache
- id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
-
- // Avoid doing any more work than we need to when trying to get data on an
- // object that has no data at all
- if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) {
- return;
- }
-
- if ( !id ) {
- // Only DOM nodes need a new unique ID for each element since their data
- // ends up in the global cache
- if ( isNode ) {
- elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++;
- } else {
- id = internalKey;
- }
- }
-
- if ( !cache[ id ] ) {
- cache[ id ] = {};
-
- // Avoids exposing jQuery metadata on plain JS objects when the object
- // is serialized using JSON.stringify
- if ( !isNode ) {
- cache[ id ].toJSON = jQuery.noop;
- }
- }
-
- // An object can be passed to jQuery.data instead of a key/value pair; this gets
- // shallow copied over onto the existing cache
- if ( typeof name === "object" || typeof name === "function" ) {
- if ( pvt ) {
- cache[ id ] = jQuery.extend( cache[ id ], name );
- } else {
- cache[ id ].data = jQuery.extend( cache[ id ].data, name );
- }
- }
-
- thisCache = cache[ id ];
-
- // jQuery data() is stored in a separate object inside the object's internal data
- // cache in order to avoid key collisions between internal data and user-defined
- // data.
- if ( !pvt ) {
- if ( !thisCache.data ) {
- thisCache.data = {};
- }
-
- thisCache = thisCache.data;
- }
-
- if ( data !== undefined ) {
- thisCache[ jQuery.camelCase( name ) ] = data;
- }
-
- // Check for both converted-to-camel and non-converted data property names
- // If a data property was specified
- if ( getByName ) {
-
- // First Try to find as-is property data
- ret = thisCache[ name ];
-
- // Test for null|undefined property data
- if ( ret == null ) {
-
- // Try to find the camelCased property
- ret = thisCache[ jQuery.camelCase( name ) ];
- }
- } else {
- ret = thisCache;
- }
-
- return ret;
-}
-
-function internalRemoveData( elem, name, pvt ) {
- if ( !jQuery.acceptData( elem ) ) {
- return;
- }
-
- var i, l, thisCache,
- isNode = elem.nodeType,
-
- // See jQuery.data for more information
- cache = isNode ? jQuery.cache : elem,
- id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
-
- // If there is already no cache entry for this object, there is no
- // purpose in continuing
- if ( !cache[ id ] ) {
- return;
- }
-
- if ( name ) {
-
- thisCache = pvt ? cache[ id ] : cache[ id ].data;
-
- if ( thisCache ) {
-
- // Support array or space separated string names for data keys
- if ( !jQuery.isArray( name ) ) {
-
- // try the string as a key before any manipulation
- if ( name in thisCache ) {
- name = [ name ];
- } else {
-
- // split the camel cased version by spaces unless a key with the spaces exists
- name = jQuery.camelCase( name );
- if ( name in thisCache ) {
- name = [ name ];
- } else {
- name = name.split(" ");
- }
- }
- } else {
- // If "name" is an array of keys...
- // When data is initially created, via ("key", "val") signature,
- // keys will be converted to camelCase.
- // Since there is no way to tell _how_ a key was added, remove
- // both plain key and camelCase key. #12786
- // This will only penalize the array argument path.
- name = name.concat( jQuery.map( name, jQuery.camelCase ) );
- }
-
- for ( i = 0, l = name.length; i < l; i++ ) {
- delete thisCache[ name[i] ];
- }
-
- // If there is no data left in the cache, we want to continue
- // and let the cache object itself get destroyed
- if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
- return;
- }
- }
- }
-
- // See jQuery.data for more information
- if ( !pvt ) {
- delete cache[ id ].data;
-
- // Don't destroy the parent cache unless the internal data object
- // had been the only thing left in it
- if ( !isEmptyDataObject( cache[ id ] ) ) {
- return;
- }
- }
-
- // Destroy the cache
- if ( isNode ) {
- jQuery.cleanData( [ elem ], true );
-
- // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
- } else if ( jQuery.support.deleteExpando || cache != cache.window ) {
- delete cache[ id ];
-
- // When all else fails, null
- } else {
- cache[ id ] = null;
- }
-}
-
-jQuery.extend({
- cache: {},
-
- // Unique for each copy of jQuery on the page
- // Non-digits removed to match rinlinejQuery
- expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ),
-
- // The following elements throw uncatchable exceptions if you
- // attempt to add expando properties to them.
- noData: {
- "embed": true,
- // Ban all objects except for Flash (which handle expandos)
- "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
- "applet": true
- },
-
- hasData: function( elem ) {
- elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
- return !!elem && !isEmptyDataObject( elem );
- },
-
- data: function( elem, name, data ) {
- return internalData( elem, name, data );
- },
-
- removeData: function( elem, name ) {
- return internalRemoveData( elem, name );
- },
-
- // For internal use only.
- _data: function( elem, name, data ) {
- return internalData( elem, name, data, true );
- },
-
- _removeData: function( elem, name ) {
- return internalRemoveData( elem, name, true );
- },
-
- // A method for determining if a DOM node can handle the data expando
- acceptData: function( elem ) {
- // Do not set data on non-element because it will not be cleared (#8335).
- if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) {
- return false;
- }
-
- var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];
-
- // nodes accept data unless otherwise specified; rejection can be conditional
- return !noData || noData !== true && elem.getAttribute("classid") === noData;
- }
-});
-
-jQuery.fn.extend({
- data: function( key, value ) {
- var attrs, name,
- elem = this[0],
- i = 0,
- data = null;
-
- // Gets all values
- if ( key === undefined ) {
- if ( this.length ) {
- data = jQuery.data( elem );
-
- if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
- attrs = elem.attributes;
- for ( ; i < attrs.length; i++ ) {
- name = attrs[i].name;
-
- if ( !name.indexOf( "data-" ) ) {
- name = jQuery.camelCase( name.slice(5) );
-
- dataAttr( elem, name, data[ name ] );
- }
- }
- jQuery._data( elem, "parsedAttrs", true );
- }
- }
-
- return data;
- }
-
- // Sets multiple values
- if ( typeof key === "object" ) {
- return this.each(function() {
- jQuery.data( this, key );
- });
- }
-
- return jQuery.access( this, function( value ) {
-
- if ( value === undefined ) {
- // Try to fetch any internally stored data first
- return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;
- }
-
- this.each(function() {
- jQuery.data( this, key, value );
- });
- }, null, value, arguments.length > 1, null, true );
- },
-
- removeData: function( key ) {
- return this.each(function() {
- jQuery.removeData( this, key );
- });
- }
-});
-
-function dataAttr( elem, key, data ) {
- // If nothing was found internally, try to fetch any
- // data from the HTML5 data-* attribute
- if ( data === undefined && elem.nodeType === 1 ) {
-
- var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
-
- data = elem.getAttribute( name );
-
- if ( typeof data === "string" ) {
- try {
- data = data === "true" ? true :
- data === "false" ? false :
- data === "null" ? null :
- // Only convert to a number if it doesn't change the string
- +data + "" === data ? +data :
- rbrace.test( data ) ? jQuery.parseJSON( data ) :
- data;
- } catch( e ) {}
-
- // Make sure we set the data so it isn't changed later
- jQuery.data( elem, key, data );
-
- } else {
- data = undefined;
- }
- }
-
- return data;
-}
-
-// checks a cache object for emptiness
-function isEmptyDataObject( obj ) {
- var name;
- for ( name in obj ) {
-
- // if the public data object is empty, the private is still empty
- if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
- continue;
- }
- if ( name !== "toJSON" ) {
- return false;
- }
- }
-
- return true;
-}
-jQuery.extend({
- queue: function( elem, type, data ) {
- var queue;
-
- if ( elem ) {
- type = ( type || "fx" ) + "queue";
- queue = jQuery._data( elem, type );
-
- // Speed up dequeue by getting out quickly if this is just a lookup
- if ( data ) {
- if ( !queue || jQuery.isArray(data) ) {
- queue = jQuery._data( 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--;
- }
-
- hooks.cur = fn;
- 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 intended for public consumption - generates a queueHooks object, or returns the current one
- _queueHooks: function( elem, type ) {
- var key = type + "queueHooks";
- return jQuery._data( elem, key ) || jQuery._data( elem, key, {
- empty: jQuery.Callbacks("once memory").add(function() {
- jQuery._removeData( elem, type + "queue" );
- jQuery._removeData( elem, 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 );
- });
- },
- // Based off of the plugin by Clint Helfers, with permission.
- // http://blindsignals.com/index.php/2009/07/jquery-delay/
- 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 = setTimeout( next, time );
- hooks.stop = function() {
- clearTimeout( timeout );
- };
- });
- },
- 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 = jQuery._data( elements[ i ], type + "queueHooks" );
- if ( tmp && tmp.empty ) {
- count++;
- tmp.empty.add( resolve );
- }
- }
- resolve();
- return defer.promise( obj );
- }
-});
-var nodeHook, boolHook,
- rclass = /[\t\r\n]/g,
- rreturn = /\r/g,
- rfocusable = /^(?:input|select|textarea|button|object)$/i,
- rclickable = /^(?:a|area)$/i,
- rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,
- ruseDefault = /^(?:checked|selected)$/i,
- getSetAttribute = jQuery.support.getSetAttribute,
- getSetInput = jQuery.support.input;
-
-jQuery.fn.extend({
- attr: function( name, value ) {
- return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
- },
-
- removeAttr: function( name ) {
- return this.each(function() {
- jQuery.removeAttr( this, name );
- });
- },
-
- prop: function( name, value ) {
- return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
- },
-
- removeProp: function( name ) {
- name = jQuery.propFix[ name ] || name;
- return this.each(function() {
- // try/catch handles cases where IE balks (such as removing a property on window)
- try {
- this[ name ] = undefined;
- delete this[ name ];
- } catch( e ) {}
- });
- },
-
- addClass: function( value ) {
- var classes, elem, cur, clazz, j,
- i = 0,
- len = this.length,
- proceed = typeof value === "string" && value;
-
- if ( jQuery.isFunction( value ) ) {
- return this.each(function( j ) {
- jQuery( this ).addClass( value.call( this, j, this.className ) );
- });
- }
-
- if ( proceed ) {
- // The disjunction here is for better compressibility (see removeClass)
- classes = ( value || "" ).match( core_rnotwhite ) || [];
-
- for ( ; i < len; i++ ) {
- elem = this[ i ];
- cur = elem.nodeType === 1 && ( elem.className ?
- ( " " + elem.className + " " ).replace( rclass, " " ) :
- " "
- );
-
- if ( cur ) {
- j = 0;
- while ( (clazz = classes[j++]) ) {
- if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
- cur += clazz + " ";
- }
- }
- elem.className = jQuery.trim( cur );
-
- }
- }
- }
-
- return this;
- },
-
- removeClass: function( value ) {
- var classes, elem, cur, clazz, j,
- i = 0,
- len = this.length,
- proceed = arguments.length === 0 || typeof value === "string" && value;
-
- if ( jQuery.isFunction( value ) ) {
- return this.each(function( j ) {
- jQuery( this ).removeClass( value.call( this, j, this.className ) );
- });
- }
- if ( proceed ) {
- classes = ( value || "" ).match( core_rnotwhite ) || [];
-
- for ( ; i < len; i++ ) {
- elem = this[ i ];
- // This expression is here for better compressibility (see addClass)
- cur = elem.nodeType === 1 && ( elem.className ?
- ( " " + elem.className + " " ).replace( rclass, " " ) :
- ""
- );
-
- if ( cur ) {
- j = 0;
- while ( (clazz = classes[j++]) ) {
- // Remove *all* instances
- while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
- cur = cur.replace( " " + clazz + " ", " " );
- }
- }
- elem.className = value ? jQuery.trim( cur ) : "";
- }
- }
- }
-
- return this;
- },
-
- toggleClass: function( value, stateVal ) {
- var type = typeof value,
- isBool = typeof stateVal === "boolean";
-
- if ( jQuery.isFunction( value ) ) {
- return this.each(function( i ) {
- jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
- });
- }
-
- return this.each(function() {
- if ( type === "string" ) {
- // toggle individual class names
- var className,
- i = 0,
- self = jQuery( this ),
- state = stateVal,
- classNames = value.match( core_rnotwhite ) || [];
-
- while ( (className = classNames[ i++ ]) ) {
- // check each className given, space separated list
- state = isBool ? state : !self.hasClass( className );
- self[ state ? "addClass" : "removeClass" ]( className );
- }
-
- // Toggle whole class name
- } else if ( type === core_strundefined || type === "boolean" ) {
- if ( this.className ) {
- // store className if set
- jQuery._data( this, "__className__", this.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.
- this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
- }
- });
- },
-
- hasClass: function( selector ) {
- var className = " " + selector + " ",
- i = 0,
- l = this.length;
- for ( ; i < l; i++ ) {
- if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
- return true;
- }
- }
-
- return false;
- },
-
- val: function( value ) {
- var ret, hooks, 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;
-
- return typeof ret === "string" ?
- // handle most common string cases
- ret.replace(rreturn, "") :
- // handle cases where value is null/undef or number
- ret == null ? "" : ret;
- }
-
- return;
- }
-
- isFunction = jQuery.isFunction( value );
-
- return this.each(function( i ) {
- var val,
- self = jQuery(this);
-
- if ( this.nodeType !== 1 ) {
- return;
- }
-
- if ( isFunction ) {
- val = value.call( this, i, self.val() );
- } else {
- val = value;
- }
-
- // Treat null/undefined as ""; convert numbers to string
- if ( val == null ) {
- val = "";
- } else if ( typeof val === "number" ) {
- val += "";
- } else if ( jQuery.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 ) {
- // attributes.value is undefined in Blackberry 4.7 but
- // uses .value. See #6932
- var val = elem.attributes.value;
- return !val || val.specified ? elem.value : elem.text;
- }
- },
- select: {
- get: function( elem ) {
- var value, option,
- options = elem.options,
- index = elem.selectedIndex,
- one = elem.type === "select-one" || index < 0,
- values = one ? null : [],
- max = one ? index + 1 : options.length,
- i = index < 0 ?
- max :
- one ? index : 0;
-
- // Loop through all the selected options
- for ( ; i < max; i++ ) {
- option = options[ i ];
-
- // oldIE 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
- ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) &&
- ( !option.parentNode.disabled || !jQuery.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 values = jQuery.makeArray( value );
-
- jQuery(elem).find("option").each(function() {
- this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
- });
-
- if ( !values.length ) {
- elem.selectedIndex = -1;
- }
- return values;
- }
- }
- },
-
- attr: function( elem, name, value ) {
- var hooks, notxml, ret,
- nType = elem.nodeType;
-
- // don't get/set attributes on text, comment and attribute nodes
- if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
- return;
- }
-
- // Fallback to prop when attributes are not supported
- if ( typeof elem.getAttribute === core_strundefined ) {
- return jQuery.prop( elem, name, value );
- }
-
- notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
- // All attributes are lowercase
- // Grab necessary hook if one is defined
- if ( notxml ) {
- name = name.toLowerCase();
- hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );
- }
-
- if ( value !== undefined ) {
-
- if ( value === null ) {
- jQuery.removeAttr( elem, name );
-
- } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
- return ret;
-
- } else {
- elem.setAttribute( name, value + "" );
- return value;
- }
-
- } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
- return ret;
-
- } else {
-
- // In IE9+, Flash objects don't have .getAttribute (#12945)
- // Support: IE9+
- if ( typeof elem.getAttribute !== core_strundefined ) {
- ret = elem.getAttribute( name );
- }
-
- // Non-existent attributes return null, we normalize to undefined
- return ret == null ?
- undefined :
- ret;
- }
- },
-
- removeAttr: function( elem, value ) {
- var name, propName,
- i = 0,
- attrNames = value && value.match( core_rnotwhite );
-
- if ( attrNames && elem.nodeType === 1 ) {
- while ( (name = attrNames[i++]) ) {
- propName = jQuery.propFix[ name ] || name;
-
- // Boolean attributes get special treatment (#10870)
- if ( rboolean.test( name ) ) {
- // Set corresponding property to false for boolean attributes
- // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8
- if ( !getSetAttribute && ruseDefault.test( name ) ) {
- elem[ jQuery.camelCase( "default-" + name ) ] =
- elem[ propName ] = false;
- } else {
- elem[ propName ] = false;
- }
-
- // See #9699 for explanation of this approach (setting first, then removal)
- } else {
- jQuery.attr( elem, name, "" );
- }
-
- elem.removeAttribute( getSetAttribute ? name : propName );
- }
- }
- },
-
- attrHooks: {
- type: {
- set: function( elem, value ) {
- if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
- // Setting the type on a radio button after the value resets the value in IE6-9
- // Reset value to default in case type is set after value during creation
- var val = elem.value;
- elem.setAttribute( "type", value );
- if ( val ) {
- elem.value = val;
- }
- return value;
- }
- }
- }
- },
-
- propFix: {
- tabindex: "tabIndex",
- readonly: "readOnly",
- "for": "htmlFor",
- "class": "className",
- maxlength: "maxLength",
- cellspacing: "cellSpacing",
- cellpadding: "cellPadding",
- rowspan: "rowSpan",
- colspan: "colSpan",
- usemap: "useMap",
- frameborder: "frameBorder",
- contenteditable: "contentEditable"
- },
-
- prop: function( elem, name, value ) {
- var ret, hooks, notxml,
- nType = elem.nodeType;
-
- // don't get/set properties on text, comment and attribute nodes
- if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
- return;
- }
-
- notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
- if ( notxml ) {
- // 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;
-
- } else {
- return ( elem[ name ] = value );
- }
-
- } else {
- if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
- return ret;
-
- } else {
- return elem[ name ];
- }
- }
- },
-
- propHooks: {
- tabIndex: {
- get: function( elem ) {
- // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
- // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
- var attributeNode = elem.getAttributeNode("tabindex");
-
- return attributeNode && attributeNode.specified ?
- parseInt( attributeNode.value, 10 ) :
- rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
- 0 :
- undefined;
- }
- }
- }
-});
-
-// Hook for boolean attributes
-boolHook = {
- get: function( elem, name ) {
- var
- // Use .prop to determine if this attribute is understood as boolean
- prop = jQuery.prop( elem, name ),
-
- // Fetch it accordingly
- attr = typeof prop === "boolean" && elem.getAttribute( name ),
- detail = typeof prop === "boolean" ?
-
- getSetInput && getSetAttribute ?
- attr != null :
- // oldIE fabricates an empty string for missing boolean attributes
- // and conflates checked/selected into attroperties
- ruseDefault.test( name ) ?
- elem[ jQuery.camelCase( "default-" + name ) ] :
- !!attr :
-
- // fetch an attribute node for properties not recognized as boolean
- elem.getAttributeNode( name );
-
- return detail && detail.value !== false ?
- name.toLowerCase() :
- undefined;
- },
- set: function( elem, value, name ) {
- if ( value === false ) {
- // Remove boolean attributes when set to false
- jQuery.removeAttr( elem, name );
- } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
- // IE<8 needs the *property* name
- elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );
-
- // Use defaultChecked and defaultSelected for oldIE
- } else {
- elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
- }
-
- return name;
- }
-};
-
-// fix oldIE value attroperty
-if ( !getSetInput || !getSetAttribute ) {
- jQuery.attrHooks.value = {
- get: function( elem, name ) {
- var ret = elem.getAttributeNode( name );
- return jQuery.nodeName( elem, "input" ) ?
-
- // Ignore the value *property* by using defaultValue
- elem.defaultValue :
-
- ret && ret.specified ? ret.value : undefined;
- },
- set: function( elem, value, name ) {
- if ( jQuery.nodeName( elem, "input" ) ) {
- // Does not return so that setAttribute is also used
- elem.defaultValue = value;
- } else {
- // Use nodeHook if defined (#1954); otherwise setAttribute is fine
- return nodeHook && nodeHook.set( elem, value, name );
- }
- }
- };
-}
-
-// IE6/7 do not support getting/setting some attributes with get/setAttribute
-if ( !getSetAttribute ) {
-
- // Use this for any attribute in IE6/7
- // This fixes almost every IE6/7 issue
- nodeHook = jQuery.valHooks.button = {
- get: function( elem, name ) {
- var ret = elem.getAttributeNode( name );
- return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ?
- ret.value :
- undefined;
- },
- set: function( elem, value, name ) {
- // Set the existing or create a new attribute node
- var ret = elem.getAttributeNode( name );
- if ( !ret ) {
- elem.setAttributeNode(
- (ret = elem.ownerDocument.createAttribute( name ))
- );
- }
-
- ret.value = value += "";
-
- // Break association with cloned elements by also using setAttribute (#9646)
- return name === "value" || value === elem.getAttribute( name ) ?
- value :
- undefined;
- }
- };
-
- // Set contenteditable to false on removals(#10429)
- // Setting to empty string throws an error as an invalid value
- jQuery.attrHooks.contenteditable = {
- get: nodeHook.get,
- set: function( elem, value, name ) {
- nodeHook.set( elem, value === "" ? false : value, name );
- }
- };
-
- // Set width and height to auto instead of 0 on empty string( Bug #8150 )
- // This is for removals
- jQuery.each([ "width", "height" ], function( i, name ) {
- jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
- set: function( elem, value ) {
- if ( value === "" ) {
- elem.setAttribute( name, "auto" );
- return value;
- }
- }
- });
- });
-}
-
-
-// Some attributes require a special call on IE
-// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !jQuery.support.hrefNormalized ) {
- jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
- jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
- get: function( elem ) {
- var ret = elem.getAttribute( name, 2 );
- return ret == null ? undefined : ret;
- }
- });
- });
-
- // href/src property should get the full normalized URL (#10299/#12915)
- jQuery.each([ "href", "src" ], function( i, name ) {
- jQuery.propHooks[ name ] = {
- get: function( elem ) {
- return elem.getAttribute( name, 4 );
- }
- };
- });
-}
-
-if ( !jQuery.support.style ) {
- jQuery.attrHooks.style = {
- get: function( elem ) {
- // Return undefined in the case of empty string
- // Note: IE uppercases css property names, but if we were to .toLowerCase()
- // .cssText, that would destroy case senstitivity in URL's, like in "background"
- return elem.style.cssText || undefined;
- },
- set: function( elem, value ) {
- return ( elem.style.cssText = value + "" );
- }
- };
-}
-
-// Safari mis-reports the default selected property of an option
-// Accessing the parent's selectedIndex property fixes it
-if ( !jQuery.support.optSelected ) {
- jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
- get: function( elem ) {
- var parent = elem.parentNode;
-
- if ( parent ) {
- parent.selectedIndex;
-
- // Make sure that it also works with optgroups, see #5701
- if ( parent.parentNode ) {
- parent.parentNode.selectedIndex;
- }
- }
- return null;
- }
- });
-}
-
-// IE6/7 call enctype encoding
-if ( !jQuery.support.enctype ) {
- jQuery.propFix.enctype = "encoding";
-}
-
-// Radios and checkboxes getter/setter
-if ( !jQuery.support.checkOn ) {
- jQuery.each([ "radio", "checkbox" ], function() {
- jQuery.valHooks[ this ] = {
- get: function( elem ) {
- // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
- return elem.getAttribute("value") === null ? "on" : elem.value;
- }
- };
- });
-}
-jQuery.each([ "radio", "checkbox" ], function() {
- jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
- set: function( elem, value ) {
- if ( jQuery.isArray( value ) ) {
- return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
- }
- }
- });
-});
-var rformElems = /^(?:input|select|textarea)$/i,
- rkeyEvent = /^key/,
- rmouseEvent = /^(?:mouse|contextmenu)|click/,
- rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
- rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
-
-function returnTrue() {
- return true;
-}
-
-function returnFalse() {
- return false;
-}
-
-/*
- * 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 tmp, events, t, handleObjIn,
- special, eventHandle, handleObj,
- handlers, type, namespaces, origType,
- elemData = jQuery._data( 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;
- }
-
- // 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 !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ?
- jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
- undefined;
- };
- // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
- eventHandle.elem = elem;
- }
-
- // Handle multiple events separated by a space
- // jQuery(...).bind("mouseover mouseout", fn);
- types = ( types || "" ).match( core_rnotwhite ) || [""];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[t] ) || [];
- type = origType = tmp[1];
- namespaces = ( tmp[2] || "" ).split( "." ).sort();
-
- // 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/attachEvent if the special events handler returns false
- if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
- // Bind the global event handler to the element
- if ( elem.addEventListener ) {
- elem.addEventListener( type, eventHandle, false );
-
- } else if ( elem.attachEvent ) {
- elem.attachEvent( "on" + 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;
- }
-
- // Nullify elem to prevent memory leaks in IE
- elem = null;
- },
-
- // Detach an event or set of events from an element
- remove: function( elem, types, handler, selector, mappedTypes ) {
- var j, handleObj, tmp,
- origCount, t, events,
- special, handlers, type,
- namespaces, origType,
- elemData = jQuery.hasData( elem ) && jQuery._data( elem );
-
- if ( !elemData || !(events = elemData.events) ) {
- return;
- }
-
- // Once for each type.namespace in types; type may be omitted
- types = ( types || "" ).match( core_rnotwhite ) || [""];
- 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 the expando if it's no longer used
- if ( jQuery.isEmptyObject( events ) ) {
- delete elemData.handle;
-
- // removeData also checks for emptiness and clears the expando if empty
- // so use it instead of delete
- jQuery._removeData( elem, "events" );
- }
- },
-
- trigger: function( event, data, elem, onlyHandlers ) {
- var handle, ontype, cur,
- bubbleType, special, tmp, i,
- eventPath = [ elem || document ],
- type = core_hasOwn.call( event, "type" ) ? event.type : event,
- namespaces = core_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(".") >= 0 ) {
- // 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 );
-
- event.isTrigger = true;
- event.namespace = namespaces.join(".");
- event.namespace_re = 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 = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
- if ( handle ) {
- handle.apply( cur, data );
- }
-
- // Native handler
- handle = ontype && cur[ ontype ];
- if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === 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( elem.ownerDocument, data ) === false) &&
- !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
-
- // Call a native DOM method on the target with the same name name as the event.
- // Can't use an .isFunction() check here because IE6/7 fails that test.
- // Don't do default actions on window, that's where global variables be (#6170)
- if ( ontype && 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;
- try {
- elem[ type ]();
- } catch ( e ) {
- // IE<9 dies on focus/blur to hidden element (#1486,#12518)
- // only reproducible on winXP IE8 native, not IE9 in IE8 mode
- }
- jQuery.event.triggered = undefined;
-
- if ( tmp ) {
- elem[ ontype ] = tmp;
- }
- }
- }
- }
-
- return event.result;
- },
-
- dispatch: function( event ) {
-
- // Make a writable jQuery.Event from the native event object
- event = jQuery.event.fix( event );
-
- var i, ret, handleObj, matched, j,
- handlerQueue = [],
- args = core_slice.call( arguments ),
- handlers = ( jQuery._data( 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;
- 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.namespace_re || event.namespace_re.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 sel, handleObj, matches, i,
- handlerQueue = [],
- delegateCount = handlers.delegateCount,
- cur = event.target;
-
- // Find delegate handlers
- // Black-hole SVG instance trees (#13180)
- // Avoid non-left-click bubbling in Firefox (#3861)
- if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
-
- 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 && (cur.disabled !== true || event.type !== "click") ) {
- matches = [];
- for ( i = 0; i < delegateCount; i++ ) {
- handleObj = handlers[ i ];
-
- // Don't conflict with Object.prototype properties (#13203)
- sel = handleObj.selector + " ";
-
- if ( matches[ sel ] === undefined ) {
- matches[ sel ] = handleObj.needsContext ?
- jQuery( sel, this ).index( cur ) >= 0 :
- jQuery.find( sel, this, null, [ cur ] ).length;
- }
- if ( matches[ sel ] ) {
- matches.push( handleObj );
- }
- }
- if ( matches.length ) {
- handlerQueue.push({ elem: cur, handlers: matches });
- }
- }
- }
- }
-
- // Add the remaining (directly-bound) handlers
- if ( delegateCount < handlers.length ) {
- handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
- }
-
- return handlerQueue;
- },
-
- fix: function( event ) {
- if ( event[ jQuery.expando ] ) {
- return event;
- }
-
- // Create a writable copy of the event object and normalize some properties
- var i, prop, copy,
- type = event.type,
- originalEvent = event,
- fixHook = this.fixHooks[ type ];
-
- if ( !fixHook ) {
- this.fixHooks[ type ] = fixHook =
- rmouseEvent.test( type ) ? this.mouseHooks :
- rkeyEvent.test( type ) ? this.keyHooks :
- {};
- }
- copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
-
- event = new jQuery.Event( originalEvent );
-
- i = copy.length;
- while ( i-- ) {
- prop = copy[ i ];
- event[ prop ] = originalEvent[ prop ];
- }
-
- // Support: IE<9
- // Fix target property (#1925)
- if ( !event.target ) {
- event.target = originalEvent.srcElement || document;
- }
-
- // Support: Chrome 23+, Safari?
- // Target should not be a text node (#504, #13143)
- if ( event.target.nodeType === 3 ) {
- event.target = event.target.parentNode;
- }
-
- // Support: IE<9
- // For mouse/key events, metaKey==false if it's undefined (#3368, #11328)
- event.metaKey = !!event.metaKey;
-
- return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
- },
-
- // Includes some event props shared by KeyEvent and MouseEvent
- props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
-
- fixHooks: {},
-
- keyHooks: {
- props: "char charCode key keyCode".split(" "),
- filter: function( event, original ) {
-
- // Add which for key events
- if ( event.which == null ) {
- event.which = original.charCode != null ? original.charCode : original.keyCode;
- }
-
- return event;
- }
- },
-
- mouseHooks: {
- props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
- filter: function( event, original ) {
- var body, eventDoc, doc,
- button = original.button,
- fromElement = original.fromElement;
-
- // Calculate pageX/Y if missing and clientX/Y available
- if ( event.pageX == null && original.clientX != null ) {
- eventDoc = event.target.ownerDocument || document;
- doc = eventDoc.documentElement;
- body = eventDoc.body;
-
- event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
- event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
- }
-
- // Add relatedTarget, if necessary
- if ( !event.relatedTarget && fromElement ) {
- event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
- }
-
- // Add which for click: 1 === left; 2 === middle; 3 === right
- // Note: button is not normalized, so don't use it
- if ( !event.which && button !== undefined ) {
- event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
- }
-
- return event;
- }
- },
-
- special: {
- load: {
- // Prevent triggered image.load events from bubbling to window.load
- noBubble: true
- },
- click: {
- // For checkbox, fire native event so checked state will be right
- trigger: function() {
- if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) {
- this.click();
- return false;
- }
- }
- },
- focus: {
- // Fire native event if possible so blur/focus sequence is correct
- trigger: function() {
- if ( this !== document.activeElement && this.focus ) {
- try {
- this.focus();
- return false;
- } catch ( e ) {
- // Support: IE<9
- // If we error on focus to hidden element (#1486, #12518),
- // let .trigger() run the handlers
- }
- }
- },
- delegateType: "focusin"
- },
- blur: {
- trigger: function() {
- if ( this === document.activeElement && this.blur ) {
- this.blur();
- return false;
- }
- },
- delegateType: "focusout"
- },
-
- beforeunload: {
- postDispatch: function( event ) {
-
- // Even when returnValue equals to undefined Firefox will still show alert
- if ( event.result !== undefined ) {
- event.originalEvent.returnValue = event.result;
- }
- }
- }
- },
-
- simulate: function( type, elem, event, bubble ) {
- // Piggyback on a donor event to simulate a different one.
- // Fake originalEvent to avoid donor's stopPropagation, but if the
- // simulated event prevents default then we do the same on the donor.
- var e = jQuery.extend(
- new jQuery.Event(),
- event,
- { type: type,
- isSimulated: true,
- originalEvent: {}
- }
- );
- if ( bubble ) {
- jQuery.event.trigger( e, null, elem );
- } else {
- jQuery.event.dispatch.call( elem, e );
- }
- if ( e.isDefaultPrevented() ) {
- event.preventDefault();
- }
- }
-};
-
-jQuery.removeEvent = document.removeEventListener ?
- function( elem, type, handle ) {
- if ( elem.removeEventListener ) {
- elem.removeEventListener( type, handle, false );
- }
- } :
- function( elem, type, handle ) {
- var name = "on" + type;
-
- if ( elem.detachEvent ) {
-
- // #8545, #7054, preventing memory leaks for custom events in IE6-8
- // detachEvent needed property on element, by name of that event, to properly expose it to GC
- if ( typeof elem[ name ] === core_strundefined ) {
- elem[ name ] = null;
- }
-
- elem.detachEvent( name, 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.returnValue === false ||
- src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
-
- // 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
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
- isDefaultPrevented: returnFalse,
- isPropagationStopped: returnFalse,
- isImmediatePropagationStopped: returnFalse,
-
- preventDefault: function() {
- var e = this.originalEvent;
-
- this.isDefaultPrevented = returnTrue;
- if ( !e ) {
- return;
- }
-
- // If preventDefault exists, run it on the original event
- if ( e.preventDefault ) {
- e.preventDefault();
-
- // Support: IE
- // Otherwise set the returnValue property of the original event to false
- } else {
- e.returnValue = false;
- }
- },
- stopPropagation: function() {
- var e = this.originalEvent;
-
- this.isPropagationStopped = returnTrue;
- if ( !e ) {
- return;
- }
- // If stopPropagation exists, run it on the original event
- if ( e.stopPropagation ) {
- e.stopPropagation();
- }
-
- // Support: IE
- // Set the cancelBubble property of the original event to true
- e.cancelBubble = true;
- },
- stopImmediatePropagation: function() {
- this.isImmediatePropagationStopped = returnTrue;
- this.stopPropagation();
- }
-};
-
-// Create mouseenter/leave events using mouseover/out and event-time checks
-jQuery.each({
- mouseenter: "mouseover",
- mouseleave: "mouseout"
-}, 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 mousenter/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;
- }
- };
-});
-
-// IE submit delegation
-if ( !jQuery.support.submitBubbles ) {
-
- jQuery.event.special.submit = {
- setup: function() {
- // Only need this for delegated form submit events
- if ( jQuery.nodeName( this, "form" ) ) {
- return false;
- }
-
- // Lazy-add a submit handler when a descendant form may potentially be submitted
- jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
- // Node name check avoids a VML-related crash in IE (#9807)
- var elem = e.target,
- form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
- if ( form && !jQuery._data( form, "submitBubbles" ) ) {
- jQuery.event.add( form, "submit._submit", function( event ) {
- event._submit_bubble = true;
- });
- jQuery._data( form, "submitBubbles", true );
- }
- });
- // return undefined since we don't need an event listener
- },
-
- postDispatch: function( event ) {
- // If form was submitted by the user, bubble the event up the tree
- if ( event._submit_bubble ) {
- delete event._submit_bubble;
- if ( this.parentNode && !event.isTrigger ) {
- jQuery.event.simulate( "submit", this.parentNode, event, true );
- }
- }
- },
-
- teardown: function() {
- // Only need this for delegated form submit events
- if ( jQuery.nodeName( this, "form" ) ) {
- return false;
- }
-
- // Remove delegated handlers; cleanData eventually reaps submit handlers attached above
- jQuery.event.remove( this, "._submit" );
- }
- };
-}
-
-// IE change delegation and checkbox/radio fix
-if ( !jQuery.support.changeBubbles ) {
-
- jQuery.event.special.change = {
-
- setup: function() {
-
- if ( rformElems.test( this.nodeName ) ) {
- // IE doesn't fire change on a check/radio until blur; trigger it on click
- // after a propertychange. Eat the blur-change in special.change.handle.
- // This still fires onchange a second time for check/radio after blur.
- if ( this.type === "checkbox" || this.type === "radio" ) {
- jQuery.event.add( this, "propertychange._change", function( event ) {
- if ( event.originalEvent.propertyName === "checked" ) {
- this._just_changed = true;
- }
- });
- jQuery.event.add( this, "click._change", function( event ) {
- if ( this._just_changed && !event.isTrigger ) {
- this._just_changed = false;
- }
- // Allow triggered, simulated change events (#11500)
- jQuery.event.simulate( "change", this, event, true );
- });
- }
- return false;
- }
- // Delegated event; lazy-add a change handler on descendant inputs
- jQuery.event.add( this, "beforeactivate._change", function( e ) {
- var elem = e.target;
-
- if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) {
- jQuery.event.add( elem, "change._change", function( event ) {
- if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
- jQuery.event.simulate( "change", this.parentNode, event, true );
- }
- });
- jQuery._data( elem, "changeBubbles", true );
- }
- });
- },
-
- handle: function( event ) {
- var elem = event.target;
-
- // Swallow native change events from checkbox/radio, we already triggered them above
- if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
- return event.handleObj.handler.apply( this, arguments );
- }
- },
-
- teardown: function() {
- jQuery.event.remove( this, "._change" );
-
- return !rformElems.test( this.nodeName );
- }
- };
-}
-
-// Create "bubbling" focus and blur events
-if ( !jQuery.support.focusinBubbles ) {
- jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
-
- // Attach a single capturing handler while someone wants focusin/focusout
- var attaches = 0,
- handler = function( event ) {
- jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
- };
-
- jQuery.event.special[ fix ] = {
- setup: function() {
- if ( attaches++ === 0 ) {
- document.addEventListener( orig, handler, true );
- }
- },
- teardown: function() {
- if ( --attaches === 0 ) {
- document.removeEventListener( orig, handler, true );
- }
- }
- };
- });
-}
-
-jQuery.fn.extend({
-
- on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
- var type, origFn;
-
- // 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 ) {
- this.on( type, selector, data, types[ type ], one );
- }
- return this;
- }
-
- 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 this;
- }
-
- 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 this.each( function() {
- jQuery.event.add( this, types, fn, data, selector );
- });
- },
- one: function( types, selector, data, fn ) {
- return this.on( 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 );
- });
- },
-
- 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 );
- },
-
- 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 );
- }
- }
-});
-/*!
- * Sizzle CSS Selector Engine
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license
- * http://sizzlejs.com/
- */
-(function( window, undefined ) {
-
-var i,
- cachedruns,
- Expr,
- getText,
- isXML,
- compile,
- hasDuplicate,
- outermostContext,
-
- // Local document vars
- setDocument,
- document,
- docElem,
- documentIsXML,
- rbuggyQSA,
- rbuggyMatches,
- matches,
- contains,
- sortOrder,
-
- // Instance-specific data
- expando = "sizzle" + -(new Date()),
- preferredDoc = window.document,
- support = {},
- dirruns = 0,
- done = 0,
- classCache = createCache(),
- tokenCache = createCache(),
- compilerCache = createCache(),
-
- // General-purpose constants
- strundefined = typeof undefined,
- MAX_NEGATIVE = 1 << 31,
-
- // Array methods
- arr = [],
- pop = arr.pop,
- push = arr.push,
- slice = arr.slice,
- // Use a stripped-down indexOf if we can't use a native one
- indexOf = arr.indexOf || function( elem ) {
- var i = 0,
- len = this.length;
- for ( ; i < len; i++ ) {
- if ( this[i] === elem ) {
- return i;
- }
- }
- return -1;
- },
-
-
- // Regular expressions
-
- // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
- whitespace = "[\\x20\\t\\r\\n\\f]",
- // http://www.w3.org/TR/css3-syntax/#characters
- characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
-
- // Loosely modeled on CSS identifier characters
- // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
- // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
- identifier = characterEncoding.replace( "w", "w#" ),
-
- // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
- operators = "([*^$|!~]?=)",
- attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
- "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
-
- // Prefer arguments quoted,
- // then not containing pseudos/brackets,
- // then attribute selectors/non-parenthetical expressions,
- // then anything else
- // These preferences are here to reduce the number of selectors
- // needing tokenize in the PSEUDO preFilter
- pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
-
- // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
- rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
-
- rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
- rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ),
- rpseudo = new RegExp( pseudos ),
- ridentifier = new RegExp( "^" + identifier + "$" ),
-
- matchExpr = {
- "ID": new RegExp( "^#(" + characterEncoding + ")" ),
- "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
- "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ),
- "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
- "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" ),
- // 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" )
- },
-
- rsibling = /[\x20\t\r\n\f]*[+~]/,
-
- rnative = /^[^{]+\{\s*\[native code/,
-
- // Easily-parseable/retrievable ID or TAG or CLASS selectors
- rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
-
- rinputs = /^(?:input|select|textarea|button)$/i,
- rheader = /^h\d$/i,
-
- rescape = /'|\\/g,
- rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
-
- // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
- runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,
- funescape = function( _, escaped ) {
- var high = "0x" + escaped - 0x10000;
- // NaN means non-codepoint
- return high !== high ?
- escaped :
- // BMP codepoint
- high < 0 ?
- String.fromCharCode( high + 0x10000 ) :
- // Supplemental Plane codepoint (surrogate pair)
- String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
- };
-
-// Use a stripped-down slice if we can't use a native one
-try {
- slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType;
-} catch ( e ) {
- slice = function( i ) {
- var elem,
- results = [];
- while ( (elem = this[i++]) ) {
- results.push( elem );
- }
- return results;
- };
-}
-
-/**
- * For feature detection
- * @param {Function} fn The function to test for native support
- */
-function isNative( fn ) {
- return rnative.test( fn + "" );
-}
-
-/**
- * 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 cache,
- keys = [];
-
- return (cache = function( 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);
- });
-}
-
-/**
- * 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 div and expects a boolean result
- */
-function assert( fn ) {
- var div = document.createElement("div");
-
- try {
- return fn( div );
- } catch (e) {
- return false;
- } finally {
- // release memory in IE
- div = null;
- }
-}
-
-function Sizzle( selector, context, results, seed ) {
- var match, elem, m, nodeType,
- // QSA vars
- i, groups, old, nid, newContext, newSelector;
-
- if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
- setDocument( context );
- }
-
- context = context || document;
- results = results || [];
-
- if ( !selector || typeof selector !== "string" ) {
- return results;
- }
-
- if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
- return [];
- }
-
- if ( !documentIsXML && !seed ) {
-
- // Shortcuts
- if ( (match = rquickExpr.exec( selector )) ) {
- // Speed-up: Sizzle("#ID")
- if ( (m = match[1]) ) {
- if ( nodeType === 9 ) {
- elem = context.getElementById( m );
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- if ( elem && elem.parentNode ) {
- // Handle the case where IE, Opera, and Webkit return items
- // by name instead of ID
- if ( elem.id === m ) {
- results.push( elem );
- return results;
- }
- } else {
- return results;
- }
- } else {
- // Context is not a document
- if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
- contains( context, elem ) && elem.id === m ) {
- results.push( elem );
- return results;
- }
- }
-
- // Speed-up: Sizzle("TAG")
- } else if ( match[2] ) {
- push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) );
- return results;
-
- // Speed-up: Sizzle(".CLASS")
- } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) {
- push.apply( results, slice.call(context.getElementsByClassName( m ), 0) );
- return results;
- }
- }
-
- // QSA path
- if ( support.qsa && !rbuggyQSA.test(selector) ) {
- old = true;
- nid = expando;
- newContext = context;
- newSelector = nodeType === 9 && selector;
-
- // qSA works strangely on Element-rooted queries
- // We can work around this by specifying an extra ID on the root
- // and working up from there (Thanks to Andrew Dupont for the technique)
- // IE 8 doesn't work on object elements
- if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
- groups = tokenize( selector );
-
- if ( (old = context.getAttribute("id")) ) {
- nid = old.replace( rescape, "\\$&" );
- } else {
- context.setAttribute( "id", nid );
- }
- nid = "[id='" + nid + "'] ";
-
- i = groups.length;
- while ( i-- ) {
- groups[i] = nid + toSelector( groups[i] );
- }
- newContext = rsibling.test( selector ) && context.parentNode || context;
- newSelector = groups.join(",");
- }
-
- if ( newSelector ) {
- try {
- push.apply( results, slice.call( newContext.querySelectorAll(
- newSelector
- ), 0 ) );
- return results;
- } catch(qsaError) {
- } finally {
- if ( !old ) {
- context.removeAttribute("id");
- }
- }
- }
- }
- }
-
- // All others
- return select( selector.replace( rtrim, "$1" ), context, results, seed );
-}
-
-/**
- * Detect xml
- * @param {Element|Object} elem An element or a document
- */
-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 doc = node ? node.ownerDocument || node : preferredDoc;
-
- // If no document and documentElement is available, return
- if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
- return document;
- }
-
- // Set our document
- document = doc;
- docElem = doc.documentElement;
-
- // Support tests
- documentIsXML = isXML( doc );
-
- // Check if getElementsByTagName("*") returns only elements
- support.tagNameNoComments = assert(function( div ) {
- div.appendChild( doc.createComment("") );
- return !div.getElementsByTagName("*").length;
- });
-
- // Check if attributes should be retrieved by attribute nodes
- support.attributes = assert(function( div ) {
- div.innerHTML = " ";
- var type = typeof div.lastChild.getAttribute("multiple");
- // IE8 returns a string for some attributes even when not present
- return type !== "boolean" && type !== "string";
- });
-
- // Check if getElementsByClassName can be trusted
- support.getByClassName = assert(function( div ) {
- // Opera can't find a second classname (in 9.6)
- div.innerHTML = "
";
- if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) {
- return false;
- }
-
- // Safari 3.2 caches class attributes and doesn't catch changes
- div.lastChild.className = "e";
- return div.getElementsByClassName("e").length === 2;
- });
-
- // Check if getElementById returns elements by name
- // Check if getElementsByName privileges form controls or returns elements by ID
- support.getByName = assert(function( div ) {
- // Inject content
- div.id = expando + 0;
- div.innerHTML = "
";
- docElem.insertBefore( div, docElem.firstChild );
-
- // Test
- var pass = doc.getElementsByName &&
- // buggy browsers will return fewer than the correct 2
- doc.getElementsByName( expando ).length === 2 +
- // buggy browsers will return more than the correct 0
- doc.getElementsByName( expando + 0 ).length;
- support.getIdNotName = !doc.getElementById( expando );
-
- // Cleanup
- docElem.removeChild( div );
-
- return pass;
- });
-
- // IE6/7 return modified attributes
- Expr.attrHandle = assert(function( div ) {
- div.innerHTML = " ";
- return div.firstChild && typeof div.firstChild.getAttribute !== strundefined &&
- div.firstChild.getAttribute("href") === "#";
- }) ?
- {} :
- {
- "href": function( elem ) {
- return elem.getAttribute( "href", 2 );
- },
- "type": function( elem ) {
- return elem.getAttribute("type");
- }
- };
-
- // ID find and filter
- if ( support.getIdNotName ) {
- Expr.find["ID"] = function( id, context ) {
- if ( typeof context.getElementById !== strundefined && !documentIsXML ) {
- var m = context.getElementById( id );
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- return m && m.parentNode ? [m] : [];
- }
- };
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- return elem.getAttribute("id") === attrId;
- };
- };
- } else {
- Expr.find["ID"] = function( id, context ) {
- if ( typeof context.getElementById !== strundefined && !documentIsXML ) {
- var m = context.getElementById( id );
-
- return m ?
- m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ?
- [m] :
- undefined :
- [];
- }
- };
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
- return node && node.value === attrId;
- };
- };
- }
-
- // Tag
- Expr.find["TAG"] = support.tagNameNoComments ?
- function( tag, context ) {
- if ( typeof context.getElementsByTagName !== strundefined ) {
- return context.getElementsByTagName( tag );
- }
- } :
- function( tag, context ) {
- var elem,
- tmp = [],
- i = 0,
- 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;
- };
-
- // Name
- Expr.find["NAME"] = support.getByName && function( tag, context ) {
- if ( typeof context.getElementsByName !== strundefined ) {
- return context.getElementsByName( name );
- }
- };
-
- // Class
- Expr.find["CLASS"] = support.getByClassName && function( className, context ) {
- if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) {
- return context.getElementsByClassName( className );
- }
- };
-
- // QSA and matchesSelector support
-
- // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
- rbuggyMatches = [];
-
- // qSa(:focus) reports false when true (Chrome 21),
- // no need to also add to buggyMatches since matches checks buggyQSA
- // A support test would require too much code (would include document ready)
- rbuggyQSA = [ ":focus" ];
-
- if ( (support.qsa = isNative(doc.querySelectorAll)) ) {
- // Build QSA regex
- // Regex strategy adopted from Diego Perini
- assert(function( div ) {
- // Select is set to empty string on purpose
- // This is to test IE's treatment of not explictly
- // setting a boolean content attribute,
- // since its presence should be enough
- // http://bugs.jquery.com/ticket/12359
- div.innerHTML = " ";
-
- // IE8 - Some boolean attributes are not treated correctly
- if ( !div.querySelectorAll("[selected]").length ) {
- rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" );
- }
-
- // 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 ( !div.querySelectorAll(":checked").length ) {
- rbuggyQSA.push(":checked");
- }
- });
-
- assert(function( div ) {
-
- // Opera 10-12/IE8 - ^= $= *= and empty values
- // Should not select anything
- div.innerHTML = " ";
- if ( div.querySelectorAll("[i^='']").length ) {
- rbuggyQSA.push( "[*^$]=" + 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 ( !div.querySelectorAll(":enabled").length ) {
- rbuggyQSA.push( ":enabled", ":disabled" );
- }
-
- // Opera 10-11 does not throw on post-comma invalid pseudos
- div.querySelectorAll("*,:x");
- rbuggyQSA.push(",.*:");
- });
- }
-
- if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector ||
- docElem.mozMatchesSelector ||
- docElem.webkitMatchesSelector ||
- docElem.oMatchesSelector ||
- docElem.msMatchesSelector) )) ) {
-
- assert(function( div ) {
- // Check to see if it's possible to do matchesSelector
- // on a disconnected node (IE 9)
- support.disconnectedMatch = matches.call( div, "div" );
-
- // This should fail with an exception
- // Gecko does not error, returns false instead
- matches.call( div, "[s!='']:x" );
- rbuggyMatches.push( "!=", pseudos );
- });
- }
-
- rbuggyQSA = new RegExp( rbuggyQSA.join("|") );
- rbuggyMatches = new RegExp( rbuggyMatches.join("|") );
-
- // Element contains another
- // Purposefully does not implement inclusive descendent
- // As in, an element does not contain itself
- contains = isNative(docElem.contains) || docElem.compareDocumentPosition ?
- 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;
- };
-
- // Document order sorting
- sortOrder = docElem.compareDocumentPosition ?
- function( a, b ) {
- var compare;
-
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) {
- if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) {
- if ( a === doc || contains( preferredDoc, a ) ) {
- return -1;
- }
- if ( b === doc || contains( preferredDoc, b ) ) {
- return 1;
- }
- return 0;
- }
- return compare & 4 ? -1 : 1;
- }
-
- return a.compareDocumentPosition ? -1 : 1;
- } :
- function( a, b ) {
- var cur,
- i = 0,
- aup = a.parentNode,
- bup = b.parentNode,
- ap = [ a ],
- bp = [ b ];
-
- // Exit early if the nodes are identical
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
-
- // Parentless nodes are either documents or disconnected
- } else if ( !aup || !bup ) {
- return a === doc ? -1 :
- b === doc ? 1 :
- aup ? -1 :
- bup ? 1 :
- 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;
- };
-
- // Always assume the presence of duplicates if sort doesn't
- // pass them to our comparison function (as in Google Chrome).
- hasDuplicate = false;
- [0, 0].sort( sortOrder );
- support.detectDuplicates = hasDuplicate;
-
- 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']" );
-
- // rbuggyQSA always contains :focus, so no need for an existence check
- if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !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 ) {
- var val;
-
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
-
- if ( !documentIsXML ) {
- name = name.toLowerCase();
- }
- if ( (val = Expr.attrHandle[ name ]) ) {
- return val( elem );
- }
- if ( documentIsXML || support.attributes ) {
- return elem.getAttribute( name );
- }
- return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ?
- name :
- val && val.specified ? val.value : null;
-};
-
-Sizzle.error = function( msg ) {
- throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
-
-// Document sorting and removing duplicates
-Sizzle.uniqueSort = function( results ) {
- var elem,
- duplicates = [],
- i = 1,
- j = 0;
-
- // Unless we *know* we can detect duplicates, assume their presence
- hasDuplicate = !support.detectDuplicates;
- results.sort( sortOrder );
-
- if ( hasDuplicate ) {
- for ( ; (elem = results[i]); i++ ) {
- if ( elem === results[ i - 1 ] ) {
- j = duplicates.push( i );
- }
- }
- while ( j-- ) {
- results.splice( duplicates[ j ], 1 );
- }
- }
-
- return results;
-};
-
-function siblingCheck( a, b ) {
- var cur = b && a,
- diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE );
-
- // 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
-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
-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 positionals
-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]);
- }
- }
- });
- });
-}
-
-/**
- * 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
- for ( ; (node = elem[i]); 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 (see #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,
-
- 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[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[5] && match[2];
-
- if ( matchExpr["CHILD"].test( match[0] ) ) {
- return null;
- }
-
- // Accept quoted arguments as-is
- if ( match[4] ) {
- match[2] = match[4];
-
- // 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( nodeName ) {
- if ( nodeName === "*" ) {
- return function() { return true; };
- }
-
- nodeName = nodeName.replace( runescape, funescape ).toLowerCase();
- return 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( elem.className || (typeof elem.getAttribute !== strundefined && 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 + " " ).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, outerCache, node, diff, nodeIndex, start,
- dir = simple !== forward ? "nextSibling" : "previousSibling",
- parent = elem.parentNode,
- name = ofType && elem.nodeName.toLowerCase(),
- useCache = !xml && !ofType;
-
- 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
- outerCache = parent[ expando ] || (parent[ expando ] = {});
- cache = outerCache[ type ] || [];
- nodeIndex = cache[0] === dirruns && cache[1];
- diff = cache[0] === dirruns && 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 ) {
- outerCache[ type ] = [ dirruns, nodeIndex, diff ];
- break;
- }
- }
-
- // Use previously-cached element index if available
- } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
- diff = cache[1];
-
- // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
- } else {
- // 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 ) {
- (node[ expando ] || (node[ expando ] = {}))[ 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.call( 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 );
- return !results.pop();
- };
- }),
-
- "has": markFunction(function( selector ) {
- return function( elem ) {
- return Sizzle( selector, elem ).length > 0;
- };
- }),
-
- "contains": markFunction(function( text ) {
- 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 identifider
- if ( !ridentifier.test(lang || "") ) {
- Sizzle.error( "unsupported lang: " + lang );
- }
- lang = lang.replace( runescape, funescape ).toLowerCase();
- return function( elem ) {
- var elemLang;
- do {
- if ( (elemLang = documentIsXML ?
- elem.getAttribute("xml:lang") || elem.getAttribute("lang") :
- elem.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": function( elem ) {
- return elem.disabled === false;
- },
-
- "disabled": function( elem ) {
- return elem.disabled === 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 only affected by element nodes and content nodes(including text(3), cdata(4)),
- // not comment, processing instructions, or others
- // Thanks to Diego Perini for the nodeName shortcut
- // Greater than "@" means alpha characters (specifically not starting with "#" or "?")
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) {
- 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;
- // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
- // use getAttribute instead to test this case
- return elem.nodeName.toLowerCase() === "input" &&
- elem.type === "text" &&
- ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type );
- },
-
- // 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;
- })
- }
-};
-
-// 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 );
-}
-
-function tokenize( 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,
- checkNonElements = base && dir === "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 );
- }
- }
- } :
-
- // Check against all ancestor/preceding elements
- function( elem, context, xml ) {
- var data, cache, outerCache,
- dirkey = dirruns + " " + doneName;
-
- // We can't set arbitrary data on XML nodes, so they don't benefit from dir 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 ] = {});
- if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) {
- if ( (data = cache[1]) === true || data === cachedruns ) {
- return data === true;
- }
- } else {
- cache = outerCache[ dir ] = [ dirkey ];
- cache[1] = matcher( elem, context, xml ) || cachedruns;
- if ( cache[1] === true ) {
- return true;
- }
- }
- }
- }
- }
- };
-}
-
-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 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.call( 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.call( checkContext, elem ) > -1;
- }, implicitRelative, true ),
- matchers = [ function( elem, context, xml ) {
- return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
- (checkContext = context).nodeType ?
- matchContext( elem, context, xml ) :
- matchAnyContext( elem, context, xml ) );
- } ];
-
- 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( tokens.slice( 0, i - 1 ) ).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 ) {
- // A counter to specify which element is currently being matched
- var matcherCachedRuns = 0,
- bySet = setMatchers.length > 0,
- byElement = elementMatchers.length > 0,
- superMatcher = function( seed, context, xml, results, expandContext ) {
- var elem, j, matcher,
- setMatched = [],
- matchedCount = 0,
- i = "0",
- unmatched = seed && [],
- outermost = expandContext != null,
- contextBackup = outermostContext,
- // We must always have either seed elements or context
- elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ),
- // Use integer dirruns iff this is the outermost matcher
- dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1);
-
- if ( outermost ) {
- outermostContext = context !== document && context;
- cachedruns = matcherCachedRuns;
- }
-
- // Add elements passing elementMatchers directly to results
- // Keep `i` a string if there are no elements so `matchedCount` will be "00" below
- for ( ; (elem = elems[i]) != null; i++ ) {
- if ( byElement && elem ) {
- j = 0;
- while ( (matcher = elementMatchers[j++]) ) {
- if ( matcher( elem, context, xml ) ) {
- results.push( elem );
- break;
- }
- }
- if ( outermost ) {
- dirruns = dirrunsUnique;
- cachedruns = ++matcherCachedRuns;
- }
- }
-
- // 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 );
- }
- }
- }
-
- // Apply set filters to unmatched elements
- matchedCount += i;
- 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, group /* 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 ( !group ) {
- group = tokenize( selector );
- }
- i = group.length;
- while ( i-- ) {
- cached = matcherFromTokens( group[i] );
- if ( cached[ expando ] ) {
- setMatchers.push( cached );
- } else {
- elementMatchers.push( cached );
- }
- }
-
- // Cache the compiled function
- cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
- }
- return cached;
-};
-
-function multipleContexts( selector, contexts, results ) {
- var i = 0,
- len = contexts.length;
- for ( ; i < len; i++ ) {
- Sizzle( selector, contexts[i], results );
- }
- return results;
-}
-
-function select( selector, context, results, seed ) {
- var i, tokens, token, type, find,
- match = tokenize( selector );
-
- if ( !seed ) {
- // Try to minimize operations if there is only one group
- if ( match.length === 1 ) {
-
- // Take a shortcut and set the context if the root selector is an ID
- tokens = match[0] = match[0].slice( 0 );
- if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
- context.nodeType === 9 && !documentIsXML &&
- Expr.relative[ tokens[1].type ] ) {
-
- context = Expr.find["ID"]( token.matches[0].replace( runescape, funescape ), context )[0];
- if ( !context ) {
- return results;
- }
-
- 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 ) && 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, slice.call( seed, 0 ) );
- return results;
- }
-
- break;
- }
- }
- }
- }
- }
-
- // Compile and execute a filtering function
- // Provide `match` to avoid retokenization if we modified the selector above
- compile( selector, match )(
- seed,
- context,
- documentIsXML,
- results,
- rsibling.test( selector )
- );
- return results;
-}
-
-// Deprecated
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
-
-// Easy API for creating new setFilters
-function setFilters() {}
-Expr.filters = setFilters.prototype = Expr.pseudos;
-Expr.setFilters = new setFilters();
-
-// Initialize with the default document
-setDocument();
-
-// Override sizzle attribute retrieval
-Sizzle.attr = jQuery.attr;
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.pseudos;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-})( window );
-var runtil = /Until$/,
- rparentsprev = /^(?:parents|prev(?:Until|All))/,
- isSimple = /^.[^:#\[\.,]*$/,
- rneedsContext = jQuery.expr.match.needsContext,
- // 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({
- find: function( selector ) {
- var i, ret, self,
- len = this.length;
-
- if ( typeof selector !== "string" ) {
- self = this;
- return this.pushStack( jQuery( selector ).filter(function() {
- for ( i = 0; i < len; i++ ) {
- if ( jQuery.contains( self[ i ], this ) ) {
- return true;
- }
- }
- }) );
- }
-
- ret = [];
- for ( i = 0; i < len; i++ ) {
- jQuery.find( selector, this[ i ], ret );
- }
-
- // Needed because $( selector, context ) becomes $( context ).find( selector )
- ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
- ret.selector = ( this.selector ? this.selector + " " : "" ) + selector;
- return ret;
- },
-
- has: function( target ) {
- var i,
- targets = jQuery( target, this ),
- len = targets.length;
-
- return this.filter(function() {
- for ( i = 0; i < len; i++ ) {
- if ( jQuery.contains( this, targets[i] ) ) {
- return true;
- }
- }
- });
- },
-
- not: function( selector ) {
- return this.pushStack( winnow(this, selector, false) );
- },
-
- filter: function( selector ) {
- return this.pushStack( winnow(this, selector, true) );
- },
-
- is: function( selector ) {
- return !!selector && (
- typeof selector === "string" ?
- // 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".
- rneedsContext.test( selector ) ?
- jQuery( selector, this.context ).index( this[0] ) >= 0 :
- jQuery.filter( selector, this ).length > 0 :
- this.filter( selector ).length > 0 );
- },
-
- closest: function( selectors, context ) {
- var cur,
- i = 0,
- l = this.length,
- ret = [],
- pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
- jQuery( selectors, context || this.context ) :
- 0;
-
- for ( ; i < l; i++ ) {
- cur = this[i];
-
- while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) {
- if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
- ret.push( cur );
- break;
- }
- cur = cur.parentNode;
- }
- }
-
- return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret );
- },
-
- // Determine the position of an element within
- // the matched set of elements
- 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 jQuery.inArray( this[0], jQuery( elem ) );
- }
-
- // Locate the position of the desired element
- return jQuery.inArray(
- // If it receives a jQuery object, the first element is used
- elem.jquery ? elem[0] : elem, this );
- },
-
- add: function( selector, context ) {
- var set = typeof selector === "string" ?
- jQuery( selector, context ) :
- jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
- all = jQuery.merge( this.get(), set );
-
- return this.pushStack( jQuery.unique(all) );
- },
-
- addBack: function( selector ) {
- return this.add( selector == null ?
- this.prevObject : this.prevObject.filter(selector)
- );
- }
-});
-
-jQuery.fn.andSelf = jQuery.fn.addBack;
-
-function sibling( cur, dir ) {
- do {
- cur = cur[ dir ];
- } while ( cur && 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 jQuery.dir( elem, "parentNode" );
- },
- parentsUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "parentNode", until );
- },
- next: function( elem ) {
- return sibling( elem, "nextSibling" );
- },
- prev: function( elem ) {
- return sibling( elem, "previousSibling" );
- },
- nextAll: function( elem ) {
- return jQuery.dir( elem, "nextSibling" );
- },
- prevAll: function( elem ) {
- return jQuery.dir( elem, "previousSibling" );
- },
- nextUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "nextSibling", until );
- },
- prevUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "previousSibling", until );
- },
- siblings: function( elem ) {
- return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
- },
- children: function( elem ) {
- return jQuery.sibling( elem.firstChild );
- },
- contents: function( elem ) {
- return jQuery.nodeName( elem, "iframe" ) ?
- elem.contentDocument || elem.contentWindow.document :
- jQuery.merge( [], elem.childNodes );
- }
-}, function( name, fn ) {
- jQuery.fn[ name ] = function( until, selector ) {
- var ret = jQuery.map( this, fn, until );
-
- if ( !runtil.test( name ) ) {
- selector = until;
- }
-
- if ( selector && typeof selector === "string" ) {
- ret = jQuery.filter( selector, ret );
- }
-
- ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
-
- if ( this.length > 1 && rparentsprev.test( name ) ) {
- ret = ret.reverse();
- }
-
- return this.pushStack( ret );
- };
-});
-
-jQuery.extend({
- filter: function( expr, elems, not ) {
- if ( not ) {
- expr = ":not(" + expr + ")";
- }
-
- return elems.length === 1 ?
- jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
- jQuery.find.matches(expr, elems);
- },
-
- dir: function( elem, dir, until ) {
- var matched = [],
- cur = elem[ dir ];
-
- while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
- if ( cur.nodeType === 1 ) {
- matched.push( cur );
- }
- cur = cur[dir];
- }
- return matched;
- },
-
- sibling: function( n, elem ) {
- var r = [];
-
- for ( ; n; n = n.nextSibling ) {
- if ( n.nodeType === 1 && n !== elem ) {
- r.push( n );
- }
- }
-
- return r;
- }
-});
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, keep ) {
-
- // Can't pass null or undefined to indexOf in Firefox 4
- // Set to 0 to skip string check
- qualifier = qualifier || 0;
-
- if ( jQuery.isFunction( qualifier ) ) {
- return jQuery.grep(elements, function( elem, i ) {
- var retVal = !!qualifier.call( elem, i, elem );
- return retVal === keep;
- });
-
- } else if ( qualifier.nodeType ) {
- return jQuery.grep(elements, function( elem ) {
- return ( elem === qualifier ) === keep;
- });
-
- } else if ( typeof qualifier === "string" ) {
- var filtered = jQuery.grep(elements, function( elem ) {
- return elem.nodeType === 1;
- });
-
- if ( isSimple.test( qualifier ) ) {
- return jQuery.filter(qualifier, filtered, !keep);
- } else {
- qualifier = jQuery.filter( qualifier, filtered );
- }
- }
-
- return jQuery.grep(elements, function( elem ) {
- return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;
- });
-}
-function createSafeFragment( document ) {
- var list = nodeNames.split( "|" ),
- safeFrag = document.createDocumentFragment();
-
- if ( safeFrag.createElement ) {
- while ( list.length ) {
- safeFrag.createElement(
- list.pop()
- );
- }
- }
- return safeFrag;
-}
-
-var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
- "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
- rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
- rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
- rleadingWhitespace = /^\s+/,
- rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
- rtagName = /<([\w:]+)/,
- rtbody = /\s*$/g,
-
- // We have to close these tags to support XHTML (#13200)
- wrapMap = {
- option: [ 1, "", " " ],
- legend: [ 1, "", " " ],
- area: [ 1, "", " " ],
- param: [ 1, "", " " ],
- thead: [ 1, "" ],
- tr: [ 2, "" ],
- col: [ 2, "" ],
- td: [ 3, "" ],
-
- // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
- // unless wrapped in a div with non-breaking characters in front of it.
- _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X", "
" ]
- },
- safeFragment = createSafeFragment( document ),
- fragmentDiv = safeFragment.appendChild( document.createElement("div") );
-
-wrapMap.optgroup = wrapMap.option;
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-jQuery.fn.extend({
- text: function( value ) {
- return jQuery.access( this, function( value ) {
- return value === undefined ?
- jQuery.text( this ) :
- this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
- }, null, value, arguments.length );
- },
-
- wrapAll: function( html ) {
- if ( jQuery.isFunction( html ) ) {
- return this.each(function(i) {
- jQuery(this).wrapAll( html.call(this, i) );
- });
- }
-
- if ( this[0] ) {
- // The elements to wrap the target around
- var 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.firstChild && elem.firstChild.nodeType === 1 ) {
- elem = elem.firstChild;
- }
-
- 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() {
- return this.parent().each(function() {
- if ( !jQuery.nodeName( this, "body" ) ) {
- jQuery( this ).replaceWith( this.childNodes );
- }
- }).end();
- },
-
- append: function() {
- return this.domManip(arguments, true, function( elem ) {
- if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
- this.appendChild( elem );
- }
- });
- },
-
- prepend: function() {
- return this.domManip(arguments, true, function( elem ) {
- if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
- this.insertBefore( elem, this.firstChild );
- }
- });
- },
-
- before: function() {
- return this.domManip( arguments, false, function( elem ) {
- if ( this.parentNode ) {
- this.parentNode.insertBefore( elem, this );
- }
- });
- },
-
- after: function() {
- return this.domManip( arguments, false, function( elem ) {
- if ( this.parentNode ) {
- this.parentNode.insertBefore( elem, this.nextSibling );
- }
- });
- },
-
- // keepData is for internal use only--do not document
- remove: function( selector, keepData ) {
- var elem,
- i = 0;
-
- for ( ; (elem = this[i]) != null; i++ ) {
- if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) {
- if ( !keepData && elem.nodeType === 1 ) {
- jQuery.cleanData( getAll( elem ) );
- }
-
- if ( elem.parentNode ) {
- if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
- setGlobalEval( getAll( elem, "script" ) );
- }
- elem.parentNode.removeChild( elem );
- }
- }
- }
-
- return this;
- },
-
- empty: function() {
- var elem,
- i = 0;
-
- for ( ; (elem = this[i]) != null; i++ ) {
- // Remove element nodes and prevent memory leaks
- if ( elem.nodeType === 1 ) {
- jQuery.cleanData( getAll( elem, false ) );
- }
-
- // Remove any remaining nodes
- while ( elem.firstChild ) {
- elem.removeChild( elem.firstChild );
- }
-
- // If this is a select, ensure that it displays empty (#12336)
- // Support: IE<9
- if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
- elem.options.length = 0;
- }
- }
-
- 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 jQuery.access( this, function( value ) {
- var elem = this[0] || {},
- i = 0,
- l = this.length;
-
- if ( value === undefined ) {
- return elem.nodeType === 1 ?
- elem.innerHTML.replace( rinlinejQuery, "" ) :
- undefined;
- }
-
- // See if we can take a shortcut and just use innerHTML
- if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
- ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) &&
- ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
- !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
-
- value = value.replace( rxhtmlTag, "<$1>$2>" );
-
- try {
- for (; i < l; i++ ) {
- // Remove element nodes and prevent memory leaks
- elem = this[i] || {};
- 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( value ) {
- var isFunc = jQuery.isFunction( value );
-
- // Make sure that the elements are removed from the DOM before they are inserted
- // this can help fix replacing a parent with child elements
- if ( !isFunc && typeof value !== "string" ) {
- value = jQuery( value ).not( this ).detach();
- }
-
- return this.domManip( [ value ], true, function( elem ) {
- var next = this.nextSibling,
- parent = this.parentNode;
-
- if ( parent ) {
- jQuery( this ).remove();
- parent.insertBefore( elem, next );
- }
- });
- },
-
- detach: function( selector ) {
- return this.remove( selector, true );
- },
-
- domManip: function( args, table, callback ) {
-
- // Flatten any nested arrays
- args = core_concat.apply( [], args );
-
- var first, node, hasScripts,
- scripts, doc, fragment,
- i = 0,
- l = this.length,
- set = this,
- 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" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {
- return this.each(function( index ) {
- var self = set.eq( index );
- if ( isFunction ) {
- args[0] = value.call( this, index, table ? self.html() : undefined );
- }
- self.domManip( args, table, callback );
- });
- }
-
- if ( l ) {
- fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );
- first = fragment.firstChild;
-
- if ( fragment.childNodes.length === 1 ) {
- fragment = first;
- }
-
- if ( first ) {
- table = table && jQuery.nodeName( first, "tr" );
- 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 ) {
- jQuery.merge( scripts, getAll( node, "script" ) );
- }
- }
-
- callback.call(
- table && jQuery.nodeName( this[i], "table" ) ?
- findOrAppend( this[i], "tbody" ) :
- this[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 || "" ) &&
- !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
-
- if ( node.src ) {
- // Hope ajax is available...
- jQuery.ajax({
- url: node.src,
- type: "GET",
- dataType: "script",
- async: false,
- global: false,
- "throws": true
- });
- } else {
- jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) );
- }
- }
- }
- }
-
- // Fix #11809: Avoid leaking memory
- fragment = first = null;
- }
- }
-
- return this;
- }
-});
-
-function findOrAppend( elem, tag ) {
- return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) );
-}
-
-// Replace/restore the type attribute of script elements for safe DOM manipulation
-function disableScript( elem ) {
- var attr = elem.getAttributeNode("type");
- elem.type = ( attr && attr.specified ) + "/" + 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;
-}
-
-// Mark scripts as having already been evaluated
-function setGlobalEval( elems, refElements ) {
- var elem,
- i = 0;
- for ( ; (elem = elems[i]) != null; i++ ) {
- jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) );
- }
-}
-
-function cloneCopyEvent( src, dest ) {
-
- if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
- return;
- }
-
- var type, i, l,
- oldData = jQuery._data( src ),
- curData = jQuery._data( dest, oldData ),
- events = oldData.events;
-
- if ( events ) {
- delete curData.handle;
- curData.events = {};
-
- for ( type in events ) {
- for ( i = 0, l = events[ type ].length; i < l; i++ ) {
- jQuery.event.add( dest, type, events[ type ][ i ] );
- }
- }
- }
-
- // make the cloned public data object a copy from the original
- if ( curData.data ) {
- curData.data = jQuery.extend( {}, curData.data );
- }
-}
-
-function fixCloneNodeIssues( src, dest ) {
- var nodeName, e, data;
-
- // We do not need to do anything for non-Elements
- if ( dest.nodeType !== 1 ) {
- return;
- }
-
- nodeName = dest.nodeName.toLowerCase();
-
- // IE6-8 copies events bound via attachEvent when using cloneNode.
- if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) {
- data = jQuery._data( dest );
-
- for ( e in data.events ) {
- jQuery.removeEvent( dest, e, data.handle );
- }
-
- // Event data gets referenced instead of copied if the expando gets copied too
- dest.removeAttribute( jQuery.expando );
- }
-
- // IE blanks contents when cloning scripts, and tries to evaluate newly-set text
- if ( nodeName === "script" && dest.text !== src.text ) {
- disableScript( dest ).text = src.text;
- restoreScript( dest );
-
- // IE6-10 improperly clones children of object elements using classid.
- // IE10 throws NoModificationAllowedError if parent is null, #12132.
- } else if ( nodeName === "object" ) {
- if ( dest.parentNode ) {
- dest.outerHTML = src.outerHTML;
- }
-
- // This path appears unavoidable for IE9. When cloning an object
- // element in IE9, the outerHTML strategy above is not sufficient.
- // If the src has innerHTML and the destination does not,
- // copy the src.innerHTML into the dest.innerHTML. #10324
- if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {
- dest.innerHTML = src.innerHTML;
- }
-
- } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) {
- // IE6-8 fails to persist the checked state of a cloned checkbox
- // or radio button. Worse, IE6-7 fail to give the cloned element
- // a checked appearance if the defaultChecked value isn't also set
-
- dest.defaultChecked = dest.checked = src.checked;
-
- // IE6-7 get confused and end up setting the value of a cloned
- // checkbox/radio button to an empty string instead of "on"
- if ( dest.value !== src.value ) {
- dest.value = src.value;
- }
-
- // IE6-8 fails to return the selected option to the default selected
- // state when cloning options
- } else if ( nodeName === "option" ) {
- dest.defaultSelected = dest.selected = src.defaultSelected;
-
- // IE6-8 fails to set the defaultValue to the correct value when
- // cloning other types of input fields
- } else if ( nodeName === "input" || nodeName === "textarea" ) {
- dest.defaultValue = src.defaultValue;
- }
-}
-
-jQuery.each({
- appendTo: "append",
- prependTo: "prepend",
- insertBefore: "before",
- insertAfter: "after",
- replaceAll: "replaceWith"
-}, function( name, original ) {
- jQuery.fn[ name ] = function( selector ) {
- var elems,
- i = 0,
- ret = [],
- insert = jQuery( selector ),
- last = insert.length - 1;
-
- for ( ; i <= last; i++ ) {
- elems = i === last ? this : this.clone(true);
- jQuery( insert[i] )[ original ]( elems );
-
- // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
- core_push.apply( ret, elems.get() );
- }
-
- return this.pushStack( ret );
- };
-});
-
-function getAll( context, tag ) {
- var elems, elem,
- i = 0,
- found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) :
- typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) :
- undefined;
-
- if ( !found ) {
- for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {
- if ( !tag || jQuery.nodeName( elem, tag ) ) {
- found.push( elem );
- } else {
- jQuery.merge( found, getAll( elem, tag ) );
- }
- }
- }
-
- return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
- jQuery.merge( [ context ], found ) :
- found;
-}
-
-// Used in buildFragment, fixes the defaultChecked property
-function fixDefaultChecked( elem ) {
- if ( manipulation_rcheckableType.test( elem.type ) ) {
- elem.defaultChecked = elem.checked;
- }
-}
-
-jQuery.extend({
- clone: function( elem, dataAndEvents, deepDataAndEvents ) {
- var destElements, node, clone, i, srcElements,
- inPage = jQuery.contains( elem.ownerDocument, elem );
-
- if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
- clone = elem.cloneNode( true );
-
- // IE<=8 does not properly clone detached, unknown element nodes
- } else {
- fragmentDiv.innerHTML = elem.outerHTML;
- fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
- }
-
- if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
- (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
-
- // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
- destElements = getAll( clone );
- srcElements = getAll( elem );
-
- // Fix all IE cloning issues
- for ( i = 0; (node = srcElements[i]) != null; ++i ) {
- // Ensure that the destination node is not null; Fixes #9587
- if ( destElements[i] ) {
- fixCloneNodeIssues( node, 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; (node = srcElements[i]) != null; i++ ) {
- cloneCopyEvent( node, destElements[i] );
- }
- } else {
- cloneCopyEvent( elem, clone );
- }
- }
-
- // Preserve script evaluation history
- destElements = getAll( clone, "script" );
- if ( destElements.length > 0 ) {
- setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
- }
-
- destElements = srcElements = node = null;
-
- // Return the cloned set
- return clone;
- },
-
- buildFragment: function( elems, context, scripts, selection ) {
- var j, elem, contains,
- tmp, tag, tbody, wrap,
- l = elems.length,
-
- // Ensure a safe fragment
- safe = createSafeFragment( context ),
-
- nodes = [],
- i = 0;
-
- for ( ; i < l; i++ ) {
- elem = elems[ i ];
-
- if ( elem || elem === 0 ) {
-
- // Add nodes directly
- if ( jQuery.type( elem ) === "object" ) {
- 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 || safe.appendChild( context.createElement("div") );
-
- // Deserialize a standard representation
- tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase();
- wrap = wrapMap[ tag ] || wrapMap._default;
-
- tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>$2>" ) + wrap[2];
-
- // Descend through wrappers to the right content
- j = wrap[0];
- while ( j-- ) {
- tmp = tmp.lastChild;
- }
-
- // Manually add leading whitespace removed by IE
- if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
- nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );
- }
-
- // Remove IE's autoinserted from table fragments
- if ( !jQuery.support.tbody ) {
-
- // String was a , *may* have spurious
- elem = tag === "table" && !rtbody.test( elem ) ?
- tmp.firstChild :
-
- // String was a bare or
- wrap[1] === "" && !rtbody.test( elem ) ?
- tmp :
- 0;
-
- j = elem && elem.childNodes.length;
- while ( j-- ) {
- if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) {
- elem.removeChild( tbody );
- }
- }
- }
-
- jQuery.merge( nodes, tmp.childNodes );
-
- // Fix #12392 for WebKit and IE > 9
- tmp.textContent = "";
-
- // Fix #12392 for oldIE
- while ( tmp.firstChild ) {
- tmp.removeChild( tmp.firstChild );
- }
-
- // Remember the top-level container for proper cleanup
- tmp = safe.lastChild;
- }
- }
- }
-
- // Fix #11356: Clear elements from fragment
- if ( tmp ) {
- safe.removeChild( tmp );
- }
-
- // Reset defaultChecked for any radios and checkboxes
- // about to be appended to the DOM in IE 6/7 (#8060)
- if ( !jQuery.support.appendChecked ) {
- jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
- }
-
- i = 0;
- while ( (elem = nodes[ i++ ]) ) {
-
- // #4087 - If origin and destination elements are the same, and this is
- // that element, do not do anything
- if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
- continue;
- }
-
- contains = jQuery.contains( elem.ownerDocument, elem );
-
- // Append to fragment
- tmp = getAll( safe.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 );
- }
- }
- }
- }
-
- tmp = null;
-
- return safe;
- },
-
- cleanData: function( elems, /* internal */ acceptData ) {
- var elem, type, id, data,
- i = 0,
- internalKey = jQuery.expando,
- cache = jQuery.cache,
- deleteExpando = jQuery.support.deleteExpando,
- special = jQuery.event.special;
-
- for ( ; (elem = elems[i]) != null; i++ ) {
-
- if ( acceptData || jQuery.acceptData( elem ) ) {
-
- id = elem[ internalKey ];
- data = id && cache[ id ];
-
- if ( data ) {
- 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 );
- }
- }
- }
-
- // Remove cache only if it was not already removed by jQuery.event.remove
- if ( cache[ id ] ) {
-
- delete cache[ id ];
-
- // IE does not allow us to delete expando properties from nodes,
- // nor does it have a removeAttribute function on Document nodes;
- // we must handle all of these cases
- if ( deleteExpando ) {
- delete elem[ internalKey ];
-
- } else if ( typeof elem.removeAttribute !== core_strundefined ) {
- elem.removeAttribute( internalKey );
-
- } else {
- elem[ internalKey ] = null;
- }
-
- core_deletedIds.push( id );
- }
- }
- }
- }
- }
-});
-var iframe, getStyles, curCSS,
- ralpha = /alpha\([^)]*\)/i,
- ropacity = /opacity\s*=\s*([^)]*)/,
- rposition = /^(top|right|bottom|left)$/,
- // 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]).+)/,
- rmargin = /^margin/,
- rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ),
- rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ),
- rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ),
- elemdisplay = { BODY: "block" },
-
- cssShow = { position: "absolute", visibility: "hidden", display: "block" },
- cssNormalTransform = {
- letterSpacing: 0,
- fontWeight: 400
- },
-
- cssExpand = [ "Top", "Right", "Bottom", "Left" ],
- cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
-
-// return a css property mapped to a potentially vendor prefixed property
-function vendorPropName( style, name ) {
-
- // shortcut for names that are not vendor prefixed
- if ( name in style ) {
- return name;
- }
-
- // check for vendor prefixed names
- var capName = name.charAt(0).toUpperCase() + name.slice(1),
- origName = name,
- i = cssPrefixes.length;
-
- while ( i-- ) {
- name = cssPrefixes[ i ] + capName;
- if ( name in style ) {
- return name;
- }
- }
-
- return origName;
-}
-
-function isHidden( elem, el ) {
- // isHidden might be called from jQuery#filter function;
- // in that case, element will be second argument
- elem = el || elem;
- return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
-}
-
-function showHide( elements, show ) {
- var display, elem, hidden,
- values = [],
- index = 0,
- length = elements.length;
-
- for ( ; index < length; index++ ) {
- elem = elements[ index ];
- if ( !elem.style ) {
- continue;
- }
-
- values[ index ] = jQuery._data( elem, "olddisplay" );
- display = elem.style.display;
- if ( show ) {
- // Reset the inline display of this element to learn if it is
- // being hidden by cascaded rules or not
- if ( !values[ index ] && display === "none" ) {
- elem.style.display = "";
- }
-
- // Set elements which have been overridden with display: none
- // in a stylesheet to whatever the default browser style is
- // for such an element
- if ( elem.style.display === "" && isHidden( elem ) ) {
- values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
- }
- } else {
-
- if ( !values[ index ] ) {
- hidden = isHidden( elem );
-
- if ( display && display !== "none" || !hidden ) {
- jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
- }
- }
- }
- }
-
- // Set the display of most of the elements in a second loop
- // to avoid the constant reflow
- for ( index = 0; index < length; index++ ) {
- elem = elements[ index ];
- if ( !elem.style ) {
- continue;
- }
- if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
- elem.style.display = show ? values[ index ] || "" : "none";
- }
- }
-
- return elements;
-}
-
-jQuery.fn.extend({
- css: function( name, value ) {
- return jQuery.access( this, function( elem, name, value ) {
- var len, styles,
- map = {},
- i = 0;
-
- if ( jQuery.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 );
- },
- show: function() {
- return showHide( this, true );
- },
- hide: function() {
- return showHide( this );
- },
- toggle: function( state ) {
- var bool = typeof state === "boolean";
-
- return this.each(function() {
- if ( bool ? state : isHidden( this ) ) {
- jQuery( this ).show();
- } else {
- jQuery( this ).hide();
- }
- });
- }
-});
-
-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;
- }
- }
- }
- },
-
- // Exclude the following css properties to add px
- cssNumber: {
- "columnCount": true,
- "fillOpacity": true,
- "fontWeight": true,
- "lineHeight": true,
- "opacity": 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: {
- // normalize float css property
- "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
- },
-
- // 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 ),
- style = elem.style;
-
- name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
-
- // gets hook for the prefixed version
- // followed by the unprefixed version
- hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
-
- // Check if we're setting a value
- if ( value !== undefined ) {
- type = typeof value;
-
- // convert relative number strings (+= or -=) to relative numbers. #7345
- if ( type === "string" && (ret = rrelNum.exec( value )) ) {
- value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
- // Fixes bug #9237
- type = "number";
- }
-
- // Make sure that NaN and null values aren't set. See: #7116
- if ( value == null || type === "number" && isNaN( value ) ) {
- return;
- }
-
- // If a number was passed in, add 'px' to the (except for certain CSS properties)
- if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
- value += "px";
- }
-
- // Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
- // but it would mean to define eight (for every problematic property) identical functions
- if ( !jQuery.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 ) {
-
- // Wrapped to prevent IE from throwing errors when 'invalid' values are provided
- // Fixes bug #5509
- try {
- style[ name ] = value;
- } catch(e) {}
- }
-
- } 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 num, val, hooks,
- origName = jQuery.camelCase( name );
-
- // Make sure that we're working with the right name
- name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
-
- // gets hook for the prefixed version
- // followed by the unprefixed version
- 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 ];
- }
-
- // Return, converting to number if forced or a qualifier was provided and val looks numeric
- if ( extra === "" || extra ) {
- num = parseFloat( val );
- return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
- }
- return val;
- },
-
- // A method for quickly swapping in/out CSS properties to get correct calculations
- 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;
- }
-});
-
-// NOTE: we've included the "window" in window.getComputedStyle
-// because jsdom on node.js will break without it.
-if ( window.getComputedStyle ) {
- getStyles = function( elem ) {
- return window.getComputedStyle( elem, null );
- };
-
- curCSS = function( elem, name, _computed ) {
- var width, minWidth, maxWidth,
- computed = _computed || getStyles( elem ),
-
- // getPropertyValue is only needed for .css('filter') in IE9, see #12537
- ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined,
- style = elem.style;
-
- if ( computed ) {
-
- if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
- ret = jQuery.style( elem, name );
- }
-
- // A tribute to the "awesome hack by Dean Edwards"
- // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
- // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
- // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
- if ( 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;
- };
-} else if ( document.documentElement.currentStyle ) {
- getStyles = function( elem ) {
- return elem.currentStyle;
- };
-
- curCSS = function( elem, name, _computed ) {
- var left, rs, rsLeft,
- computed = _computed || getStyles( elem ),
- ret = computed ? computed[ name ] : undefined,
- style = elem.style;
-
- // Avoid setting ret to empty string here
- // so we don't default to auto
- if ( ret == null && style && style[ name ] ) {
- ret = style[ name ];
- }
-
- // From the awesome hack by Dean Edwards
- // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
- // If we're not dealing with a regular pixel number
- // but a number that has a weird ending, we need to convert it to pixels
- // but not position css attributes, as those are proportional to the parent element instead
- // and we can't measure the parent instead because it might trigger a "stacking dolls" problem
- if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
-
- // Remember the original values
- left = style.left;
- rs = elem.runtimeStyle;
- rsLeft = rs && rs.left;
-
- // Put in the new values to get a computed value out
- if ( rsLeft ) {
- rs.left = elem.currentStyle.left;
- }
- style.left = name === "fontSize" ? "1em" : ret;
- ret = style.pixelLeft + "px";
-
- // Revert the changed values
- style.left = left;
- if ( rsLeft ) {
- rs.left = rsLeft;
- }
- }
-
- return ret === "" ? "auto" : ret;
- };
-}
-
-function setPositiveNumber( elem, value, subtract ) {
- var matches = rnumsplit.exec( value );
- return matches ?
- // Guard against undefined "subtract", e.g., when used as in cssHooks
- Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
- value;
-}
-
-function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
- var i = extra === ( isBorderBox ? "border" : "content" ) ?
- // If we already have the right measurement, avoid augmentation
- 4 :
- // Otherwise initialize for horizontal or vertical properties
- name === "width" ? 1 : 0,
-
- val = 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 offset property, which is equivalent to the border-box value
- var valueIsBorderBox = true,
- val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
- styles = getStyles( elem ),
- isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
-
- // some non-html elements return undefined for offsetWidth, so check for null/undefined
- // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
- // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
- if ( val <= 0 || val == null ) {
- // Fall back to computed then uncomputed css if necessary
- val = curCSS( elem, name, styles );
- if ( val < 0 || val == null ) {
- val = elem.style[ name ];
- }
-
- // Computed unit is not pixels. Stop here and return.
- if ( rnumnonpx.test(val) ) {
- return val;
- }
-
- // we need the check for style in case a browser which returns unreliable values
- // for getComputedStyle silently falls back to the reliable elem.style
- valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );
-
- // 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";
-}
-
-// Try to determine the default display value of an element
-function css_defaultDisplay( nodeName ) {
- var doc = document,
- display = elemdisplay[ nodeName ];
-
- if ( !display ) {
- display = actualDisplay( nodeName, doc );
-
- // If the simple way fails, read from inside an iframe
- if ( display === "none" || !display ) {
- // Use the already-created iframe if possible
- iframe = ( iframe ||
- jQuery("")
- .css( "cssText", "display:block !important" )
- ).appendTo( doc.documentElement );
-
- // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
- doc = ( iframe[0].contentWindow || iframe[0].contentDocument ).document;
- doc.write("");
- doc.close();
-
- display = actualDisplay( nodeName, doc );
- iframe.detach();
- }
-
- // Store the correct default display
- elemdisplay[ nodeName ] = display;
- }
-
- return display;
-}
-
-// Called ONLY from within css_defaultDisplay
-function actualDisplay( name, doc ) {
- var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
- display = jQuery.css( elem[0], "display" );
- elem.remove();
- return display;
-}
-
-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
- // however, it must have a current display style that would benefit from this
- return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ?
- jQuery.swap( elem, cssShow, function() {
- return getWidthOrHeight( elem, name, extra );
- }) :
- getWidthOrHeight( elem, name, extra );
- }
- },
-
- set: function( elem, value, extra ) {
- var styles = extra && getStyles( elem );
- return setPositiveNumber( elem, value, extra ?
- augmentWidthOrHeight(
- elem,
- name,
- extra,
- jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
- styles
- ) : 0
- );
- }
- };
-});
-
-if ( !jQuery.support.opacity ) {
- jQuery.cssHooks.opacity = {
- get: function( elem, computed ) {
- // IE uses filters for opacity
- return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
- ( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
- computed ? "1" : "";
- },
-
- set: function( elem, value ) {
- var style = elem.style,
- currentStyle = elem.currentStyle,
- opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
- filter = currentStyle && currentStyle.filter || style.filter || "";
-
- // IE has trouble with opacity if it does not have layout
- // Force it by setting the zoom level
- style.zoom = 1;
-
- // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
- // if value === "", then remove inline opacity #12685
- if ( ( value >= 1 || value === "" ) &&
- jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
- style.removeAttribute ) {
-
- // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
- // if "filter:" is present at all, clearType is disabled, we want to avoid this
- // style.removeAttribute is IE Only, but so apparently is this code path...
- style.removeAttribute( "filter" );
-
- // if there is no filter style applied in a css rule or unset inline opacity, we are done
- if ( value === "" || currentStyle && !currentStyle.filter ) {
- return;
- }
- }
-
- // otherwise, set new filter values
- style.filter = ralpha.test( filter ) ?
- filter.replace( ralpha, opacity ) :
- filter + " " + opacity;
- }
- };
-}
-
-// These hooks cannot be added until DOM ready because the support test
-// for it is not run until after DOM ready
-jQuery(function() {
- if ( !jQuery.support.reliableMarginRight ) {
- jQuery.cssHooks.marginRight = {
- get: function( elem, computed ) {
- if ( computed ) {
- // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
- // Work around by temporarily setting element display to inline-block
- return jQuery.swap( elem, { "display": "inline-block" },
- curCSS, [ elem, "marginRight" ] );
- }
- }
- };
- }
-
- // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
- // getComputedStyle returns percent when specified for top/left/bottom/right
- // rather than make the css module depend on the offset module, we just check for it here
- if ( !jQuery.support.pixelPosition && jQuery.fn.position ) {
- jQuery.each( [ "top", "left" ], function( i, prop ) {
- jQuery.cssHooks[ prop ] = {
- get: 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;
- }
- }
- };
- });
- }
-
-});
-
-if ( jQuery.expr && jQuery.expr.filters ) {
- jQuery.expr.filters.hidden = function( elem ) {
- // Support: Opera <= 12.12
- // Opera reports offsetWidths and offsetHeights less than zero on some elements
- return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||
- (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
- };
-
- jQuery.expr.filters.visible = function( elem ) {
- return !jQuery.expr.filters.hidden( elem );
- };
-}
-
-// 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;
- }
-});
-var r20 = /%20/g,
- rbracket = /\[\]$/,
- rCRLF = /\r?\n/g,
- rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
- rsubmittable = /^(?:input|select|textarea|keygen)/i;
-
-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 || !manipulation_rcheckableType.test( type ) );
- })
- .map(function( i, elem ){
- var val = jQuery( this ).val();
-
- return val == null ?
- null :
- jQuery.isArray( val ) ?
- jQuery.map( val, function( val ){
- return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
- }) :
- { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
- }).get();
- }
-});
-
-//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, value ) {
- // If value is a function, invoke it and return its value
- value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
- s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
- };
-
- // Set traditional to true for jQuery <= 1.3.2 behavior.
- if ( traditional === undefined ) {
- traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
- }
-
- // If an array was passed in, assume that it is an array of form elements.
- if ( jQuery.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( "&" ).replace( r20, "+" );
-};
-
-function buildParams( prefix, obj, traditional, add ) {
- var name;
-
- if ( jQuery.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" ? 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 );
- }
-}
-jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
- "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
- "change select submit keydown keypress keyup error 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.hover = function( fnOver, fnOut ) {
- return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-};
-var
- // Document location
- ajaxLocParts,
- ajaxLocation,
- ajax_nonce = jQuery.now(),
-
- ajax_rquery = /\?/,
- rhash = /#.*$/,
- rts = /([?&])_=[^&]*/,
- rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
- // #7653, #8125, #8152: local protocol detection
- rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
- rnoContent = /^(?:GET|HEAD)$/,
- rprotocol = /^\/\//,
- rurl = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
-
- // Keep a copy of the old load method
- _load = jQuery.fn.load,
-
- /* Prefilters
- * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
- * 2) These are called:
- * - BEFORE asking for a transport
- * - AFTER param serialization (s.data is a string if s.processData is true)
- * 3) key is the dataType
- * 4) the catchall symbol "*" can be used
- * 5) execution will start with transport dataType and THEN continue down to "*" if needed
- */
- prefilters = {},
-
- /* Transports bindings
- * 1) key is the dataType
- * 2) the catchall symbol "*" can be used
- * 3) selection will start with transport dataType and THEN go to "*" if needed
- */
- transports = {},
-
- // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
- allTypes = "*/".concat("*");
-
-// #8138, IE may throw an exception when accessing
-// a field from window.location if document.domain has been set
-try {
- ajaxLocation = location.href;
-} catch( e ) {
- // Use the href attribute of an A element
- // since IE will modify it given document.location
- ajaxLocation = document.createElement( "a" );
- ajaxLocation.href = "";
- ajaxLocation = ajaxLocation.href;
-}
-
-// Segment location into parts
-ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
-
-// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
-function addToPrefiltersOrTransports( structure ) {
-
- // dataTypeExpression is optional and defaults to "*"
- return function( dataTypeExpression, func ) {
-
- if ( typeof dataTypeExpression !== "string" ) {
- func = dataTypeExpression;
- dataTypeExpression = "*";
- }
-
- var dataType,
- i = 0,
- dataTypes = dataTypeExpression.toLowerCase().match( core_rnotwhite ) || [];
-
- if ( jQuery.isFunction( func ) ) {
- // For each dataType in the dataTypeExpression
- while ( (dataType = dataTypes[i++]) ) {
- // Prepend if requested
- if ( dataType[0] === "+" ) {
- dataType = dataType.slice( 1 ) || "*";
- (structure[ dataType ] = structure[ dataType ] || []).unshift( func );
-
- // Otherwise append
- } else {
- (structure[ dataType ] = structure[ dataType ] || []).push( func );
- }
- }
- }
- };
-}
-
-// Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
-
- var inspected = {},
- seekingTransport = ( structure === transports );
-
- function inspect( dataType ) {
- var selected;
- inspected[ dataType ] = true;
- jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
- var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
- if( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
- options.dataTypes.unshift( dataTypeOrTransport );
- inspect( dataTypeOrTransport );
- return false;
- } else if ( seekingTransport ) {
- return !( selected = dataTypeOrTransport );
- }
- });
- return selected;
- }
-
- return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
-}
-
-// A special extend for ajax options
-// that takes "flat" options (not to be deep extended)
-// Fixes #9887
-function ajaxExtend( target, src ) {
- var deep, key,
- flatOptions = jQuery.ajaxSettings.flatOptions || {};
-
- for ( key in src ) {
- if ( src[ key ] !== undefined ) {
- ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
- }
- }
- if ( deep ) {
- jQuery.extend( true, target, deep );
- }
-
- return target;
-}
-
-jQuery.fn.load = function( url, params, callback ) {
- if ( typeof url !== "string" && _load ) {
- return _load.apply( this, arguments );
- }
-
- var selector, response, type,
- self = this,
- off = url.indexOf(" ");
-
- if ( off >= 0 ) {
- selector = url.slice( off, url.length );
- url = url.slice( 0, off );
- }
-
- // If it's a function
- if ( jQuery.isFunction( params ) ) {
-
- // We assume that it's the callback
- callback = params;
- params = undefined;
-
- // Otherwise, build a param string
- } else if ( params && typeof params === "object" ) {
- type = "POST";
- }
-
- // If we have elements to modify, make the request
- if ( self.length > 0 ) {
- jQuery.ajax({
- url: url,
-
- // if "type" variable is undefined, then "GET" method will be used
- type: type,
- dataType: "html",
- data: params
- }).done(function( responseText ) {
-
- // Save response for use in complete callback
- response = arguments;
-
- self.html( selector ?
-
- // If a selector was specified, locate the right elements in a dummy div
- // Exclude scripts to avoid IE 'Permission Denied' errors
- jQuery("").append( jQuery.parseHTML( responseText ) ).find( selector ) :
-
- // Otherwise use the full result
- responseText );
-
- }).complete( callback && function( jqXHR, status ) {
- self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
- });
- }
-
- return this;
-};
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ){
- jQuery.fn[ type ] = function( fn ){
- return this.on( type, fn );
- };
-});
-
-jQuery.each( [ "get", "post" ], function( i, method ) {
- jQuery[ method ] = function( url, data, callback, type ) {
- // shift arguments if data argument was omitted
- if ( jQuery.isFunction( data ) ) {
- type = type || callback;
- callback = data;
- data = undefined;
- }
-
- return jQuery.ajax({
- url: url,
- type: method,
- dataType: type,
- data: data,
- success: callback
- });
- };
-});
-
-jQuery.extend({
-
- // Counter for holding the number of active queries
- active: 0,
-
- // Last-Modified header cache for next request
- lastModified: {},
- etag: {},
-
- ajaxSettings: {
- url: ajaxLocation,
- type: "GET",
- isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
- global: true,
- processData: true,
- async: true,
- contentType: "application/x-www-form-urlencoded; charset=UTF-8",
- /*
- timeout: 0,
- data: null,
- dataType: null,
- username: null,
- password: null,
- cache: null,
- throws: false,
- traditional: false,
- headers: {},
- */
-
- accepts: {
- "*": allTypes,
- text: "text/plain",
- html: "text/html",
- xml: "application/xml, text/xml",
- json: "application/json, text/javascript"
- },
-
- contents: {
- xml: /xml/,
- html: /html/,
- json: /json/
- },
-
- responseFields: {
- xml: "responseXML",
- text: "responseText"
- },
-
- // Data converters
- // Keys separate source (or catchall "*") and destination types with a single space
- converters: {
-
- // Convert anything to text
- "* text": window.String,
-
- // Text to html (true = no transformation)
- "text html": true,
-
- // Evaluate text as a json expression
- "text json": jQuery.parseJSON,
-
- // Parse text as xml
- "text xml": jQuery.parseXML
- },
-
- // For options that shouldn't be deep extended:
- // you can add your own custom options here if
- // and when you create one that shouldn't be
- // deep extended (see ajaxExtend)
- flatOptions: {
- url: true,
- context: true
- }
- },
-
- // Creates a full fledged settings object into target
- // with both ajaxSettings and settings fields.
- // If target is omitted, writes into ajaxSettings.
- ajaxSetup: function( target, settings ) {
- return settings ?
-
- // Building a settings object
- ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
-
- // Extending ajaxSettings
- ajaxExtend( jQuery.ajaxSettings, target );
- },
-
- ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
- ajaxTransport: addToPrefiltersOrTransports( transports ),
-
- // Main method
- ajax: function( url, options ) {
-
- // If url is an object, simulate pre-1.5 signature
- if ( typeof url === "object" ) {
- options = url;
- url = undefined;
- }
-
- // Force options to be an object
- options = options || {};
-
- var // Cross-domain detection vars
- parts,
- // Loop variable
- i,
- // URL without anti-cache param
- cacheURL,
- // Response headers as string
- responseHeadersString,
- // timeout handle
- timeoutTimer,
-
- // To know if global events are to be dispatched
- fireGlobals,
-
- transport,
- // Response headers
- responseHeaders,
- // Create the final options object
- s = jQuery.ajaxSetup( {}, options ),
- // Callbacks context
- callbackContext = s.context || s,
- // 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,
- // Deferreds
- deferred = jQuery.Deferred(),
- completeDeferred = jQuery.Callbacks("once memory"),
- // Status-dependent callbacks
- statusCode = s.statusCode || {},
- // Headers (they are sent all at once)
- requestHeaders = {},
- requestHeadersNames = {},
- // The jqXHR state
- state = 0,
- // Default abort message
- strAbort = "canceled",
- // Fake xhr
- jqXHR = {
- readyState: 0,
-
- // Builds headers hashtable if needed
- getResponseHeader: function( key ) {
- var match;
- if ( state === 2 ) {
- if ( !responseHeaders ) {
- responseHeaders = {};
- while ( (match = rheaders.exec( responseHeadersString )) ) {
- responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
- }
- }
- match = responseHeaders[ key.toLowerCase() ];
- }
- return match == null ? null : match;
- },
-
- // Raw string
- getAllResponseHeaders: function() {
- return state === 2 ? responseHeadersString : null;
- },
-
- // Caches the header
- setRequestHeader: function( name, value ) {
- var lname = name.toLowerCase();
- if ( !state ) {
- name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
- requestHeaders[ name ] = value;
- }
- return this;
- },
-
- // Overrides response content-type header
- overrideMimeType: function( type ) {
- if ( !state ) {
- s.mimeType = type;
- }
- return this;
- },
-
- // Status-dependent callbacks
- statusCode: function( map ) {
- var code;
- if ( map ) {
- if ( state < 2 ) {
- for ( code in map ) {
- // Lazy-add the new callback in a way that preserves old ones
- statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
- }
- } else {
- // Execute the appropriate callbacks
- jqXHR.always( map[ jqXHR.status ] );
- }
- }
- return this;
- },
-
- // Cancel the request
- abort: function( statusText ) {
- var finalText = statusText || strAbort;
- if ( transport ) {
- transport.abort( finalText );
- }
- done( 0, finalText );
- return this;
- }
- };
-
- // Attach deferreds
- deferred.promise( jqXHR ).complete = completeDeferred.add;
- jqXHR.success = jqXHR.done;
- jqXHR.error = jqXHR.fail;
-
- // Remove hash character (#7531: and string promotion)
- // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
- // Handle falsy url in the settings object (#10093: consistency with old signature)
- // We also use the url parameter if available
- s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
-
- // Alias method option to type as per ticket #12004
- s.type = options.method || options.type || s.method || s.type;
-
- // Extract dataTypes list
- s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( core_rnotwhite ) || [""];
-
- // A cross-domain request is in order when we have a protocol:host:port mismatch
- 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 ) ) )
- );
- }
-
- // Convert data if not already a string
- if ( s.data && s.processData && typeof s.data !== "string" ) {
- s.data = jQuery.param( s.data, s.traditional );
- }
-
- // Apply prefilters
- inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
-
- // If request was aborted inside a prefilter, stop there
- if ( state === 2 ) {
- return jqXHR;
- }
-
- // We can fire global events as of now if asked to
- fireGlobals = s.global;
-
- // Watch for a new set of requests
- if ( fireGlobals && jQuery.active++ === 0 ) {
- jQuery.event.trigger("ajaxStart");
- }
-
- // Uppercase the type
- s.type = s.type.toUpperCase();
-
- // Determine if request has content
- s.hasContent = !rnoContent.test( s.type );
-
- // Save the URL in case we're toying with the If-Modified-Since
- // and/or If-None-Match header later on
- cacheURL = s.url;
-
- // More options handling for requests with no content
- if ( !s.hasContent ) {
-
- // If data is available, append data to url
- if ( s.data ) {
- cacheURL = ( s.url += ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
- // #9682: remove data so that it's not used in an eventual retry
- delete s.data;
- }
-
- // Add anti-cache in url if needed
- if ( s.cache === false ) {
- s.url = rts.test( cacheURL ) ?
-
- // If there is already a '_' parameter, set its value
- cacheURL.replace( rts, "$1_=" + ajax_nonce++ ) :
-
- // Otherwise add one to the end
- cacheURL + ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ajax_nonce++;
- }
- }
-
- // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
- if ( s.ifModified ) {
- if ( jQuery.lastModified[ cacheURL ] ) {
- jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
- }
- if ( jQuery.etag[ cacheURL ] ) {
- jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
- }
- }
-
- // Set the correct header, if data is being sent
- if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
- jqXHR.setRequestHeader( "Content-Type", s.contentType );
- }
-
- // Set the Accepts header for the server, depending on the dataType
- jqXHR.setRequestHeader(
- "Accept",
- s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
- s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
- s.accepts[ "*" ]
- );
-
- // Check for headers option
- for ( i in s.headers ) {
- jqXHR.setRequestHeader( i, s.headers[ i ] );
- }
-
- // Allow custom headers/mimetypes and early abort
- if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
- // Abort if not done already and return
- return jqXHR.abort();
- }
-
- // aborting is no longer a cancellation
- strAbort = "abort";
-
- // Install callbacks on deferreds
- for ( i in { success: 1, error: 1, complete: 1 } ) {
- jqXHR[ i ]( s[ i ] );
- }
-
- // Get transport
- transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
-
- // If no transport, we auto-abort
- if ( !transport ) {
- done( -1, "No Transport" );
- } else {
- jqXHR.readyState = 1;
-
- // Send global event
- if ( fireGlobals ) {
- globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
- }
- // Timeout
- if ( s.async && s.timeout > 0 ) {
- timeoutTimer = setTimeout(function() {
- jqXHR.abort("timeout");
- }, s.timeout );
- }
-
- try {
- state = 1;
- transport.send( requestHeaders, done );
- } catch ( e ) {
- // Propagate exception as error if not done
- if ( state < 2 ) {
- done( -1, e );
- // Simply rethrow otherwise
- } else {
- throw e;
- }
- }
- }
-
- // Callback for when everything is done
- function done( status, nativeStatusText, responses, headers ) {
- var isSuccess, success, error, response, modified,
- statusText = nativeStatusText;
-
- // Called once
- if ( state === 2 ) {
- return;
- }
-
- // State is "done" now
- state = 2;
-
- // Clear timeout if it exists
- if ( timeoutTimer ) {
- clearTimeout( timeoutTimer );
- }
-
- // Dereference transport for early garbage collection
- // (no matter how long the jqXHR object will be used)
- transport = undefined;
-
- // Cache response headers
- responseHeadersString = headers || "";
-
- // Set readyState
- jqXHR.readyState = status > 0 ? 4 : 0;
-
- // Get response data
- if ( responses ) {
- response = ajaxHandleResponses( s, jqXHR, responses );
- }
-
- // If successful, handle type chaining
- if ( status >= 200 && status < 300 || status === 304 ) {
-
- // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
- if ( s.ifModified ) {
- modified = jqXHR.getResponseHeader("Last-Modified");
- if ( modified ) {
- jQuery.lastModified[ cacheURL ] = modified;
- }
- modified = jqXHR.getResponseHeader("etag");
- if ( modified ) {
- jQuery.etag[ cacheURL ] = modified;
- }
- }
-
- // if no content
- if ( status === 204 ) {
- isSuccess = true;
- statusText = "nocontent";
-
- // if not modified
- } else if ( status === 304 ) {
- isSuccess = true;
- statusText = "notmodified";
-
- // If we have data, let's convert it
- } else {
- isSuccess = ajaxConvert( s, response );
- statusText = isSuccess.state;
- success = isSuccess.data;
- error = isSuccess.error;
- isSuccess = !error;
- }
- } else {
- // We extract error from statusText
- // then normalize statusText and status for non-aborts
- error = statusText;
- if ( status || !statusText ) {
- statusText = "error";
- if ( status < 0 ) {
- status = 0;
- }
- }
- }
-
- // Set data for the fake xhr object
- jqXHR.status = status;
- jqXHR.statusText = ( nativeStatusText || statusText ) + "";
-
- // Success/Error
- if ( isSuccess ) {
- deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
- } else {
- deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
- }
-
- // Status-dependent callbacks
- jqXHR.statusCode( statusCode );
- statusCode = undefined;
-
- if ( fireGlobals ) {
- globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
- [ jqXHR, s, isSuccess ? success : error ] );
- }
-
- // Complete
- completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
-
- if ( fireGlobals ) {
- globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
- // Handle the global AJAX counter
- if ( !( --jQuery.active ) ) {
- jQuery.event.trigger("ajaxStop");
- }
- }
- }
-
- return jqXHR;
- },
-
- getScript: function( url, callback ) {
- return jQuery.get( url, undefined, callback, "script" );
- },
-
- getJSON: function( url, data, callback ) {
- return jQuery.get( url, data, callback, "json" );
- }
-});
-
-/* Handles responses to an ajax request:
- * - sets all responseXXX fields accordingly
- * - finds the right dataType (mediates between content-type and expected dataType)
- * - returns the corresponding response
- */
-function ajaxHandleResponses( s, jqXHR, responses ) {
- var firstDataType, ct, finalDataType, type,
- contents = s.contents,
- dataTypes = s.dataTypes,
- responseFields = s.responseFields;
-
- // Fill responseXXX fields
- for ( type in responseFields ) {
- if ( type in responses ) {
- jqXHR[ responseFields[type] ] = responses[ type ];
- }
- }
-
- // Remove auto dataType and get content-type in the process
- while( dataTypes[ 0 ] === "*" ) {
- dataTypes.shift();
- if ( ct === undefined ) {
- ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
- }
- }
-
- // Check if we're dealing with a known content-type
- if ( ct ) {
- for ( type in contents ) {
- if ( contents[ type ] && contents[ type ].test( ct ) ) {
- dataTypes.unshift( type );
- break;
- }
- }
- }
-
- // Check to see if we have a response for the expected dataType
- if ( dataTypes[ 0 ] in responses ) {
- finalDataType = dataTypes[ 0 ];
- } else {
- // Try convertible dataTypes
- for ( type in responses ) {
- if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
- finalDataType = type;
- break;
- }
- if ( !firstDataType ) {
- firstDataType = type;
- }
- }
- // Or just use first one
- finalDataType = finalDataType || firstDataType;
- }
-
- // If we found a dataType
- // We add the dataType to the list if needed
- // and return the corresponding response
- if ( finalDataType ) {
- if ( finalDataType !== dataTypes[ 0 ] ) {
- dataTypes.unshift( finalDataType );
- }
- return responses[ finalDataType ];
- }
-}
-
-// Chain conversions given the request and the original response
-function ajaxConvert( s, response ) {
- var conv2, current, conv, tmp,
- converters = {},
- i = 0,
- // Work with a copy of dataTypes in case we need to modify it for conversion
- dataTypes = s.dataTypes.slice(),
- prev = dataTypes[ 0 ];
-
- // Apply the dataFilter if provided
- if ( s.dataFilter ) {
- response = s.dataFilter( response, s.dataType );
- }
-
- // Create converters map with lowercased keys
- if ( dataTypes[ 1 ] ) {
- for ( conv in s.converters ) {
- converters[ conv.toLowerCase() ] = s.converters[ conv ];
- }
- }
-
- // Convert to each sequential dataType, tolerating list modification
- for ( ; (current = dataTypes[++i]); ) {
-
- // There's only work to do if current dataType is non-auto
- if ( current !== "*" ) {
-
- // Convert response if prev dataType is non-auto and differs from current
- if ( prev !== "*" && prev !== current ) {
-
- // Seek a direct converter
- conv = converters[ prev + " " + current ] || converters[ "* " + current ];
-
- // If none found, seek a pair
- if ( !conv ) {
- for ( conv2 in converters ) {
-
- // If conv2 outputs current
- tmp = conv2.split(" ");
- if ( tmp[ 1 ] === current ) {
-
- // If prev can be converted to accepted input
- conv = converters[ prev + " " + tmp[ 0 ] ] ||
- converters[ "* " + tmp[ 0 ] ];
- if ( conv ) {
- // Condense equivalence converters
- if ( conv === true ) {
- conv = converters[ conv2 ];
-
- // Otherwise, insert the intermediate dataType
- } else if ( converters[ conv2 ] !== true ) {
- current = tmp[ 0 ];
- dataTypes.splice( i--, 0, current );
- }
-
- break;
- }
- }
- }
- }
-
- // Apply converter (if not an equivalence)
- if ( conv !== true ) {
-
- // Unless errors are allowed to bubble, catch and return them
- if ( conv && s["throws"] ) {
- response = conv( response );
- } else {
- try {
- response = conv( response );
- } catch ( e ) {
- return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
- }
- }
- }
- }
-
- // Update prev for next iteration
- prev = current;
- }
- }
-
- return { state: "success", data: response };
-}
-// Install script dataType
-jQuery.ajaxSetup({
- accepts: {
- script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
- },
- contents: {
- script: /(?:java|ecma)script/
- },
- converters: {
- "text script": function( text ) {
- jQuery.globalEval( text );
- return text;
- }
- }
-});
-
-// Handle cache's special case and global
-jQuery.ajaxPrefilter( "script", function( s ) {
- if ( s.cache === undefined ) {
- s.cache = false;
- }
- if ( s.crossDomain ) {
- s.type = "GET";
- s.global = false;
- }
-});
-
-// Bind script tag hack transport
-jQuery.ajaxTransport( "script", function(s) {
-
- // This transport only deals with cross domain requests
- if ( s.crossDomain ) {
-
- var script,
- head = document.head || jQuery("head")[0] || document.documentElement;
-
- return {
-
- send: function( _, callback ) {
-
- script = document.createElement("script");
-
- script.async = true;
-
- if ( s.scriptCharset ) {
- script.charset = s.scriptCharset;
- }
-
- script.src = s.url;
-
- // Attach handlers for all browsers
- script.onload = script.onreadystatechange = function( _, isAbort ) {
-
- if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
-
- // Handle memory leak in IE
- script.onload = script.onreadystatechange = null;
-
- // Remove the script
- if ( script.parentNode ) {
- script.parentNode.removeChild( script );
- }
-
- // Dereference the script
- script = null;
-
- // Callback if not abort
- if ( !isAbort ) {
- callback( 200, "success" );
- }
- }
- };
-
- // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
- // Use native DOM manipulation to avoid our domManip AJAX trickery
- head.insertBefore( script, head.firstChild );
- },
-
- abort: function() {
- if ( script ) {
- script.onload( undefined, true );
- }
- }
- };
- }
-});
-var oldCallbacks = [],
- rjsonp = /(=)\?(?=&|$)|\?\?/;
-
-// Default jsonp settings
-jQuery.ajaxSetup({
- jsonp: "callback",
- jsonpCallback: function() {
- var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( ajax_nonce++ ) );
- this[ callback ] = true;
- return callback;
- }
-});
-
-// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
-
- var callbackName, overwritten, responseContainer,
- jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
- "url" :
- typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
- );
-
- // Handle iff the expected data type is "jsonp" or we have a parameter to set
- if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
-
- // Get callback name, remembering preexisting value associated with it
- callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
- s.jsonpCallback() :
- s.jsonpCallback;
-
- // Insert callback into url or form data
- if ( jsonProp ) {
- s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
- } else if ( s.jsonp !== false ) {
- s.url += ( ajax_rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
- }
-
- // Use data converter to retrieve json after script execution
- s.converters["script json"] = function() {
- if ( !responseContainer ) {
- jQuery.error( callbackName + " was not called" );
- }
- return responseContainer[ 0 ];
- };
-
- // force json dataType
- s.dataTypes[ 0 ] = "json";
-
- // Install callback
- overwritten = window[ callbackName ];
- window[ callbackName ] = function() {
- responseContainer = arguments;
- };
-
- // Clean-up function (fires after converters)
- jqXHR.always(function() {
- // Restore preexisting value
- window[ callbackName ] = overwritten;
-
- // Save back as free
- if ( s[ callbackName ] ) {
- // make sure that re-using the options doesn't screw things around
- s.jsonpCallback = originalSettings.jsonpCallback;
-
- // save the callback name for future use
- oldCallbacks.push( callbackName );
- }
-
- // Call if it was a function and we have a response
- if ( responseContainer && jQuery.isFunction( overwritten ) ) {
- overwritten( responseContainer[ 0 ] );
- }
-
- responseContainer = overwritten = undefined;
- });
-
- // Delegate to script
- return "script";
- }
-});
-var xhrCallbacks, xhrSupported,
- xhrId = 0,
- // #5280: Internet Explorer will keep connections alive if we don't abort on unload
- xhrOnUnloadAbort = window.ActiveXObject && function() {
- // Abort all pending requests
- var key;
- for ( key in xhrCallbacks ) {
- xhrCallbacks[ key ]( undefined, true );
- }
- };
-
-// Functions to create xhrs
-function createStandardXHR() {
- try {
- return new window.XMLHttpRequest();
- } catch( e ) {}
-}
-
-function createActiveXHR() {
- try {
- return new window.ActiveXObject("Microsoft.XMLHTTP");
- } catch( e ) {}
-}
-
-// Create the request object
-// (This is still attached to ajaxSettings for backward compatibility)
-jQuery.ajaxSettings.xhr = window.ActiveXObject ?
- /* Microsoft failed to properly
- * implement the XMLHttpRequest in IE7 (can't request local files),
- * so we use the ActiveXObject when it is available
- * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
- * we need a fallback.
- */
- function() {
- return !this.isLocal && createStandardXHR() || createActiveXHR();
- } :
- // For all other browsers, use the standard XMLHttpRequest object
- createStandardXHR;
-
-// Determine support properties
-xhrSupported = jQuery.ajaxSettings.xhr();
-jQuery.support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
-xhrSupported = jQuery.support.ajax = !!xhrSupported;
-
-// Create transport if the browser can provide an xhr
-if ( xhrSupported ) {
-
- jQuery.ajaxTransport(function( s ) {
- // Cross domain only allowed if supported through XMLHttpRequest
- if ( !s.crossDomain || jQuery.support.cors ) {
-
- var callback;
-
- return {
- send: function( headers, complete ) {
-
- // Get a new xhr
- var handle, i,
- xhr = s.xhr();
-
- // Open the socket
- // Passing null username, generates a login popup on Opera (#2865)
- if ( s.username ) {
- xhr.open( s.type, s.url, s.async, s.username, s.password );
- } else {
- xhr.open( s.type, s.url, s.async );
- }
-
- // Apply custom fields if provided
- if ( s.xhrFields ) {
- for ( i in s.xhrFields ) {
- xhr[ i ] = s.xhrFields[ i ];
- }
- }
-
- // Override mime type if needed
- if ( s.mimeType && xhr.overrideMimeType ) {
- xhr.overrideMimeType( s.mimeType );
- }
-
- // X-Requested-With header
- // For cross-domain requests, seeing as conditions for a preflight are
- // akin to a jigsaw puzzle, we simply never set it to be sure.
- // (it can always be set on a per-request basis or even using ajaxSetup)
- // For same-domain requests, won't change header if already provided.
- if ( !s.crossDomain && !headers["X-Requested-With"] ) {
- headers["X-Requested-With"] = "XMLHttpRequest";
- }
-
- // Need an extra try/catch for cross domain requests in Firefox 3
- try {
- for ( i in headers ) {
- xhr.setRequestHeader( i, headers[ i ] );
- }
- } catch( err ) {}
-
- // Do send the request
- // This may raise an exception which is actually
- // handled in jQuery.ajax (so no try/catch here)
- xhr.send( ( s.hasContent && s.data ) || null );
-
- // Listener
- callback = function( _, isAbort ) {
- var status, responseHeaders, statusText, responses;
-
- // Firefox throws exceptions when accessing properties
- // of an xhr when a network error occurred
- // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
- try {
-
- // Was never called and is aborted or complete
- if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
-
- // Only called once
- callback = undefined;
-
- // Do not keep as active anymore
- if ( handle ) {
- xhr.onreadystatechange = jQuery.noop;
- if ( xhrOnUnloadAbort ) {
- delete xhrCallbacks[ handle ];
- }
- }
-
- // If it's an abort
- if ( isAbort ) {
- // Abort it manually if needed
- if ( xhr.readyState !== 4 ) {
- xhr.abort();
- }
- } else {
- responses = {};
- status = xhr.status;
- responseHeaders = xhr.getAllResponseHeaders();
-
- // When requesting binary data, IE6-9 will throw an exception
- // on any attempt to access responseText (#11426)
- if ( typeof xhr.responseText === "string" ) {
- responses.text = xhr.responseText;
- }
-
- // Firefox throws an exception when accessing
- // statusText for faulty cross-domain requests
- try {
- statusText = xhr.statusText;
- } catch( e ) {
- // We normalize with Webkit giving an empty statusText
- statusText = "";
- }
-
- // Filter status for non standard behaviors
-
- // If the request is local and we have data: assume a success
- // (success with no data won't get notified, that's the best we
- // can do given current implementations)
- if ( !status && s.isLocal && !s.crossDomain ) {
- status = responses.text ? 200 : 404;
- // IE - #1450: sometimes returns 1223 when it should be 204
- } else if ( status === 1223 ) {
- status = 204;
- }
- }
- }
- } catch( firefoxAccessException ) {
- if ( !isAbort ) {
- complete( -1, firefoxAccessException );
- }
- }
-
- // Call complete if needed
- if ( responses ) {
- complete( status, statusText, responses, responseHeaders );
- }
- };
-
- if ( !s.async ) {
- // if we're in sync mode we fire the callback
- callback();
- } else if ( xhr.readyState === 4 ) {
- // (IE6 & IE7) if it's in cache and has been
- // retrieved directly we need to fire the callback
- setTimeout( callback );
- } else {
- handle = ++xhrId;
- if ( xhrOnUnloadAbort ) {
- // Create the active xhrs callbacks list if needed
- // and attach the unload handler
- if ( !xhrCallbacks ) {
- xhrCallbacks = {};
- jQuery( window ).unload( xhrOnUnloadAbort );
- }
- // Add to list of active xhrs callbacks
- xhrCallbacks[ handle ] = callback;
- }
- xhr.onreadystatechange = callback;
- }
- },
-
- abort: function() {
- if ( callback ) {
- callback( undefined, true );
- }
- }
- };
- }
- });
-}
-var fxNow, timerId,
- rfxtypes = /^(?:toggle|show|hide)$/,
- rfxnum = new RegExp( "^(?:([+-])=|)(" + core_pnum + ")([a-z%]*)$", "i" ),
- rrun = /queueHooks$/,
- animationPrefilters = [ defaultPrefilter ],
- tweeners = {
- "*": [function( prop, value ) {
- var end, unit,
- tween = this.createTween( prop, value ),
- parts = rfxnum.exec( value ),
- target = tween.cur(),
- start = +target || 0,
- scale = 1,
- maxIterations = 20;
-
- if ( parts ) {
- end = +parts[2];
- unit = parts[3] || ( jQuery.cssNumber[ prop ] ? "" : "px" );
-
- // We need to compute starting value
- if ( unit !== "px" && start ) {
- // Iteratively approximate from a nonzero starting point
- // Prefer the current property, because this process will be trivial if it uses the same units
- // Fallback to end or a simple constant
- start = jQuery.css( tween.elem, prop, true ) || end || 1;
-
- do {
- // If previous iteration zeroed out, double until we get *something*
- // Use a string for doubling factor so we don't accidentally see scale as unchanged below
- scale = scale || ".5";
-
- // Adjust and apply
- start = start / scale;
- jQuery.style( tween.elem, prop, start + unit );
-
- // Update scale, tolerating zero or NaN from tween.cur()
- // And breaking the loop if scale is unchanged or perfect, or if we've just had enough
- } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
- }
-
- tween.unit = unit;
- tween.start = start;
- // If a +=/-= token was provided, we're doing a relative animation
- tween.end = parts[1] ? start + ( parts[1] + 1 ) * end : end;
- }
- return tween;
- }]
- };
-
-// Animations created synchronously will run synchronously
-function createFxNow() {
- setTimeout(function() {
- fxNow = undefined;
- });
- return ( fxNow = jQuery.now() );
-}
-
-function createTweens( animation, props ) {
- jQuery.each( props, function( prop, value ) {
- var collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
- index = 0,
- length = collection.length;
- for ( ; index < length; index++ ) {
- if ( collection[ index ].call( animation, prop, value ) ) {
-
- // we're done with this property
- return;
- }
- }
- });
-}
-
-function Animation( elem, properties, options ) {
- var result,
- stopped,
- index = 0,
- length = animationPrefilters.length,
- deferred = jQuery.Deferred().always( function() {
- // don't match elem in the :animated selector
- delete tick.elem;
- }),
- tick = function() {
- if ( stopped ) {
- return false;
- }
- var currentTime = fxNow || createFxNow(),
- remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
- // archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)
- temp = remaining / animation.duration || 0,
- percent = 1 - temp,
- index = 0,
- length = animation.tweens.length;
-
- for ( ; index < length ; index++ ) {
- animation.tweens[ index ].run( percent );
- }
-
- deferred.notifyWith( elem, [ animation, percent, remaining ]);
-
- if ( percent < 1 && length ) {
- return remaining;
- } else {
- deferred.resolveWith( elem, [ animation ] );
- return false;
- }
- },
- animation = deferred.promise({
- elem: elem,
- props: jQuery.extend( {}, properties ),
- opts: jQuery.extend( true, { specialEasing: {} }, options ),
- originalProperties: properties,
- originalOptions: options,
- startTime: fxNow || createFxNow(),
- duration: options.duration,
- tweens: [],
- createTween: function( prop, end ) {
- var tween = jQuery.Tween( elem, animation.opts, prop, end,
- animation.opts.specialEasing[ prop ] || animation.opts.easing );
- animation.tweens.push( tween );
- return tween;
- },
- stop: function( gotoEnd ) {
- var index = 0,
- // if we are going to the end, we want to run all the tweens
- // otherwise we skip this part
- length = gotoEnd ? animation.tweens.length : 0;
- if ( stopped ) {
- return this;
- }
- stopped = true;
- for ( ; index < length ; index++ ) {
- animation.tweens[ index ].run( 1 );
- }
-
- // resolve when we played the last frame
- // otherwise, reject
- if ( gotoEnd ) {
- deferred.resolveWith( elem, [ animation, gotoEnd ] );
- } else {
- deferred.rejectWith( elem, [ animation, gotoEnd ] );
- }
- return this;
- }
- }),
- props = animation.props;
-
- propFilter( props, animation.opts.specialEasing );
-
- for ( ; index < length ; index++ ) {
- result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
- if ( result ) {
- return result;
- }
- }
-
- createTweens( animation, props );
-
- if ( jQuery.isFunction( animation.opts.start ) ) {
- animation.opts.start.call( elem, animation );
- }
-
- jQuery.fx.timer(
- jQuery.extend( tick, {
- elem: elem,
- anim: animation,
- queue: animation.opts.queue
- })
- );
-
- // attach callbacks from options
- return animation.progress( animation.opts.progress )
- .done( animation.opts.done, animation.opts.complete )
- .fail( animation.opts.fail )
- .always( animation.opts.always );
-}
-
-function propFilter( props, specialEasing ) {
- var value, name, index, easing, hooks;
-
- // camelCase, specialEasing and expand cssHook pass
- for ( index in props ) {
- name = jQuery.camelCase( index );
- easing = specialEasing[ name ];
- value = props[ index ];
- if ( jQuery.isArray( value ) ) {
- easing = value[ 1 ];
- value = props[ index ] = value[ 0 ];
- }
-
- if ( index !== name ) {
- props[ name ] = value;
- delete props[ index ];
- }
-
- hooks = jQuery.cssHooks[ name ];
- if ( hooks && "expand" in hooks ) {
- value = hooks.expand( value );
- delete props[ name ];
-
- // not quite $.extend, this wont overwrite keys already present.
- // also - reusing 'index' from above because we have the correct "name"
- for ( index in value ) {
- if ( !( index in props ) ) {
- props[ index ] = value[ index ];
- specialEasing[ index ] = easing;
- }
- }
- } else {
- specialEasing[ name ] = easing;
- }
- }
-}
-
-jQuery.Animation = jQuery.extend( Animation, {
-
- tweener: function( props, callback ) {
- if ( jQuery.isFunction( props ) ) {
- callback = props;
- props = [ "*" ];
- } else {
- props = props.split(" ");
- }
-
- var prop,
- index = 0,
- length = props.length;
-
- for ( ; index < length ; index++ ) {
- prop = props[ index ];
- tweeners[ prop ] = tweeners[ prop ] || [];
- tweeners[ prop ].unshift( callback );
- }
- },
-
- prefilter: function( callback, prepend ) {
- if ( prepend ) {
- animationPrefilters.unshift( callback );
- } else {
- animationPrefilters.push( callback );
- }
- }
-});
-
-function defaultPrefilter( elem, props, opts ) {
- /*jshint validthis:true */
- var prop, index, length,
- value, dataShow, toggle,
- tween, hooks, oldfire,
- anim = this,
- style = elem.style,
- orig = {},
- handled = [],
- hidden = elem.nodeType && isHidden( elem );
-
- // handle queue: false promises
- if ( !opts.queue ) {
- hooks = jQuery._queueHooks( elem, "fx" );
- if ( hooks.unqueued == null ) {
- hooks.unqueued = 0;
- oldfire = hooks.empty.fire;
- hooks.empty.fire = function() {
- if ( !hooks.unqueued ) {
- oldfire();
- }
- };
- }
- hooks.unqueued++;
-
- anim.always(function() {
- // doing this makes sure that the complete handler will be called
- // before this completes
- anim.always(function() {
- hooks.unqueued--;
- if ( !jQuery.queue( elem, "fx" ).length ) {
- hooks.empty.fire();
- }
- });
- });
- }
-
- // height/width overflow pass
- if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
- // Make sure that nothing sneaks out
- // Record all 3 overflow attributes because IE does not
- // change the overflow attribute when overflowX and
- // overflowY are set to the same value
- opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
-
- // Set display property to inline-block for height/width
- // animations on inline elements that are having width/height animated
- if ( jQuery.css( elem, "display" ) === "inline" &&
- jQuery.css( elem, "float" ) === "none" ) {
-
- // inline-level elements accept inline-block;
- // block-level elements need to be inline with layout
- if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) {
- style.display = "inline-block";
-
- } else {
- style.zoom = 1;
- }
- }
- }
-
- if ( opts.overflow ) {
- style.overflow = "hidden";
- if ( !jQuery.support.shrinkWrapBlocks ) {
- anim.always(function() {
- style.overflow = opts.overflow[ 0 ];
- style.overflowX = opts.overflow[ 1 ];
- style.overflowY = opts.overflow[ 2 ];
- });
- }
- }
-
-
- // show/hide pass
- for ( index in props ) {
- value = props[ index ];
- if ( rfxtypes.exec( value ) ) {
- delete props[ index ];
- toggle = toggle || value === "toggle";
- if ( value === ( hidden ? "hide" : "show" ) ) {
- continue;
- }
- handled.push( index );
- }
- }
-
- length = handled.length;
- if ( length ) {
- dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} );
- if ( "hidden" in dataShow ) {
- hidden = dataShow.hidden;
- }
-
- // store state if its toggle - enables .stop().toggle() to "reverse"
- if ( toggle ) {
- dataShow.hidden = !hidden;
- }
- if ( hidden ) {
- jQuery( elem ).show();
- } else {
- anim.done(function() {
- jQuery( elem ).hide();
- });
- }
- anim.done(function() {
- var prop;
- jQuery._removeData( elem, "fxshow" );
- for ( prop in orig ) {
- jQuery.style( elem, prop, orig[ prop ] );
- }
- });
- for ( index = 0 ; index < length ; index++ ) {
- prop = handled[ index ];
- tween = anim.createTween( prop, hidden ? dataShow[ prop ] : 0 );
- orig[ prop ] = dataShow[ prop ] || jQuery.style( elem, prop );
-
- if ( !( prop in dataShow ) ) {
- dataShow[ prop ] = tween.start;
- if ( hidden ) {
- tween.end = tween.start;
- tween.start = prop === "width" || prop === "height" ? 1 : 0;
- }
- }
- }
- }
-}
-
-function Tween( elem, options, prop, end, easing ) {
- return new Tween.prototype.init( elem, options, prop, end, easing );
-}
-jQuery.Tween = Tween;
-
-Tween.prototype = {
- constructor: Tween,
- init: function( elem, options, prop, end, easing, unit ) {
- this.elem = elem;
- this.prop = prop;
- this.easing = easing || "swing";
- this.options = options;
- this.start = this.now = this.cur();
- this.end = end;
- this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
- },
- cur: function() {
- var hooks = Tween.propHooks[ this.prop ];
-
- return hooks && hooks.get ?
- hooks.get( this ) :
- Tween.propHooks._default.get( this );
- },
- run: function( percent ) {
- var eased,
- hooks = Tween.propHooks[ this.prop ];
-
- if ( this.options.duration ) {
- this.pos = eased = jQuery.easing[ this.easing ](
- percent, this.options.duration * percent, 0, 1, this.options.duration
- );
- } else {
- this.pos = eased = percent;
- }
- this.now = ( this.end - this.start ) * eased + this.start;
-
- if ( this.options.step ) {
- this.options.step.call( this.elem, this.now, this );
- }
-
- if ( hooks && hooks.set ) {
- hooks.set( this );
- } else {
- Tween.propHooks._default.set( this );
- }
- return this;
- }
-};
-
-Tween.prototype.init.prototype = Tween.prototype;
-
-Tween.propHooks = {
- _default: {
- get: function( tween ) {
- var result;
-
- if ( tween.elem[ tween.prop ] != null &&
- (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
- return tween.elem[ tween.prop ];
- }
-
- // passing an empty string as a 3rd parameter to .css will automatically
- // attempt a parseFloat and fallback to a string if the parse fails
- // so, simple values such as "10px" are parsed to Float.
- // complex values such as "rotate(1rad)" are returned as is.
- result = jQuery.css( tween.elem, tween.prop, "" );
- // Empty strings, null, undefined and "auto" are converted to 0.
- return !result || result === "auto" ? 0 : result;
- },
- set: function( tween ) {
- // use step hook for back compat - use cssHook if its there - use .style if its
- // available and use plain properties where available
- if ( jQuery.fx.step[ tween.prop ] ) {
- jQuery.fx.step[ tween.prop ]( tween );
- } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
- jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
- } else {
- tween.elem[ tween.prop ] = tween.now;
- }
- }
- }
-};
-
-// Remove in 2.0 - this supports IE8's panic based approach
-// to setting things on disconnected nodes
-
-Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
- set: function( tween ) {
- if ( tween.elem.nodeType && tween.elem.parentNode ) {
- tween.elem[ tween.prop ] = tween.now;
- }
- }
-};
-
-jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
- var cssFn = jQuery.fn[ name ];
- jQuery.fn[ name ] = function( speed, easing, callback ) {
- return speed == null || typeof speed === "boolean" ?
- cssFn.apply( this, arguments ) :
- this.animate( genFx( name, true ), speed, easing, callback );
- };
-});
-
-jQuery.fn.extend({
- fadeTo: function( speed, to, easing, callback ) {
-
- // show any hidden elements after setting opacity to 0
- return this.filter( isHidden ).css( "opacity", 0 ).show()
-
- // animate to the value specified
- .end().animate({ opacity: to }, speed, easing, callback );
- },
- animate: function( prop, speed, easing, callback ) {
- var empty = jQuery.isEmptyObject( prop ),
- optall = jQuery.speed( speed, easing, callback ),
- doAnimation = function() {
- // Operate on a copy of prop so per-property easing won't be lost
- var anim = Animation( this, jQuery.extend( {}, prop ), optall );
- doAnimation.finish = function() {
- anim.stop( true );
- };
- // Empty animations, or finishing resolves immediately
- if ( empty || jQuery._data( this, "finish" ) ) {
- anim.stop( true );
- }
- };
- doAnimation.finish = doAnimation;
-
- return empty || optall.queue === false ?
- this.each( doAnimation ) :
- this.queue( optall.queue, doAnimation );
- },
- stop: function( type, clearQueue, gotoEnd ) {
- var stopQueue = function( hooks ) {
- var stop = hooks.stop;
- delete hooks.stop;
- stop( gotoEnd );
- };
-
- if ( typeof type !== "string" ) {
- gotoEnd = clearQueue;
- clearQueue = type;
- type = undefined;
- }
- if ( clearQueue && type !== false ) {
- this.queue( type || "fx", [] );
- }
-
- return this.each(function() {
- var dequeue = true,
- index = type != null && type + "queueHooks",
- timers = jQuery.timers,
- data = jQuery._data( this );
-
- if ( index ) {
- if ( data[ index ] && data[ index ].stop ) {
- stopQueue( data[ index ] );
- }
- } else {
- for ( index in data ) {
- if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
- stopQueue( data[ index ] );
- }
- }
- }
-
- for ( index = timers.length; index--; ) {
- if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
- timers[ index ].anim.stop( gotoEnd );
- dequeue = false;
- timers.splice( index, 1 );
- }
- }
-
- // start the next in the queue if the last step wasn't forced
- // timers currently will call their complete callbacks, which will dequeue
- // but only if they were gotoEnd
- if ( dequeue || !gotoEnd ) {
- jQuery.dequeue( this, type );
- }
- });
- },
- finish: function( type ) {
- if ( type !== false ) {
- type = type || "fx";
- }
- return this.each(function() {
- var index,
- data = jQuery._data( this ),
- queue = data[ type + "queue" ],
- hooks = data[ type + "queueHooks" ],
- timers = jQuery.timers,
- length = queue ? queue.length : 0;
-
- // enable finishing flag on private data
- data.finish = true;
-
- // empty the queue first
- jQuery.queue( this, type, [] );
-
- if ( hooks && hooks.cur && hooks.cur.finish ) {
- hooks.cur.finish.call( this );
- }
-
- // look for any active animations, and finish them
- for ( index = timers.length; index--; ) {
- if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
- timers[ index ].anim.stop( true );
- timers.splice( index, 1 );
- }
- }
-
- // look for any animations in the old queue and finish them
- for ( index = 0; index < length; index++ ) {
- if ( queue[ index ] && queue[ index ].finish ) {
- queue[ index ].finish.call( this );
- }
- }
-
- // turn off finishing flag
- delete data.finish;
- });
- }
-});
-
-// Generate parameters to create a standard animation
-function genFx( type, includeWidth ) {
- var which,
- attrs = { height: type },
- i = 0;
-
- // if we include width, step value is 1 to do all cssExpand values,
- // if we don't include width, step value is 2 to skip over Left and Right
- includeWidth = includeWidth? 1 : 0;
- for( ; i < 4 ; i += 2 - includeWidth ) {
- which = cssExpand[ i ];
- attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
- }
-
- if ( includeWidth ) {
- attrs.opacity = attrs.width = type;
- }
-
- return attrs;
-}
-
-// Generate shortcuts for custom animations
-jQuery.each({
- slideDown: genFx("show"),
- slideUp: genFx("hide"),
- slideToggle: genFx("toggle"),
- fadeIn: { opacity: "show" },
- fadeOut: { opacity: "hide" },
- fadeToggle: { opacity: "toggle" }
-}, function( name, props ) {
- jQuery.fn[ name ] = function( speed, easing, callback ) {
- return this.animate( props, speed, easing, callback );
- };
-});
-
-jQuery.speed = function( speed, easing, fn ) {
- var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
- complete: fn || !fn && easing ||
- jQuery.isFunction( speed ) && speed,
- duration: speed,
- easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
- };
-
- opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
- opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
-
- // normalize opt.queue - true/undefined/null -> "fx"
- if ( opt.queue == null || opt.queue === true ) {
- opt.queue = "fx";
- }
-
- // Queueing
- opt.old = opt.complete;
-
- opt.complete = function() {
- if ( jQuery.isFunction( opt.old ) ) {
- opt.old.call( this );
- }
-
- if ( opt.queue ) {
- jQuery.dequeue( this, opt.queue );
- }
- };
-
- return opt;
-};
-
-jQuery.easing = {
- linear: function( p ) {
- return p;
- },
- swing: function( p ) {
- return 0.5 - Math.cos( p*Math.PI ) / 2;
- }
-};
-
-jQuery.timers = [];
-jQuery.fx = Tween.prototype.init;
-jQuery.fx.tick = function() {
- var timer,
- timers = jQuery.timers,
- i = 0;
-
- fxNow = jQuery.now();
-
- for ( ; i < timers.length; i++ ) {
- timer = timers[ i ];
- // Checks the timer has not already been removed
- if ( !timer() && timers[ i ] === timer ) {
- timers.splice( i--, 1 );
- }
- }
-
- if ( !timers.length ) {
- jQuery.fx.stop();
- }
- fxNow = undefined;
-};
-
-jQuery.fx.timer = function( timer ) {
- if ( timer() && jQuery.timers.push( timer ) ) {
- jQuery.fx.start();
- }
-};
-
-jQuery.fx.interval = 13;
-
-jQuery.fx.start = function() {
- if ( !timerId ) {
- timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
- }
-};
-
-jQuery.fx.stop = function() {
- clearInterval( timerId );
- timerId = null;
-};
-
-jQuery.fx.speeds = {
- slow: 600,
- fast: 200,
- // Default speed
- _default: 400
-};
-
-// Back Compat <1.8 extension point
-jQuery.fx.step = {};
-
-if ( jQuery.expr && jQuery.expr.filters ) {
- jQuery.expr.filters.animated = function( elem ) {
- return jQuery.grep(jQuery.timers, function( fn ) {
- return elem === fn.elem;
- }).length;
- };
-}
-jQuery.fn.offset = function( options ) {
- if ( arguments.length ) {
- return options === undefined ?
- this :
- this.each(function( i ) {
- jQuery.offset.setOffset( this, options, i );
- });
- }
-
- var docElem, win,
- box = { top: 0, left: 0 },
- elem = this[ 0 ],
- doc = elem && elem.ownerDocument;
-
- if ( !doc ) {
- return;
- }
-
- docElem = doc.documentElement;
-
- // Make sure it's not a disconnected DOM node
- if ( !jQuery.contains( docElem, elem ) ) {
- return box;
- }
-
- // If we don't have gBCR, just use 0,0 rather than error
- // BlackBerry 5, iOS 3 (original iPhone)
- if ( typeof elem.getBoundingClientRect !== core_strundefined ) {
- box = elem.getBoundingClientRect();
- }
- win = getWindow( doc );
- return {
- top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),
- left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
- };
-};
-
-jQuery.offset = {
-
- setOffset: function( elem, options, i ) {
- var position = jQuery.css( elem, "position" );
-
- // set position first, in-case top/left are set even on static elem
- if ( position === "static" ) {
- elem.style.position = "relative";
- }
-
- var curElem = jQuery( elem ),
- curOffset = curElem.offset(),
- curCSSTop = jQuery.css( elem, "top" ),
- curCSSLeft = jQuery.css( elem, "left" ),
- calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
- props = {}, curPosition = {}, curTop, curLeft;
-
- // 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 ) ) {
- options = options.call( elem, i, 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({
-
- position: function() {
- if ( !this[ 0 ] ) {
- return;
- }
-
- var offsetParent, offset,
- parentOffset = { top: 0, left: 0 },
- elem = this[ 0 ];
-
- // fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
- if ( jQuery.css( elem, "position" ) === "fixed" ) {
- // we assume that getBoundingClientRect is available when computed position is fixed
- offset = elem.getBoundingClientRect();
- } else {
- // Get *real* offsetParent
- offsetParent = this.offsetParent();
-
- // Get correct offsets
- offset = this.offset();
- if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
- parentOffset = offsetParent.offset();
- }
-
- // Add offsetParent borders
- parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
- parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
- }
-
- // Subtract parent offsets and element margins
- // note: when an element has margin: auto the offsetLeft and marginLeft
- // are the same in Safari causing offset.left to incorrectly be 0
- return {
- top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
- left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true)
- };
- },
-
- offsetParent: function() {
- return this.map(function() {
- var offsetParent = this.offsetParent || document.documentElement;
- while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position") === "static" ) ) {
- offsetParent = offsetParent.offsetParent;
- }
- return offsetParent || document.documentElement;
- });
- }
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
- var top = /Y/.test( prop );
-
- jQuery.fn[ method ] = function( val ) {
- return jQuery.access( this, function( elem, method, val ) {
- var win = getWindow( elem );
-
- if ( val === undefined ) {
- return win ? (prop in win) ? win[ prop ] :
- win.document.documentElement[ method ] :
- elem[ method ];
- }
-
- if ( win ) {
- win.scrollTo(
- !top ? val : jQuery( win ).scrollLeft(),
- top ? val : jQuery( win ).scrollTop()
- );
-
- } else {
- elem[ method ] = val;
- }
- }, method, val, arguments.length, null );
- };
-});
-
-function getWindow( elem ) {
- return jQuery.isWindow( elem ) ?
- elem :
- elem.nodeType === 9 ?
- elem.defaultView || elem.parentWindow :
- false;
-}
-// 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 jQuery.access( this, function( elem, type, value ) {
- var doc;
-
- if ( jQuery.isWindow( elem ) ) {
- // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
- // isn't a whole lot we can do. See pull request at this URL for discussion:
- // https://github.com/jquery/jquery/pull/764
- return 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
- // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.
- 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, null );
- };
- });
-});
-// Limit scope pollution from any deprecated API
-// (function() {
-
-// })();
-// Expose jQuery to the global object
-window.jQuery = window.$ = jQuery;
-
-// Expose jQuery as an AMD module, but only for AMD loaders that
-// understand the issues with loading multiple versions of jQuery
-// in a page that all might call define(). The loader will indicate
-// they have special allowances for multiple jQuery versions by
-// specifying define.amd.jQuery = true. Register as a named module,
-// since jQuery can be concatenated with other files that may use define,
-// but not use 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.
-if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
- define( "jquery", [], function () { return jQuery; } );
-}
-
-})( window );
diff --git a/foundation/javascripts/vendor/zepto.js b/foundation/javascripts/vendor/zepto.js
deleted file mode 100644
index 5e453a2..0000000
--- a/foundation/javascripts/vendor/zepto.js
+++ /dev/null
@@ -1,1884 +0,0 @@
-/* Zepto v1.0-1-ga3cab6c - polyfill zepto detect event ajax form fx - zeptojs.com/license */
-
-
-;(function(undefined){
- if (String.prototype.trim === undefined) // fix for iOS 3.2
- String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g, '') }
-
- // For iOS 3.x
- // from https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce
- if (Array.prototype.reduce === undefined)
- Array.prototype.reduce = function(fun){
- if(this === void 0 || this === null) throw new TypeError()
- var t = Object(this), len = t.length >>> 0, k = 0, accumulator
- if(typeof fun != 'function') throw new TypeError()
- if(len == 0 && arguments.length == 1) throw new TypeError()
-
- if(arguments.length >= 2)
- accumulator = arguments[1]
- else
- do{
- if(k in t){
- accumulator = t[k++]
- break
- }
- if(++k >= len) throw new TypeError()
- } while (true)
-
- while (k < len){
- if(k in t) accumulator = fun.call(undefined, accumulator, t[k], k, t)
- k++
- }
- return accumulator
- }
-
-})()
-
-var Zepto = (function() {
- var undefined, key, $, classList, emptyArray = [], slice = emptyArray.slice, filter = emptyArray.filter,
- document = window.document,
- elementDisplay = {}, classCache = {},
- getComputedStyle = document.defaultView.getComputedStyle,
- cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },
- fragmentRE = /^\s*<(\w+|!)[^>]*>/,
- tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
- rootNodeRE = /^(?:body|html)$/i,
-
- // special attributes that should be get/set via method calls
- methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],
-
- adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],
- table = document.createElement('table'),
- tableRow = document.createElement('tr'),
- containers = {
- 'tr': document.createElement('tbody'),
- 'tbody': table, 'thead': table, 'tfoot': table,
- 'td': tableRow, 'th': tableRow,
- '*': document.createElement('div')
- },
- readyRE = /complete|loaded|interactive/,
- classSelectorRE = /^\.([\w-]+)$/,
- idSelectorRE = /^#([\w-]*)$/,
- tagSelectorRE = /^[\w-]+$/,
- class2type = {},
- toString = class2type.toString,
- zepto = {},
- camelize, uniq,
- tempParent = document.createElement('div')
-
- zepto.matches = function(element, selector) {
- if (!element || element.nodeType !== 1) return false
- var matchesSelector = element.webkitMatchesSelector || element.mozMatchesSelector ||
- element.oMatchesSelector || element.matchesSelector
- if (matchesSelector) return matchesSelector.call(element, selector)
- // fall back to performing a selector:
- var match, parent = element.parentNode, temp = !parent
- if (temp) (parent = tempParent).appendChild(element)
- match = ~zepto.qsa(parent, selector).indexOf(element)
- temp && tempParent.removeChild(element)
- return match
- }
-
- function type(obj) {
- return obj == null ? String(obj) :
- class2type[toString.call(obj)] || "object"
- }
-
- function isFunction(value) { return type(value) == "function" }
- function isWindow(obj) { return obj != null && obj == obj.window }
- function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }
- function isObject(obj) { return type(obj) == "object" }
- function isPlainObject(obj) {
- return isObject(obj) && !isWindow(obj) && obj.__proto__ == Object.prototype
- }
- function isArray(value) { return value instanceof Array }
- function likeArray(obj) { return typeof obj.length == 'number' }
-
- function compact(array) { return filter.call(array, function(item){ return item != null }) }
- function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }
- camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }
- function dasherize(str) {
- return str.replace(/::/g, '/')
- .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
- .replace(/([a-z\d])([A-Z])/g, '$1_$2')
- .replace(/_/g, '-')
- .toLowerCase()
- }
- uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }
-
- function classRE(name) {
- return name in classCache ?
- classCache[name] : (classCache[name] = new RegExp('(^|\\s)' + name + '(\\s|$)'))
- }
-
- function maybeAddPx(name, value) {
- return (typeof value == "number" && !cssNumber[dasherize(name)]) ? value + "px" : value
- }
-
- function defaultDisplay(nodeName) {
- var element, display
- if (!elementDisplay[nodeName]) {
- element = document.createElement(nodeName)
- document.body.appendChild(element)
- display = getComputedStyle(element, '').getPropertyValue("display")
- element.parentNode.removeChild(element)
- display == "none" && (display = "block")
- elementDisplay[nodeName] = display
- }
- return elementDisplay[nodeName]
- }
-
- function children(element) {
- return 'children' in element ?
- slice.call(element.children) :
- $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })
- }
-
- // `$.zepto.fragment` takes a html string and an optional tag name
- // to generate DOM nodes nodes from the given html string.
- // The generated DOM nodes are returned as an array.
- // This function can be overriden in plugins for example to make
- // it compatible with browsers that don't support the DOM fully.
- zepto.fragment = function(html, name, properties) {
- if (html.replace) html = html.replace(tagExpanderRE, "<$1>$2>")
- if (name === undefined) name = fragmentRE.test(html) && RegExp.$1
- if (!(name in containers)) name = '*'
-
- var nodes, dom, container = containers[name]
- container.innerHTML = '' + html
- dom = $.each(slice.call(container.childNodes), function(){
- container.removeChild(this)
- })
- if (isPlainObject(properties)) {
- nodes = $(dom)
- $.each(properties, function(key, value) {
- if (methodAttributes.indexOf(key) > -1) nodes[key](value)
- else nodes.attr(key, value)
- })
- }
- return dom
- }
-
- // `$.zepto.Z` swaps out the prototype of the given `dom` array
- // of nodes with `$.fn` and thus supplying all the Zepto functions
- // to the array. Note that `__proto__` is not supported on Internet
- // Explorer. This method can be overriden in plugins.
- zepto.Z = function(dom, selector) {
- dom = dom || []
- dom.__proto__ = $.fn
- dom.selector = selector || ''
- return dom
- }
-
- // `$.zepto.isZ` should return `true` if the given object is a Zepto
- // collection. This method can be overriden in plugins.
- zepto.isZ = function(object) {
- return object instanceof zepto.Z
- }
-
- // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and
- // takes a CSS selector and an optional context (and handles various
- // special cases).
- // This method can be overriden in plugins.
- zepto.init = function(selector, context) {
- // If nothing given, return an empty Zepto collection
- if (!selector) return zepto.Z()
- // If a function is given, call it when the DOM is ready
- else if (isFunction(selector)) return $(document).ready(selector)
- // If a Zepto collection is given, juts return it
- else if (zepto.isZ(selector)) return selector
- else {
- var dom
- // normalize array if an array of nodes is given
- if (isArray(selector)) dom = compact(selector)
- // Wrap DOM nodes. If a plain object is given, duplicate it.
- else if (isObject(selector))
- dom = [isPlainObject(selector) ? $.extend({}, selector) : selector], selector = null
- // If it's a html fragment, create nodes from it
- else if (fragmentRE.test(selector))
- dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null
- // If there's a context, create a collection on that context first, and select
- // nodes from there
- else if (context !== undefined) return $(context).find(selector)
- // And last but no least, if it's a CSS selector, use it to select nodes.
- else dom = zepto.qsa(document, selector)
- // create a new Zepto collection from the nodes found
- return zepto.Z(dom, selector)
- }
- }
-
- // `$` will be the base `Zepto` object. When calling this
- // function just call `$.zepto.init, which makes the implementation
- // details of selecting nodes and creating Zepto collections
- // patchable in plugins.
- $ = function(selector, context){
- return zepto.init(selector, context)
- }
-
- function extend(target, source, deep) {
- for (key in source)
- if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {
- if (isPlainObject(source[key]) && !isPlainObject(target[key]))
- target[key] = {}
- if (isArray(source[key]) && !isArray(target[key]))
- target[key] = []
- extend(target[key], source[key], deep)
- }
- else if (source[key] !== undefined) target[key] = source[key]
- }
-
- // Copy all but undefined properties from one or more
- // objects to the `target` object.
- $.extend = function(target){
- var deep, args = slice.call(arguments, 1)
- if (typeof target == 'boolean') {
- deep = target
- target = args.shift()
- }
- args.forEach(function(arg){ extend(target, arg, deep) })
- return target
- }
-
- // `$.zepto.qsa` is Zepto's CSS selector implementation which
- // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.
- // This method can be overriden in plugins.
- zepto.qsa = function(element, selector){
- var found
- return (isDocument(element) && idSelectorRE.test(selector)) ?
- ( (found = element.getElementById(RegExp.$1)) ? [found] : [] ) :
- (element.nodeType !== 1 && element.nodeType !== 9) ? [] :
- slice.call(
- classSelectorRE.test(selector) ? element.getElementsByClassName(RegExp.$1) :
- tagSelectorRE.test(selector) ? element.getElementsByTagName(selector) :
- element.querySelectorAll(selector)
- )
- }
-
- function filtered(nodes, selector) {
- return selector === undefined ? $(nodes) : $(nodes).filter(selector)
- }
-
- $.contains = function(parent, node) {
- return parent !== node && parent.contains(node)
- }
-
- function funcArg(context, arg, idx, payload) {
- return isFunction(arg) ? arg.call(context, idx, payload) : arg
- }
-
- function setAttribute(node, name, value) {
- value == null ? node.removeAttribute(name) : node.setAttribute(name, value)
- }
-
- // access className property while respecting SVGAnimatedString
- function className(node, value){
- var klass = node.className,
- svg = klass && klass.baseVal !== undefined
-
- if (value === undefined) return svg ? klass.baseVal : klass
- svg ? (klass.baseVal = value) : (node.className = value)
- }
-
- // "true" => true
- // "false" => false
- // "null" => null
- // "42" => 42
- // "42.5" => 42.5
- // JSON => parse if valid
- // String => self
- function deserializeValue(value) {
- var num
- try {
- return value ?
- value == "true" ||
- ( value == "false" ? false :
- value == "null" ? null :
- !isNaN(num = Number(value)) ? num :
- /^[\[\{]/.test(value) ? $.parseJSON(value) :
- value )
- : value
- } catch(e) {
- return value
- }
- }
-
- $.type = type
- $.isFunction = isFunction
- $.isWindow = isWindow
- $.isArray = isArray
- $.isPlainObject = isPlainObject
-
- $.isEmptyObject = function(obj) {
- var name
- for (name in obj) return false
- return true
- }
-
- $.inArray = function(elem, array, i){
- return emptyArray.indexOf.call(array, elem, i)
- }
-
- $.camelCase = camelize
- $.trim = function(str) { return str.trim() }
-
- // plugin compatibility
- $.uuid = 0
- $.support = { }
- $.expr = { }
-
- $.map = function(elements, callback){
- var value, values = [], i, key
- if (likeArray(elements))
- for (i = 0; i < elements.length; i++) {
- value = callback(elements[i], i)
- if (value != null) values.push(value)
- }
- else
- for (key in elements) {
- value = callback(elements[key], key)
- if (value != null) values.push(value)
- }
- return flatten(values)
- }
-
- $.each = function(elements, callback){
- var i, key
- if (likeArray(elements)) {
- for (i = 0; i < elements.length; i++)
- if (callback.call(elements[i], i, elements[i]) === false) return elements
- } else {
- for (key in elements)
- if (callback.call(elements[key], key, elements[key]) === false) return elements
- }
-
- return elements
- }
-
- $.grep = function(elements, callback){
- return filter.call(elements, callback)
- }
-
- if (window.JSON) $.parseJSON = JSON.parse
-
- // Populate the class2type map
- $.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
- class2type[ "[object " + name + "]" ] = name.toLowerCase()
- })
-
- // Define methods that will be available on all
- // Zepto collections
- $.fn = {
- // Because a collection acts like an array
- // copy over these useful array functions.
- forEach: emptyArray.forEach,
- reduce: emptyArray.reduce,
- push: emptyArray.push,
- sort: emptyArray.sort,
- indexOf: emptyArray.indexOf,
- concat: emptyArray.concat,
-
- // `map` and `slice` in the jQuery API work differently
- // from their array counterparts
- map: function(fn){
- return $($.map(this, function(el, i){ return fn.call(el, i, el) }))
- },
- slice: function(){
- return $(slice.apply(this, arguments))
- },
-
- ready: function(callback){
- if (readyRE.test(document.readyState)) callback($)
- else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)
- return this
- },
- get: function(idx){
- return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]
- },
- toArray: function(){ return this.get() },
- size: function(){
- return this.length
- },
- remove: function(){
- return this.each(function(){
- if (this.parentNode != null)
- this.parentNode.removeChild(this)
- })
- },
- each: function(callback){
- emptyArray.every.call(this, function(el, idx){
- return callback.call(el, idx, el) !== false
- })
- return this
- },
- filter: function(selector){
- if (isFunction(selector)) return this.not(this.not(selector))
- return $(filter.call(this, function(element){
- return zepto.matches(element, selector)
- }))
- },
- add: function(selector,context){
- return $(uniq(this.concat($(selector,context))))
- },
- is: function(selector){
- return this.length > 0 && zepto.matches(this[0], selector)
- },
- not: function(selector){
- var nodes=[]
- if (isFunction(selector) && selector.call !== undefined)
- this.each(function(idx){
- if (!selector.call(this,idx)) nodes.push(this)
- })
- else {
- var excludes = typeof selector == 'string' ? this.filter(selector) :
- (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)
- this.forEach(function(el){
- if (excludes.indexOf(el) < 0) nodes.push(el)
- })
- }
- return $(nodes)
- },
- has: function(selector){
- return this.filter(function(){
- return isObject(selector) ?
- $.contains(this, selector) :
- $(this).find(selector).size()
- })
- },
- eq: function(idx){
- return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)
- },
- first: function(){
- var el = this[0]
- return el && !isObject(el) ? el : $(el)
- },
- last: function(){
- var el = this[this.length - 1]
- return el && !isObject(el) ? el : $(el)
- },
- find: function(selector){
- var result, $this = this
- if (typeof selector == 'object')
- result = $(selector).filter(function(){
- var node = this
- return emptyArray.some.call($this, function(parent){
- return $.contains(parent, node)
- })
- })
- else if (this.length == 1) result = $(zepto.qsa(this[0], selector))
- else result = this.map(function(){ return zepto.qsa(this, selector) })
- return result
- },
- closest: function(selector, context){
- var node = this[0], collection = false
- if (typeof selector == 'object') collection = $(selector)
- while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))
- node = node !== context && !isDocument(node) && node.parentNode
- return $(node)
- },
- parents: function(selector){
- var ancestors = [], nodes = this
- while (nodes.length > 0)
- nodes = $.map(nodes, function(node){
- if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {
- ancestors.push(node)
- return node
- }
- })
- return filtered(ancestors, selector)
- },
- parent: function(selector){
- return filtered(uniq(this.pluck('parentNode')), selector)
- },
- children: function(selector){
- return filtered(this.map(function(){ return children(this) }), selector)
- },
- contents: function() {
- return this.map(function() { return slice.call(this.childNodes) })
- },
- siblings: function(selector){
- return filtered(this.map(function(i, el){
- return filter.call(children(el.parentNode), function(child){ return child!==el })
- }), selector)
- },
- empty: function(){
- return this.each(function(){ this.innerHTML = '' })
- },
- // `pluck` is borrowed from Prototype.js
- pluck: function(property){
- return $.map(this, function(el){ return el[property] })
- },
- show: function(){
- return this.each(function(){
- this.style.display == "none" && (this.style.display = null)
- if (getComputedStyle(this, '').getPropertyValue("display") == "none")
- this.style.display = defaultDisplay(this.nodeName)
- })
- },
- replaceWith: function(newContent){
- return this.before(newContent).remove()
- },
- wrap: function(structure){
- var func = isFunction(structure)
- if (this[0] && !func)
- var dom = $(structure).get(0),
- clone = dom.parentNode || this.length > 1
-
- return this.each(function(index){
- $(this).wrapAll(
- func ? structure.call(this, index) :
- clone ? dom.cloneNode(true) : dom
- )
- })
- },
- wrapAll: function(structure){
- if (this[0]) {
- $(this[0]).before(structure = $(structure))
- var children
- // drill down to the inmost element
- while ((children = structure.children()).length) structure = children.first()
- $(structure).append(this)
- }
- return this
- },
- wrapInner: function(structure){
- var func = isFunction(structure)
- return this.each(function(index){
- var self = $(this), contents = self.contents(),
- dom = func ? structure.call(this, index) : structure
- contents.length ? contents.wrapAll(dom) : self.append(dom)
- })
- },
- unwrap: function(){
- this.parent().each(function(){
- $(this).replaceWith($(this).children())
- })
- return this
- },
- clone: function(){
- return this.map(function(){ return this.cloneNode(true) })
- },
- hide: function(){
- return this.css("display", "none")
- },
- toggle: function(setting){
- return this.each(function(){
- var el = $(this)
- ;(setting === undefined ? el.css("display") == "none" : setting) ? el.show() : el.hide()
- })
- },
- prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },
- next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },
- html: function(html){
- return html === undefined ?
- (this.length > 0 ? this[0].innerHTML : null) :
- this.each(function(idx){
- var originHtml = this.innerHTML
- $(this).empty().append( funcArg(this, html, idx, originHtml) )
- })
- },
- text: function(text){
- return text === undefined ?
- (this.length > 0 ? this[0].textContent : null) :
- this.each(function(){ this.textContent = text })
- },
- attr: function(name, value){
- var result
- return (typeof name == 'string' && value === undefined) ?
- (this.length == 0 || this[0].nodeType !== 1 ? undefined :
- (name == 'value' && this[0].nodeName == 'INPUT') ? this.val() :
- (!(result = this[0].getAttribute(name)) && name in this[0]) ? this[0][name] : result
- ) :
- this.each(function(idx){
- if (this.nodeType !== 1) return
- if (isObject(name)) for (key in name) setAttribute(this, key, name[key])
- else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))
- })
- },
- removeAttr: function(name){
- return this.each(function(){ this.nodeType === 1 && setAttribute(this, name) })
- },
- prop: function(name, value){
- return (value === undefined) ?
- (this[0] && this[0][name]) :
- this.each(function(idx){
- this[name] = funcArg(this, value, idx, this[name])
- })
- },
- data: function(name, value){
- var data = this.attr('data-' + dasherize(name), value)
- return data !== null ? deserializeValue(data) : undefined
- },
- val: function(value){
- return (value === undefined) ?
- (this[0] && (this[0].multiple ?
- $(this[0]).find('option').filter(function(o){ return this.selected }).pluck('value') :
- this[0].value)
- ) :
- this.each(function(idx){
- this.value = funcArg(this, value, idx, this.value)
- })
- },
- offset: function(coordinates){
- if (coordinates) return this.each(function(index){
- var $this = $(this),
- coords = funcArg(this, coordinates, index, $this.offset()),
- parentOffset = $this.offsetParent().offset(),
- props = {
- top: coords.top - parentOffset.top,
- left: coords.left - parentOffset.left
- }
-
- if ($this.css('position') == 'static') props['position'] = 'relative'
- $this.css(props)
- })
- if (this.length==0) return null
- var obj = this[0].getBoundingClientRect()
- return {
- left: obj.left + window.pageXOffset,
- top: obj.top + window.pageYOffset,
- width: Math.round(obj.width),
- height: Math.round(obj.height)
- }
- },
- css: function(property, value){
- if (arguments.length < 2 && typeof property == 'string')
- return this[0] && (this[0].style[camelize(property)] || getComputedStyle(this[0], '').getPropertyValue(property))
-
- var css = ''
- if (type(property) == 'string') {
- if (!value && value !== 0)
- this.each(function(){ this.style.removeProperty(dasherize(property)) })
- else
- css = dasherize(property) + ":" + maybeAddPx(property, value)
- } else {
- for (key in property)
- if (!property[key] && property[key] !== 0)
- this.each(function(){ this.style.removeProperty(dasherize(key)) })
- else
- css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'
- }
-
- return this.each(function(){ this.style.cssText += ';' + css })
- },
- index: function(element){
- return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])
- },
- hasClass: function(name){
- return emptyArray.some.call(this, function(el){
- return this.test(className(el))
- }, classRE(name))
- },
- addClass: function(name){
- return this.each(function(idx){
- classList = []
- var cls = className(this), newName = funcArg(this, name, idx, cls)
- newName.split(/\s+/g).forEach(function(klass){
- if (!$(this).hasClass(klass)) classList.push(klass)
- }, this)
- classList.length && className(this, cls + (cls ? " " : "") + classList.join(" "))
- })
- },
- removeClass: function(name){
- return this.each(function(idx){
- if (name === undefined) return className(this, '')
- classList = className(this)
- funcArg(this, name, idx, classList).split(/\s+/g).forEach(function(klass){
- classList = classList.replace(classRE(klass), " ")
- })
- className(this, classList.trim())
- })
- },
- toggleClass: function(name, when){
- return this.each(function(idx){
- var $this = $(this), names = funcArg(this, name, idx, className(this))
- names.split(/\s+/g).forEach(function(klass){
- (when === undefined ? !$this.hasClass(klass) : when) ?
- $this.addClass(klass) : $this.removeClass(klass)
- })
- })
- },
- scrollTop: function(){
- if (!this.length) return
- return ('scrollTop' in this[0]) ? this[0].scrollTop : this[0].scrollY
- },
- position: function() {
- if (!this.length) return
-
- var elem = this[0],
- // Get *real* offsetParent
- offsetParent = this.offsetParent(),
- // Get correct offsets
- offset = this.offset(),
- parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()
-
- // Subtract element margins
- // note: when an element has margin: auto the offsetLeft and marginLeft
- // are the same in Safari causing offset.left to incorrectly be 0
- offset.top -= parseFloat( $(elem).css('margin-top') ) || 0
- offset.left -= parseFloat( $(elem).css('margin-left') ) || 0
-
- // Add offsetParent borders
- parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0
- parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0
-
- // Subtract the two offsets
- return {
- top: offset.top - parentOffset.top,
- left: offset.left - parentOffset.left
- }
- },
- offsetParent: function() {
- return this.map(function(){
- var parent = this.offsetParent || document.body
- while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static")
- parent = parent.offsetParent
- return parent
- })
- }
- }
-
- // for now
- $.fn.detach = $.fn.remove
-
- // Generate the `width` and `height` functions
- ;['width', 'height'].forEach(function(dimension){
- $.fn[dimension] = function(value){
- var offset, el = this[0],
- Dimension = dimension.replace(/./, function(m){ return m[0].toUpperCase() })
- if (value === undefined) return isWindow(el) ? el['inner' + Dimension] :
- isDocument(el) ? el.documentElement['offset' + Dimension] :
- (offset = this.offset()) && offset[dimension]
- else return this.each(function(idx){
- el = $(this)
- el.css(dimension, funcArg(this, value, idx, el[dimension]()))
- })
- }
- })
-
- function traverseNode(node, fun) {
- fun(node)
- for (var key in node.childNodes) traverseNode(node.childNodes[key], fun)
- }
-
- // Generate the `after`, `prepend`, `before`, `append`,
- // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.
- adjacencyOperators.forEach(function(operator, operatorIndex) {
- var inside = operatorIndex % 2 //=> prepend, append
-
- $.fn[operator] = function(){
- // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings
- var argType, nodes = $.map(arguments, function(arg) {
- argType = type(arg)
- return argType == "object" || argType == "array" || arg == null ?
- arg : zepto.fragment(arg)
- }),
- parent, copyByClone = this.length > 1
- if (nodes.length < 1) return this
-
- return this.each(function(_, target){
- parent = inside ? target : target.parentNode
-
- // convert all methods to a "before" operation
- target = operatorIndex == 0 ? target.nextSibling :
- operatorIndex == 1 ? target.firstChild :
- operatorIndex == 2 ? target :
- null
-
- nodes.forEach(function(node){
- if (copyByClone) node = node.cloneNode(true)
- else if (!parent) return $(node).remove()
-
- traverseNode(parent.insertBefore(node, target), function(el){
- if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&
- (!el.type || el.type === 'text/javascript') && !el.src)
- window['eval'].call(window, el.innerHTML)
- })
- })
- })
- }
-
- // after => insertAfter
- // prepend => prependTo
- // before => insertBefore
- // append => appendTo
- $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){
- $(html)[operator](this)
- return this
- }
- })
-
- zepto.Z.prototype = $.fn
-
- // Export internal API functions in the `$.zepto` namespace
- zepto.uniq = uniq
- zepto.deserializeValue = deserializeValue
- $.zepto = zepto
-
- return $
-})()
-
-window.Zepto = Zepto
-'$' in window || (window.$ = Zepto)
-
-;(function($){
- function detect(ua){
- var os = this.os = {}, browser = this.browser = {},
- webkit = ua.match(/WebKit\/([\d.]+)/),
- android = ua.match(/(Android)\s+([\d.]+)/),
- ipad = ua.match(/(iPad).*OS\s([\d_]+)/),
- iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/),
- webos = ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),
- touchpad = webos && ua.match(/TouchPad/),
- kindle = ua.match(/Kindle\/([\d.]+)/),
- silk = ua.match(/Silk\/([\d._]+)/),
- blackberry = ua.match(/(BlackBerry).*Version\/([\d.]+)/),
- bb10 = ua.match(/(BB10).*Version\/([\d.]+)/),
- rimtabletos = ua.match(/(RIM\sTablet\sOS)\s([\d.]+)/),
- playbook = ua.match(/PlayBook/),
- chrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/),
- firefox = ua.match(/Firefox\/([\d.]+)/)
-
- // Todo: clean this up with a better OS/browser seperation:
- // - discern (more) between multiple browsers on android
- // - decide if kindle fire in silk mode is android or not
- // - Firefox on Android doesn't specify the Android version
- // - possibly devide in os, device and browser hashes
-
- if (browser.webkit = !!webkit) browser.version = webkit[1]
-
- if (android) os.android = true, os.version = android[2]
- if (iphone) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.')
- if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.')
- if (webos) os.webos = true, os.version = webos[2]
- if (touchpad) os.touchpad = true
- if (blackberry) os.blackberry = true, os.version = blackberry[2]
- if (bb10) os.bb10 = true, os.version = bb10[2]
- if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2]
- if (playbook) browser.playbook = true
- if (kindle) os.kindle = true, os.version = kindle[1]
- if (silk) browser.silk = true, browser.version = silk[1]
- if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true
- if (chrome) browser.chrome = true, browser.version = chrome[1]
- if (firefox) browser.firefox = true, browser.version = firefox[1]
-
- os.tablet = !!(ipad || playbook || (android && !ua.match(/Mobile/)) || (firefox && ua.match(/Tablet/)))
- os.phone = !!(!os.tablet && (android || iphone || webos || blackberry || bb10 ||
- (chrome && ua.match(/Android/)) || (chrome && ua.match(/CriOS\/([\d.]+)/)) || (firefox && ua.match(/Mobile/))))
- }
-
- detect.call($, navigator.userAgent)
- // make available to unit tests
- $.__detect = detect
-
-})(Zepto)
-
-;(function($){
- var $$ = $.zepto.qsa, handlers = {}, _zid = 1, specialEvents={},
- hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }
-
- specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'
-
- function zid(element) {
- return element._zid || (element._zid = _zid++)
- }
- function findHandlers(element, event, fn, selector) {
- event = parse(event)
- if (event.ns) var matcher = matcherFor(event.ns)
- return (handlers[zid(element)] || []).filter(function(handler) {
- return handler
- && (!event.e || handler.e == event.e)
- && (!event.ns || matcher.test(handler.ns))
- && (!fn || zid(handler.fn) === zid(fn))
- && (!selector || handler.sel == selector)
- })
- }
- function parse(event) {
- var parts = ('' + event).split('.')
- return {e: parts[0], ns: parts.slice(1).sort().join(' ')}
- }
- function matcherFor(ns) {
- return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')
- }
-
- function eachEvent(events, fn, iterator){
- if ($.type(events) != "string") $.each(events, iterator)
- else events.split(/\s/).forEach(function(type){ iterator(type, fn) })
- }
-
- function eventCapture(handler, captureSetting) {
- return handler.del &&
- (handler.e == 'focus' || handler.e == 'blur') ||
- !!captureSetting
- }
-
- function realEvent(type) {
- return hover[type] || type
- }
-
- function add(element, events, fn, selector, getDelegate, capture){
- var id = zid(element), set = (handlers[id] || (handlers[id] = []))
- eachEvent(events, fn, function(event, fn){
- var handler = parse(event)
- handler.fn = fn
- handler.sel = selector
- // emulate mouseenter, mouseleave
- if (handler.e in hover) fn = function(e){
- var related = e.relatedTarget
- if (!related || (related !== this && !$.contains(this, related)))
- return handler.fn.apply(this, arguments)
- }
- handler.del = getDelegate && getDelegate(fn, event)
- var callback = handler.del || fn
- handler.proxy = function (e) {
- var result = callback.apply(element, [e].concat(e.data))
- if (result === false) e.preventDefault(), e.stopPropagation()
- return result
- }
- handler.i = set.length
- set.push(handler)
- element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))
- })
- }
- function remove(element, events, fn, selector, capture){
- var id = zid(element)
- eachEvent(events || '', fn, function(event, fn){
- findHandlers(element, event, fn, selector).forEach(function(handler){
- delete handlers[id][handler.i]
- element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))
- })
- })
- }
-
- $.event = { add: add, remove: remove }
-
- $.proxy = function(fn, context) {
- if ($.isFunction(fn)) {
- var proxyFn = function(){ return fn.apply(context, arguments) }
- proxyFn._zid = zid(fn)
- return proxyFn
- } else if (typeof context == 'string') {
- return $.proxy(fn[context], fn)
- } else {
- throw new TypeError("expected function")
- }
- }
-
- $.fn.bind = function(event, callback){
- return this.each(function(){
- add(this, event, callback)
- })
- }
- $.fn.unbind = function(event, callback){
- return this.each(function(){
- remove(this, event, callback)
- })
- }
- $.fn.one = function(event, callback){
- return this.each(function(i, element){
- add(this, event, callback, null, function(fn, type){
- return function(){
- var result = fn.apply(element, arguments)
- remove(element, type, fn)
- return result
- }
- })
- })
- }
-
- var returnTrue = function(){return true},
- returnFalse = function(){return false},
- ignoreProperties = /^([A-Z]|layer[XY]$)/,
- eventMethods = {
- preventDefault: 'isDefaultPrevented',
- stopImmediatePropagation: 'isImmediatePropagationStopped',
- stopPropagation: 'isPropagationStopped'
- }
- function createProxy(event) {
- var key, proxy = { originalEvent: event }
- for (key in event)
- if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]
-
- $.each(eventMethods, function(name, predicate) {
- proxy[name] = function(){
- this[predicate] = returnTrue
- return event[name].apply(event, arguments)
- }
- proxy[predicate] = returnFalse
- })
- return proxy
- }
-
- // emulates the 'defaultPrevented' property for browsers that have none
- function fix(event) {
- if (!('defaultPrevented' in event)) {
- event.defaultPrevented = false
- var prevent = event.preventDefault
- event.preventDefault = function() {
- this.defaultPrevented = true
- prevent.call(this)
- }
- }
- }
-
- $.fn.delegate = function(selector, event, callback){
- return this.each(function(i, element){
- add(element, event, callback, selector, function(fn){
- return function(e){
- var evt, match = $(e.target).closest(selector, element).get(0)
- if (match) {
- evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})
- return fn.apply(match, [evt].concat([].slice.call(arguments, 1)))
- }
- }
- })
- })
- }
- $.fn.undelegate = function(selector, event, callback){
- return this.each(function(){
- remove(this, event, callback, selector)
- })
- }
-
- $.fn.live = function(event, callback){
- $(document.body).delegate(this.selector, event, callback)
- return this
- }
- $.fn.die = function(event, callback){
- $(document.body).undelegate(this.selector, event, callback)
- return this
- }
-
- $.fn.on = function(event, selector, callback){
- return !selector || $.isFunction(selector) ?
- this.bind(event, selector || callback) : this.delegate(selector, event, callback)
- }
- $.fn.off = function(event, selector, callback){
- return !selector || $.isFunction(selector) ?
- this.unbind(event, selector || callback) : this.undelegate(selector, event, callback)
- }
-
- $.fn.trigger = function(event, data){
- if (typeof event == 'string' || $.isPlainObject(event)) event = $.Event(event)
- fix(event)
- event.data = data
- return this.each(function(){
- // items in the collection might not be DOM elements
- // (todo: possibly support events on plain old objects)
- if('dispatchEvent' in this) this.dispatchEvent(event)
- })
- }
-
- // triggers event handlers on current element just as if an event occurred,
- // doesn't trigger an actual event, doesn't bubble
- $.fn.triggerHandler = function(event, data){
- var e, result
- this.each(function(i, element){
- e = createProxy(typeof event == 'string' ? $.Event(event) : event)
- e.data = data
- e.target = element
- $.each(findHandlers(element, event.type || event), function(i, handler){
- result = handler.proxy(e)
- if (e.isImmediatePropagationStopped()) return false
- })
- })
- return result
- }
-
- // shortcut methods for `.bind(event, fn)` for each event type
- ;('focusin focusout load resize scroll unload click dblclick '+
- 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+
- 'change select keydown keypress keyup error').split(' ').forEach(function(event) {
- $.fn[event] = function(callback) {
- return callback ?
- this.bind(event, callback) :
- this.trigger(event)
- }
- })
-
- ;['focus', 'blur'].forEach(function(name) {
- $.fn[name] = function(callback) {
- if (callback) this.bind(name, callback)
- else this.each(function(){
- try { this[name]() }
- catch(e) {}
- })
- return this
- }
- })
-
- $.Event = function(type, props) {
- if (typeof type != 'string') props = type, type = props.type
- var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true
- if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])
- event.initEvent(type, bubbles, true, null, null, null, null, null, null, null, null, null, null, null, null)
- event.isDefaultPrevented = function(){ return this.defaultPrevented }
- return event
- }
-
-})(Zepto)
-
-;(function($){
- var jsonpID = 0,
- document = window.document,
- key,
- name,
- rscript = /