├── .gitignore
├── 404.html
├── CNAME
├── LICENSE
├── README.md
├── _config.yml
├── _layouts
├── default.html
└── home.html
├── apple-touch-icon.png
├── browserconfig.xml
├── crossdomain.xml
├── css
├── main.css
├── normalize.css
└── site.css
├── favicon.ico
├── favicon.png
├── humans.txt
├── img
├── c4a-white-small.png
├── c4a-white.png
├── logo.png
└── logo.psd
├── index.html
├── js
├── main.js
├── mapbox-sdk.min.js
├── plugins.js
├── site.js
├── utilities.js
└── vendor
│ ├── jquery-1.12.0.min.js
│ └── modernizr-2.8.3.min.js
├── map.html
├── preview-old.png
├── preview.jpg
├── robots.txt
├── tile-wide.png
└── tile.png
/.gitignore:
--------------------------------------------------------------------------------
1 | _site/
2 | .sass-cache/
3 | .jekyll-metadata
4 |
--------------------------------------------------------------------------------
/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Page Not Found
6 |
7 |
54 |
55 |
56 | Page Not Found
57 | Sorry, but the page you were trying to view does not exist.
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | climatechange.codeforafrica.org
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Code for Africa
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ClimateChangeProjections
2 |
3 | An embeddable map that shows climate change projections. How hot will it be by 2070 if we don't do something about it? Accessible at [https://climatechange.codeforafrica.org/](https://climatechange.codeforafrica.org/).
4 |
5 | ## Contributing
6 |
7 | Thank you for considering contributing to this project! We don't have a contribution guide just yet but feel free to jump into the [issues](https://github.com/CodeForAfrica/ClimateChangeProjections/issues) and send a [pull request](https://github.com/CodeForAfrica/ClimateChangeProjections/pulls).
8 |
9 | ## License
10 |
11 | This project is open-sourced software licensed under the [MIT license](http://choosealicense.com/licenses/mit).
12 |
13 | The [MIT License](http://choosealicense.com/licenses/mit) is a permissive license that is short and to the point. It lets people do anything they want with your code as long as they provide attribution back to you and don’t hold you liable.
14 |
15 | jQuery, .NET Core, and Rails use the MIT License.
16 |
17 |
18 | ### Attribution
19 |
20 | - "Creating vector files from raster datasets" by Damon Burgett from [Mapbox.com](https://www.mapbox.com/blog/vector-tiles-from-raster-datasets/)
21 | - Temperature by Evgeniy Artsebasov from [the Noun Project](https://thenounproject.com/artsebasov/collection/the-weather-is-round/?i=102437)
22 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | title: Climate Change Projections
2 | description: What areas are as hot as the marker is? What areas are as hot right now as the marker will be in 2050 or 2070? Drag the marker to explore.
3 |
4 | url: https://climatechange.codeforafrica.org
5 | enforce_ssl: climatechange.codeforafrica.org
6 |
7 | google_analytics: G-7XGCGMMW14
8 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{ page.title }} | {{ site.title }}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
35 |
36 |
37 | {{ content }}
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/_layouts/home.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | {{ content }}
--------------------------------------------------------------------------------
/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeForAfrica/ClimateChangeProjections/f1bf1f11ef0458a802de03f5afbb65275a57eb9c/apple-touch-icon.png
--------------------------------------------------------------------------------
/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/crossdomain.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
15 |
16 |
--------------------------------------------------------------------------------
/css/main.css:
--------------------------------------------------------------------------------
1 | /*! HTML5 Boilerplate v5.3.0 | MIT License | https://html5boilerplate.com/ */
2 |
3 | /*
4 | * What follows is the result of much research on cross-browser styling.
5 | * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
6 | * Kroc Camen, and the H5BP dev community and team.
7 | */
8 |
9 | /* ==========================================================================
10 | Base styles: opinionated defaults
11 | ========================================================================== */
12 |
13 | html {
14 | color: #222;
15 | font-size: 1em;
16 | line-height: 1.4;
17 | }
18 |
19 | /*
20 | * Remove text-shadow in selection highlight:
21 | * https://twitter.com/miketaylr/status/12228805301
22 | *
23 | * These selection rule sets have to be separate.
24 | * Customize the background color to match your design.
25 | */
26 |
27 | ::-moz-selection {
28 | background: #b3d4fc;
29 | text-shadow: none;
30 | }
31 |
32 | ::selection {
33 | background: #b3d4fc;
34 | text-shadow: none;
35 | }
36 |
37 | /*
38 | * A better looking default horizontal rule
39 | */
40 |
41 | hr {
42 | display: block;
43 | height: 1px;
44 | border: 0;
45 | border-top: 1px solid #ccc;
46 | margin: 1em 0;
47 | padding: 0;
48 | }
49 |
50 | /*
51 | * Remove the gap between audio, canvas, iframes,
52 | * images, videos and the bottom of their containers:
53 | * https://github.com/h5bp/html5-boilerplate/issues/440
54 | */
55 |
56 | audio,
57 | canvas,
58 | iframe,
59 | img,
60 | svg,
61 | video {
62 | vertical-align: middle;
63 | }
64 |
65 | /*
66 | * Remove default fieldset styles.
67 | */
68 |
69 | fieldset {
70 | border: 0;
71 | margin: 0;
72 | padding: 0;
73 | }
74 |
75 | /*
76 | * Allow only vertical resizing of textareas.
77 | */
78 |
79 | textarea {
80 | resize: vertical;
81 | }
82 |
83 | /* ==========================================================================
84 | Browser Upgrade Prompt
85 | ========================================================================== */
86 |
87 | .browserupgrade {
88 | margin: 0.2em 0;
89 | background: #ccc;
90 | color: #000;
91 | padding: 0.2em 0;
92 | }
93 |
94 | /* ==========================================================================
95 | Author's custom styles
96 | ========================================================================== */
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 | /* ==========================================================================
115 | Helper classes
116 | ========================================================================== */
117 |
118 | /*
119 | * Hide visually and from screen readers
120 | */
121 |
122 | .hidden {
123 | display: none !important;
124 | }
125 |
126 | /*
127 | * Hide only visually, but have it available for screen readers:
128 | * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
129 | */
130 |
131 | .visuallyhidden {
132 | border: 0;
133 | clip: rect(0 0 0 0);
134 | height: 1px;
135 | margin: -1px;
136 | overflow: hidden;
137 | padding: 0;
138 | position: absolute;
139 | width: 1px;
140 | }
141 |
142 | /*
143 | * Extends the .visuallyhidden class to allow the element
144 | * to be focusable when navigated to via the keyboard:
145 | * https://www.drupal.org/node/897638
146 | */
147 |
148 | .visuallyhidden.focusable:active,
149 | .visuallyhidden.focusable:focus {
150 | clip: auto;
151 | height: auto;
152 | margin: 0;
153 | overflow: visible;
154 | position: static;
155 | width: auto;
156 | }
157 |
158 | /*
159 | * Hide visually and from screen readers, but maintain layout
160 | */
161 |
162 | .invisible {
163 | visibility: hidden;
164 | }
165 |
166 | /*
167 | * Clearfix: contain floats
168 | *
169 | * For modern browsers
170 | * 1. The space content is one way to avoid an Opera bug when the
171 | * `contenteditable` attribute is included anywhere else in the document.
172 | * Otherwise it causes space to appear at the top and bottom of elements
173 | * that receive the `clearfix` class.
174 | * 2. The use of `table` rather than `block` is only necessary if using
175 | * `:before` to contain the top-margins of child elements.
176 | */
177 |
178 | .clearfix:before,
179 | .clearfix:after {
180 | content: " "; /* 1 */
181 | display: table; /* 2 */
182 | }
183 |
184 | .clearfix:after {
185 | clear: both;
186 | }
187 |
188 | /* ==========================================================================
189 | EXAMPLE Media Queries for Responsive Design.
190 | These examples override the primary ('mobile first') styles.
191 | Modify as content requires.
192 | ========================================================================== */
193 |
194 | @media only screen and (min-width: 35em) {
195 | /* Style adjustments for viewports that meet the condition */
196 | }
197 |
198 | @media print,
199 | (-webkit-min-device-pixel-ratio: 1.25),
200 | (min-resolution: 1.25dppx),
201 | (min-resolution: 120dpi) {
202 | /* Style adjustments for high resolution devices */
203 | }
204 |
205 | /* ==========================================================================
206 | Print styles.
207 | Inlined to avoid the additional HTTP request:
208 | http://www.phpied.com/delay-loading-your-print-css/
209 | ========================================================================== */
210 |
211 | @media print {
212 | *,
213 | *:before,
214 | *:after,
215 | *:first-letter,
216 | *:first-line {
217 | background: transparent !important;
218 | color: #000 !important; /* Black prints faster:
219 | http://www.sanbeiji.com/archives/953 */
220 | box-shadow: none !important;
221 | text-shadow: none !important;
222 | }
223 |
224 | a,
225 | a:visited {
226 | text-decoration: underline;
227 | }
228 |
229 | a[href]:after {
230 | content: " (" attr(href) ")";
231 | }
232 |
233 | abbr[title]:after {
234 | content: " (" attr(title) ")";
235 | }
236 |
237 | /*
238 | * Don't show links that are fragment identifiers,
239 | * or use the `javascript:` pseudo protocol
240 | */
241 |
242 | a[href^="#"]:after,
243 | a[href^="javascript:"]:after {
244 | content: "";
245 | }
246 |
247 | pre,
248 | blockquote {
249 | border: 1px solid #999;
250 | page-break-inside: avoid;
251 | }
252 |
253 | /*
254 | * Printing Tables:
255 | * http://css-discuss.incutio.com/wiki/Printing_Tables
256 | */
257 |
258 | thead {
259 | display: table-header-group;
260 | }
261 |
262 | tr,
263 | img {
264 | page-break-inside: avoid;
265 | }
266 |
267 | img {
268 | max-width: 100% !important;
269 | }
270 |
271 | p,
272 | h2,
273 | h3 {
274 | orphans: 3;
275 | widows: 3;
276 | }
277 |
278 | h2,
279 | h3 {
280 | page-break-after: avoid;
281 | }
282 | }
283 |
--------------------------------------------------------------------------------
/css/normalize.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
2 |
3 | /**
4 | * 1. Set default font family to sans-serif.
5 | * 2. Prevent iOS and IE text size adjust after device orientation change,
6 | * without disabling user zoom.
7 | */
8 |
9 | html {
10 | font-family: sans-serif; /* 1 */
11 | -ms-text-size-adjust: 100%; /* 2 */
12 | -webkit-text-size-adjust: 100%; /* 2 */
13 | }
14 |
15 | /**
16 | * Remove default margin.
17 | */
18 |
19 | body {
20 | margin: 0;
21 | }
22 |
23 | /* HTML5 display definitions
24 | ========================================================================== */
25 |
26 | /**
27 | * Correct `block` display not defined for any HTML5 element in IE 8/9.
28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11
29 | * and Firefox.
30 | * Correct `block` display not defined for `main` in IE 11.
31 | */
32 |
33 | article,
34 | aside,
35 | details,
36 | figcaption,
37 | figure,
38 | footer,
39 | header,
40 | hgroup,
41 | main,
42 | menu,
43 | nav,
44 | section,
45 | summary {
46 | display: block;
47 | }
48 |
49 | /**
50 | * 1. Correct `inline-block` display not defined in IE 8/9.
51 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
52 | */
53 |
54 | audio,
55 | canvas,
56 | progress,
57 | video {
58 | display: inline-block; /* 1 */
59 | vertical-align: baseline; /* 2 */
60 | }
61 |
62 | /**
63 | * Prevent modern browsers from displaying `audio` without controls.
64 | * Remove excess height in iOS 5 devices.
65 | */
66 |
67 | audio:not([controls]) {
68 | display: none;
69 | height: 0;
70 | }
71 |
72 | /**
73 | * Address `[hidden]` styling not present in IE 8/9/10.
74 | * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
75 | */
76 |
77 | [hidden],
78 | template {
79 | display: none;
80 | }
81 |
82 | /* Links
83 | ========================================================================== */
84 |
85 | /**
86 | * Remove the gray background color from active links in IE 10.
87 | */
88 |
89 | a {
90 | background-color: transparent;
91 | }
92 |
93 | /**
94 | * Improve readability of focused elements when they are also in an
95 | * active/hover state.
96 | */
97 |
98 | a:active,
99 | a:hover {
100 | outline: 0;
101 | }
102 |
103 | /* Text-level semantics
104 | ========================================================================== */
105 |
106 | /**
107 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108 | */
109 |
110 | abbr[title] {
111 | border-bottom: 1px dotted;
112 | }
113 |
114 | /**
115 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116 | */
117 |
118 | b,
119 | strong {
120 | font-weight: bold;
121 | }
122 |
123 | /**
124 | * Address styling not present in Safari and Chrome.
125 | */
126 |
127 | dfn {
128 | font-style: italic;
129 | }
130 |
131 | /**
132 | * Address variable `h1` font-size and margin within `section` and `article`
133 | * contexts in Firefox 4+, Safari, and Chrome.
134 | */
135 |
136 | h1 {
137 | font-size: 2em;
138 | margin: 0.67em 0;
139 | }
140 |
141 | /**
142 | * Address styling not present in IE 8/9.
143 | */
144 |
145 | mark {
146 | background: #ff0;
147 | color: #000;
148 | }
149 |
150 | /**
151 | * Address inconsistent and variable font size in all browsers.
152 | */
153 |
154 | small {
155 | font-size: 80%;
156 | }
157 |
158 | /**
159 | * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160 | */
161 |
162 | sub,
163 | sup {
164 | font-size: 75%;
165 | line-height: 0;
166 | position: relative;
167 | vertical-align: baseline;
168 | }
169 |
170 | sup {
171 | top: -0.5em;
172 | }
173 |
174 | sub {
175 | bottom: -0.25em;
176 | }
177 |
178 | /* Embedded content
179 | ========================================================================== */
180 |
181 | /**
182 | * Remove border when inside `a` element in IE 8/9/10.
183 | */
184 |
185 | img {
186 | border: 0;
187 | }
188 |
189 | /**
190 | * Correct overflow not hidden in IE 9/10/11.
191 | */
192 |
193 | svg:not(:root) {
194 | overflow: hidden;
195 | }
196 |
197 | /* Grouping content
198 | ========================================================================== */
199 |
200 | /**
201 | * Address margin not present in IE 8/9 and Safari.
202 | */
203 |
204 | figure {
205 | margin: 1em 40px;
206 | }
207 |
208 | /**
209 | * Address differences between Firefox and other browsers.
210 | */
211 |
212 | hr {
213 | box-sizing: content-box;
214 | height: 0;
215 | }
216 |
217 | /**
218 | * Contain overflow in all browsers.
219 | */
220 |
221 | pre {
222 | overflow: auto;
223 | }
224 |
225 | /**
226 | * Address odd `em`-unit font size rendering in all browsers.
227 | */
228 |
229 | code,
230 | kbd,
231 | pre,
232 | samp {
233 | font-family: monospace, monospace;
234 | font-size: 1em;
235 | }
236 |
237 | /* Forms
238 | ========================================================================== */
239 |
240 | /**
241 | * Known limitation: by default, Chrome and Safari on OS X allow very limited
242 | * styling of `select`, unless a `border` property is set.
243 | */
244 |
245 | /**
246 | * 1. Correct color not being inherited.
247 | * Known issue: affects color of disabled elements.
248 | * 2. Correct font properties not being inherited.
249 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
250 | */
251 |
252 | button,
253 | input,
254 | optgroup,
255 | select,
256 | textarea {
257 | color: inherit; /* 1 */
258 | font: inherit; /* 2 */
259 | margin: 0; /* 3 */
260 | }
261 |
262 | /**
263 | * Address `overflow` set to `hidden` in IE 8/9/10/11.
264 | */
265 |
266 | button {
267 | overflow: visible;
268 | }
269 |
270 | /**
271 | * Address inconsistent `text-transform` inheritance for `button` and `select`.
272 | * All other form control elements do not inherit `text-transform` values.
273 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
274 | * Correct `select` style inheritance in Firefox.
275 | */
276 |
277 | button,
278 | select {
279 | text-transform: none;
280 | }
281 |
282 | /**
283 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
284 | * and `video` controls.
285 | * 2. Correct inability to style clickable `input` types in iOS.
286 | * 3. Improve usability and consistency of cursor style between image-type
287 | * `input` and others.
288 | */
289 |
290 | button,
291 | html input[type="button"], /* 1 */
292 | input[type="reset"],
293 | input[type="submit"] {
294 | -webkit-appearance: button; /* 2 */
295 | cursor: pointer; /* 3 */
296 | }
297 |
298 | /**
299 | * Re-set default cursor for disabled elements.
300 | */
301 |
302 | button[disabled],
303 | html input[disabled] {
304 | cursor: default;
305 | }
306 |
307 | /**
308 | * Remove inner padding and border in Firefox 4+.
309 | */
310 |
311 | button::-moz-focus-inner,
312 | input::-moz-focus-inner {
313 | border: 0;
314 | padding: 0;
315 | }
316 |
317 | /**
318 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in
319 | * the UA stylesheet.
320 | */
321 |
322 | input {
323 | line-height: normal;
324 | }
325 |
326 | /**
327 | * It's recommended that you don't attempt to style these elements.
328 | * Firefox's implementation doesn't respect box-sizing, padding, or width.
329 | *
330 | * 1. Address box sizing set to `content-box` in IE 8/9/10.
331 | * 2. Remove excess padding in IE 8/9/10.
332 | */
333 |
334 | input[type="checkbox"],
335 | input[type="radio"] {
336 | box-sizing: border-box; /* 1 */
337 | padding: 0; /* 2 */
338 | }
339 |
340 | /**
341 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain
342 | * `font-size` values of the `input`, it causes the cursor style of the
343 | * decrement button to change from `default` to `text`.
344 | */
345 |
346 | input[type="number"]::-webkit-inner-spin-button,
347 | input[type="number"]::-webkit-outer-spin-button {
348 | height: auto;
349 | }
350 |
351 | /**
352 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
353 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
354 | */
355 |
356 | input[type="search"] {
357 | -webkit-appearance: textfield; /* 1 */
358 | box-sizing: content-box; /* 2 */
359 | }
360 |
361 | /**
362 | * Remove inner padding and search cancel button in Safari and Chrome on OS X.
363 | * Safari (but not Chrome) clips the cancel button when the search input has
364 | * padding (and `textfield` appearance).
365 | */
366 |
367 | input[type="search"]::-webkit-search-cancel-button,
368 | input[type="search"]::-webkit-search-decoration {
369 | -webkit-appearance: none;
370 | }
371 |
372 | /**
373 | * Define consistent border, margin, and padding.
374 | */
375 |
376 | fieldset {
377 | border: 1px solid #c0c0c0;
378 | margin: 0 2px;
379 | padding: 0.35em 0.625em 0.75em;
380 | }
381 |
382 | /**
383 | * 1. Correct `color` not being inherited in IE 8/9/10/11.
384 | * 2. Remove padding so people aren't caught out if they zero out fieldsets.
385 | */
386 |
387 | legend {
388 | border: 0; /* 1 */
389 | padding: 0; /* 2 */
390 | }
391 |
392 | /**
393 | * Remove default vertical scrollbar in IE 8/9/10/11.
394 | */
395 |
396 | textarea {
397 | overflow: auto;
398 | }
399 |
400 | /**
401 | * Don't inherit the `font-weight` (applied by a rule above).
402 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
403 | */
404 |
405 | optgroup {
406 | font-weight: bold;
407 | }
408 |
409 | /* Tables
410 | ========================================================================== */
411 |
412 | /**
413 | * Remove most spacing between table cells.
414 | */
415 |
416 | table {
417 | border-collapse: collapse;
418 | border-spacing: 0;
419 | }
420 |
421 | td,
422 | th {
423 | padding: 0;
424 | }
425 |
--------------------------------------------------------------------------------
/css/site.css:
--------------------------------------------------------------------------------
1 | /* Layout */
2 | #map {
3 | width:100%;
4 | position:absolute;
5 | top:0;
6 | bottom:0;
7 | right:0;
8 | }
9 | .sidebar {
10 | width:260px;
11 | }
12 |
13 | .legend-value {
14 | position:relative;
15 | top:5px;
16 | }
17 |
18 | /* Mapboxgl overrides */
19 | /* Attribution */
20 | .mapboxgl-ctrl.mapboxgl-ctrl-attrib { background-color:rgba(0,0,0,0.5); }
21 | .mapboxgl-ctrl.mapboxgl-ctrl-attrib a { color:#fff; }
22 | .mapboxgl-ctrl-attrib.mapboxgl-ctrl { clear:none; }
23 | .mapboxgl-ctrl-icon.mapboxgl-ctrl-geolocate {
24 | background-image:url(img/geolocate-icon.svg);
25 | background-repeat:no-repeat;
26 | }
27 |
28 | .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-logo { display: none; }
29 |
30 | /* Popup */
31 | .mapboxgl-popup-content {
32 | background-color:#404040;
33 | color:#fff;
34 | padding:10px;
35 | font-weight:bold;
36 | }
37 | .mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip,
38 | .mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip,
39 | .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip { border-top-color:#404040; }
40 | .mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip,
41 | .mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip,
42 | .mapboxgl-popup-anchor-top .mapboxgl-popup-tip { border-bottom-color:#404040; }
43 | .mapboxgl-popup-anchor-right .mapboxgl-popup-tip { border-left-color:#404040; }
44 | .mapboxgl-popup-anchor-left .mapboxgl-popup-tip { border-right-color:#404040; }
45 |
46 | /* Mobile */
47 | @media only screen and (max-width:640px) {
48 | .sidebar {
49 | position:absolute;
50 | width:100%;
51 | padding:0;
52 | margin:0;
53 | top:auto;
54 | bottom:0;
55 | height:40%;
56 | z-index:10;
57 | }
58 | .sidebar-inner {
59 | height:100%;
60 | border-radius:0;
61 | }
62 | .sidebar-inner > * {
63 | border-radius:0;
64 | }
65 | }
66 |
67 | .loader,
68 | .loader:after {
69 | border-radius: 50%;
70 | width: 10em;
71 | height: 10em;
72 | }
73 | .loader {
74 | margin: 60px auto;
75 | font-size: 10px;
76 | position: relative;
77 | text-indent: -9999em;
78 | border-top: 1.1em solid rgba(255, 255, 255, 0.2);
79 | border-right: 1.1em solid rgba(255, 255, 255, 0.2);
80 | border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);
81 | border-left: 1.1em solid #ffffff;
82 | -webkit-transform: translateZ(0);
83 | -ms-transform: translateZ(0);
84 | transform: translateZ(0);
85 | -webkit-animation: load8 1.1s infinite linear;
86 | animation: load8 1.1s infinite linear;
87 | }
88 | .loader-text {
89 | font-size: 1.25em;
90 | color: white;
91 | position: relative;
92 | text-align: center;
93 | margin-top: -1.5em;
94 | }
95 |
96 | @-webkit-keyframes load8 {
97 | 0% {
98 | -webkit-transform: rotate(0deg);
99 | transform: rotate(0deg);
100 | }
101 | 100% {
102 | -webkit-transform: rotate(360deg);
103 | transform: rotate(360deg);
104 | }
105 | }
106 | @keyframes load8 {
107 | 0% {
108 | -webkit-transform: rotate(0deg);
109 | transform: rotate(0deg);
110 | }
111 | 100% {
112 | -webkit-transform: rotate(360deg);
113 | transform: rotate(360deg);
114 | }
115 | }
116 |
117 | .hidden {
118 | display: none;
119 | }
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeForAfrica/ClimateChangeProjections/f1bf1f11ef0458a802de03f5afbb65275a57eb9c/favicon.ico
--------------------------------------------------------------------------------
/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeForAfrica/ClimateChangeProjections/f1bf1f11ef0458a802de03f5afbb65275a57eb9c/favicon.png
--------------------------------------------------------------------------------
/humans.txt:
--------------------------------------------------------------------------------
1 | # humanstxt.org/
2 | # The humans responsible & technology colophon
3 |
4 | # TEAM
5 |
6 | David Lemayian -- Lead Tech -- @DavidLemayian
7 |
8 | # THANKS
9 |
10 | Damon Burgett
11 |
12 | # TECHNOLOGY COLOPHON
13 |
14 | CSS3, HTML5
15 | Apache Server Configs, jQuery, Modernizr, Normalize.css
16 |
--------------------------------------------------------------------------------
/img/c4a-white-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeForAfrica/ClimateChangeProjections/f1bf1f11ef0458a802de03f5afbb65275a57eb9c/img/c4a-white-small.png
--------------------------------------------------------------------------------
/img/c4a-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeForAfrica/ClimateChangeProjections/f1bf1f11ef0458a802de03f5afbb65275a57eb9c/img/c4a-white.png
--------------------------------------------------------------------------------
/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeForAfrica/ClimateChangeProjections/f1bf1f11ef0458a802de03f5afbb65275a57eb9c/img/logo.png
--------------------------------------------------------------------------------
/img/logo.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeForAfrica/ClimateChangeProjections/f1bf1f11ef0458a802de03f5afbb65275a57eb9c/img/logo.psd
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: home
3 | title: Home
4 | ---
5 |
6 |
9 |
--------------------------------------------------------------------------------
/js/main.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeForAfrica/ClimateChangeProjections/f1bf1f11ef0458a802de03f5afbb65275a57eb9c/js/main.js
--------------------------------------------------------------------------------
/js/mapbox-sdk.min.js:
--------------------------------------------------------------------------------
1 | !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.MapboxClient=t()}}(function(){var t;return function e(t,n,r){function o(s,u){if(!n[s]){if(!t[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[s]={exports:{}};t[s][0].call(f.exports,function(e){var n=t[s][1][e];return o(n?n:e)},f,f.exports,e,t,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s3)return null;try{return JSON.parse(r.decode(e)).u}catch(o){return null}}var r=t("rest/util/base64");e.exports=n},{"rest/util/base64":36}],6:[function(t,e){"use strict";function n(t){r("number"==typeof t.latitude&&"number"==typeof t.longitude,"location must be an object with numeric latitude & longitude properties"),void 0!==t.zoom&&r("number"==typeof t.zoom,"zoom must be numeric")}var r=t("../vendor/invariant");e.exports=n},{"../vendor/invariant":63}],7:[function(t,e){"use strict";function n(t){function e(e,n){this.name=t,r("string"==typeof e,"accessToken required to instantiate Mapbox client");var u=o.DEFAULT_ENDPOINT;void 0!==n&&(r("object"==typeof n,"options must be an object"),n.endpoint&&(r("string"==typeof n.endpoint,"endpoint must be a string"),u=n.endpoint),n.account&&(r("string"==typeof n.account,"account must be a string"),this.owner=n.account)),this.client=i({endpoint:u,accessToken:e}),this.accessToken=e,this.endpoint=u,this.owner=this.owner||s(e),r(!!this.owner,"could not determine account from provided accessToken")}return e}var r=t("../vendor/invariant"),o=t("./constants"),i=t("./client"),s=t("./get_user");e.exports=n},{"../vendor/invariant":63,"./client":2,"./constants":3,"./get_user":5}],8:[function(t,e){"use strict";var n=t("./make_service"),r=t("../vendor/xtend").extendMutable,o=t("./get_user"),i=t("./services/geocoding"),s=t("./services/surface"),u=t("./services/directions"),a=t("./services/uploads"),c=t("./services/matching"),f=t("./services/datasets"),p=t("./services/distance"),l=t("./services/tilestats"),d=n("MapboxClient");r(d.prototype,i.prototype,s.prototype,u.prototype,p.prototype,c.prototype,f.prototype,a.prototype,l.prototype),d.getUser=o,e.exports=d},{"../vendor/xtend":64,"./get_user":5,"./make_service":7,"./services/datasets":9,"./services/directions":10,"./services/distance":11,"./services/geocoding":12,"./services/matching":13,"./services/surface":14,"./services/tilestats":15,"./services/uploads":16}],9:[function(t,e){"use strict";var n=t("../../vendor/invariant"),r=t("../../vendor/hat"),o=t("../make_service"),i=t("../constants"),s=e.exports=o("MapboxDatasets");s.prototype.listDatasets=function(t){return this.client({path:i.API_DATASET_DATASETS,params:{owner:this.owner},callback:t}).entity()},s.prototype.createDataset=function(t,e){return void 0===e&&"function"==typeof t&&(e=t,t={}),n("object"==typeof t,"options must be an object"),this.client({path:i.API_DATASET_DATASETS,params:{owner:this.owner},entity:t,callback:e}).entity()},s.prototype.readDataset=function(t,e){return n("string"==typeof t,"dataset must be a string"),this.client({path:i.API_DATASET_DATASET,params:{owner:this.owner,dataset:t},callback:e}).entity()},s.prototype.updateDataset=function(t,e,r){return n("string"==typeof t,"dataset must be a string"),n("object"==typeof e,"options must be an object"),n(!!e.name||!!e.description,"options must include a name or a description"),this.client({path:i.API_DATASET_DATASET,params:{owner:this.owner,dataset:t},method:"patch",entity:e,callback:r}).entity()},s.prototype.deleteDataset=function(t,e){return n("string"==typeof t,"dataset must be a string"),this.client({path:i.API_DATASET_DATASET,params:{owner:this.owner,dataset:t},method:"delete",callback:e}).entity()},s.prototype.listFeatures=function(t,e,r){void 0===r&&"function"==typeof e&&(r=e,e={}),n("string"==typeof t,"dataset must be a string"),n("object"==typeof e,"options must be a object");var o={owner:this.owner,dataset:t};return e.reverse&&(n("boolean"==typeof e.reverse,"reverse option must be a boolean"),o.reverse=e.reverse),e.limit&&(n("number"==typeof e.limit,"limit option must be a number"),o.limit=e.limit),e.start&&(n("string"==typeof e.start,"start option must be a string"),o.start=e.start),this.client({path:i.API_DATASET_FEATURES,params:o,callback:r}).entity()},s.prototype.insertFeature=function(t,e,o){n("string"==typeof e,"dataset must be a string");var s=t.id||r();return n("string"==typeof s,"The GeoJSON feature's id must be a string"),this.client({path:i.API_DATASET_FEATURE,params:{owner:this.owner,dataset:e,id:s},method:"put",entity:t,callback:o}).entity()},s.prototype.readFeature=function(t,e,r){return n("string"==typeof t,"id must be a string"),n("string"==typeof e,"dataset must be a string"),this.client({path:i.API_DATASET_FEATURE,params:{owner:this.owner,dataset:e,id:t},callback:r}).entity()},s.prototype.deleteFeature=function(t,e,r){return n("string"==typeof t,"id must be a string"),n("string"==typeof e,"dataset must be a string"),this.client({path:i.API_DATASET_FEATURE,params:{owner:this.owner,dataset:e,id:t},method:"delete",callback:r}).entity()},s.prototype.batchFeatureUpdate=function(t,e,r){n("object"==typeof t,"update must be an object"),n("string"==typeof e,"dataset must be a string");var o=t.put||[],s=t["delete"]||[];return n(o.every(function(t){return t.id}),"inserted GeoJSON features must include ids"),n(s.every(function(t){return"string"==typeof t}),"update.delete must be an array of strings"),this.client({path:i.API_DATASET_FEATURES,params:{owner:this.owner,dataset:e},method:"post",entity:{put:o,"delete":s},callback:r}).entity()}},{"../../vendor/hat":62,"../../vendor/invariant":63,"../constants":3,"../make_service":7}],10:[function(t,e){"use strict";var n=t("../../vendor/invariant"),r=t("../format_points"),o=t("../make_service"),i=t("../constants"),s=o("MapboxDirections");s.prototype.getDirections=function(t,e,o){void 0===o&&"function"==typeof e?(o=e,e={}):void 0===e&&(e={}),n(Array.isArray(t),"waypoints must be an array"),n("object"==typeof e,"options must be an object");var s=r(t),u="mapbox.driving",a=!0,c=!0,f="geojson",p="text";return e.profile&&(n("string"==typeof e.profile,"profile option must be string"),u=e.profile),"undefined"!=typeof e.alternatives&&(n("boolean"==typeof e.alternatives,"alternatives option must be boolean"),a=e.alternatives),"undefined"!=typeof e.steps&&(n("boolean"==typeof e.steps,"steps option must be boolean"),c=e.steps),e.geometry&&(n("string"==typeof e.geometry,"geometry option must be string"),f=e.geometry),e.instructions&&(n("string"==typeof e.instructions,"instructions option must be string"),p=e.instructions),this.client({path:i.API_DIRECTIONS,params:{encodedWaypoints:s,profile:u,instructions:p,geometry:f,alternatives:a,steps:c},callback:o}).entity()},e.exports=s},{"../../vendor/invariant":63,"../constants":3,"../format_points":4,"../make_service":7}],11:[function(t,e){"use strict";var n=t("../../vendor/invariant"),r=t("../make_service"),o=t("../constants"),i=r("MapboxDistance");i.prototype.getDistances=function(t,e,r){void 0===r&&"function"==typeof e&&(r=e,e={}),n(Array.isArray(t),"waypoints must be an array");var i="driving";return e.profile&&(n("string"==typeof e.profile,"profile option must be string"),i=e.profile),this.client({path:o.API_DISTANCE,params:{profile:i},entity:{coordinates:t},method:"post",callback:r}).entity()},e.exports=i},{"../../vendor/invariant":63,"../constants":3,"../make_service":7}],12:[function(t,e){"use strict";function n(t,e){var n=Math.pow(10,e);return Math.round(t*n)/n}var r=t("../../vendor/invariant"),o=t("../make_service"),i=t("../constants"),s=o("MapboxGeocoding"),u=5,a=3;s.prototype.geocodeForward=function(t,e,o){if(void 0===o&&"function"==typeof e&&(o=e,e={}),Array.isArray(t)){if("mapbox.places-permanent"!==e.dataset)throw new Error("Batch geocoding is only available with the mapbox.places-permanent endpoint. See https://mapbox.com/api-documentation/#batch-requests for details");t=t.join(";")}r("string"==typeof t,"query must be a string"),r("object"==typeof e,"options must be an object");var s={query:t,dataset:"mapbox.places"},u=a;return e.precision&&(r("number"==typeof e.precision,"precision option must be number"),u=e.precision),e.proximity&&(r("number"==typeof e.proximity.latitude&&"number"==typeof e.proximity.longitude,"proximity must be an object with numeric latitude & longitude properties"),s.proximity=n(e.proximity.longitude,u)+","+n(e.proximity.latitude,u)),e.bbox&&(r("number"==typeof e.bbox[0]&&"number"==typeof e.bbox[1]&&"number"==typeof e.bbox[2]&&"number"==typeof e.bbox[3]&&4===e.bbox.length,"bbox must be an array with numeric values in the form [minX, minY, maxX, maxY]"),s.bbox=e.bbox[0]+","+e.bbox[1]+","+e.bbox[2]+","+e.bbox[3]),e.dataset&&(r("string"==typeof e.dataset,"dataset option must be string"),s.dataset=e.dataset),e.country&&(r("string"==typeof e.country,"country option must be string"),s.country=e.country),e.types&&(r("string"==typeof e.types,"types option must be string"),s.types=e.types),"boolean"==typeof e.autocomplete&&(r("boolean"==typeof e.autocomplete,"autocomplete must be a boolean"),s.autocomplete=e.autocomplete),this.client({path:i.API_GEOCODING_FORWARD,params:s,callback:o}).entity()},s.prototype.geocodeReverse=function(t,e,o){void 0===o&&"function"==typeof e&&(o=e,e={}),r("object"==typeof t,"location must be an object"),r("object"==typeof e,"options must be an object"),r("number"==typeof t.latitude&&"number"==typeof t.longitude,"location must be an object with numeric latitude & longitude properties");var s={dataset:"mapbox.places"};e.dataset&&(r("string"==typeof e.dataset,"dataset option must be string"),s.dataset=e.dataset);var a=u;return e.precision&&(r("number"==typeof e.precision,"precision option must be number"),a=e.precision),e.types&&(r("string"==typeof e.types,"types option must be string"),s.types=e.types),s.longitude=n(t.longitude,a),s.latitude=n(t.latitude,a),this.client({path:i.API_GEOCODING_REVERSE,params:s,callback:o}).entity()},e.exports=s},{"../../vendor/invariant":63,"../constants":3,"../make_service":7}],13:[function(t,e){"use strict";var n=t("../../vendor/invariant"),r=t("../make_service"),o=t("../constants"),i=r("MapboxMatching");i.prototype.matching=function(t,e,r){void 0===r&&"function"==typeof e&&(r=e,e={}),n("object"==typeof t,"trace must be an object"),n("object"==typeof e,"options must be an object");var i="mapbox.driving",s=4,u="geojson";return void 0!==e.gps_precision&&(n("number"==typeof e.gps_precision,"gps_precision must be a number"),s=e.gps_precision),e.profile&&(n("string"==typeof e.profile,"profile option must be string"),i=e.profile),e.geometry&&(n("string"==typeof e.geometry,"geometry option must be string"),u=e.geometry),this.client({path:o.API_MATCHING,params:{profile:i,geometry:u,gps_precision:s},method:"post",entity:t,callback:r}).entity()},e.exports=i},{"../../vendor/invariant":63,"../constants":3,"../make_service":7}],14:[function(t,e){"use strict";var n=t("../../vendor/invariant"),r=t("../format_points"),o=t("../make_service"),i=t("../constants"),s=o("MapboxSurface");s.prototype.surface=function(t,e,o,s,u,a){void 0===a&&"function"==typeof u&&(a=u,u={}),n("string"==typeof t,"mapid must be a string"),n("string"==typeof e,"layer must be a string"),n(Array.isArray(o),"fields must be an array of strings"),n(Array.isArray(s)||"string"==typeof s,"path must be an array of objects or a string"),n("object"==typeof u,"options must be an object");var c=!0,f=!1;void 0!==u.interpolate&&(n("boolean"==typeof u.interpolate,"interpolate must be a boolean"),c=u.interpolate),void 0!==u.geojson&&(n("boolean"==typeof u.geojson,"geojson option must be boolean"),f=u.geojson);var p={geojson:f,layer:e,mapid:t,fields:o.join(","),interpolate:c};return Array.isArray(s)?p.points=r(s):p.encoded_polyline=s,void 0!==u.zoom&&(n("number"==typeof u.zoom,"zoom must be a number"),p.z=u.zoom),this.client({path:i.API_SURFACE,params:p,callback:a}).entity()},e.exports=s},{"../../vendor/invariant":63,"../constants":3,"../format_points":4,"../make_service":7}],15:[function(t,e){"use strict";var n=t("../../vendor/invariant"),r=t("../make_service"),o=t("../constants"),i=e.exports=r("MapboxTilestats");i.prototype.createTilestats=function(t,e,r){n("string"==typeof t,"tileset must be a string"),n(Array.isArray(e),"layers must be an array"),n(e.every(function(t){return"string"==typeof t}),"layers must be an array of strings");var i=t.split(".")[0];return i===t&&(i=this.owner),this.client({path:o.API_TILESTATS_STATISTICS,params:{owner:i,tileset:t},entity:{layers:e},method:"post",callback:r}).entity()},i.prototype.deleteTilestats=function(t,e){n("string"==typeof t,"tileset must be a string");var r=t.split(".")[0];return r===t&&(r=this.owner),this.client({path:o.API_TILESTATS_STATISTICS,params:{owner:r,tileset:t},method:"delete",callback:e}).entity()},i.prototype.getTilestats=function(t,e){n("string"==typeof t,"tileset must be a string");var r=t.split(".")[0];return r===t&&(r=this.owner),this.client({path:o.API_TILESTATS_STATISTICS,params:{owner:r,tileset:t},callback:e}).entity()},i.prototype.updateTilestatsLayer=function(t,e,r,i){n("string"==typeof t,"tileset must be a string"),n("string"==typeof e,"layer must be a string"),n("object"==typeof r,"geometries must be an object");var s=t.split(".")[0];return s===t&&(s=this.owner),this.client({path:o.API_TILESTATS_LAYER,params:{owner:s,tileset:t,layer:e},entity:r,method:"post",callback:i}).entity()},i.prototype.updateTilestatsAttribute=function(t,e,r,i,s){n("string"==typeof t,"tileset must be a string"),n("string"==typeof e,"layer must be a string"),n("string"==typeof r,"attribute must be a string"),n("object"==typeof i,"stats must be an object");var u=t.split(".")[0];return u===t&&(u=this.owner),this.client({path:o.API_TILESTATS_ATTRIBUTE,params:{owner:u,tileset:t,layer:e,attribute:r},entity:i,method:"post",callback:s}).entity()},i.prototype.getTilestatsAttribute=function(t,e,r,i){n("string"==typeof t,"tileset must be a string"),n("string"==typeof e,"layer must be a string"),n("string"==typeof r,"attribute must be a string");var s=t.split(".")[0];return s===t&&(s=this.owner),this.client({path:o.API_TILESTATS_ATTRIBUTE,params:{owner:s,tileset:t,layer:e,attribute:r},callback:i}).entity()}},{"../../vendor/invariant":63,"../constants":3,"../make_service":7}],16:[function(t,e){"use strict";var n=t("../../vendor/invariant"),r=t("../make_service"),o=t("../constants"),i=e.exports=r("MapboxUploads");i.prototype.listUploads=function(t){return this.client({path:o.API_UPLOADS,params:{owner:this.owner},callback:t}).entity()},i.prototype.createUploadCredentials=function(t){return this.client({path:o.API_UPLOAD_CREDENTIALS,params:{owner:this.owner},callback:t}).entity()},i.prototype.createUpload=function(t,e){return n("object"==typeof t,"options must be an object"),this.client({path:o.API_UPLOADS,params:{owner:this.owner},entity:t,callback:e}).entity()},i.prototype.readUpload=function(t,e){return n("string"==typeof t,"upload must be a string"),this.client({path:o.API_UPLOAD,params:{owner:this.owner,upload:t},callback:e}).entity()},i.prototype.deleteUpload=function(t,e){return n("string"==typeof t,"upload must be a string"),this.client({method:"delete",path:o.API_UPLOAD,params:{owner:this.owner,upload:t},callback:e}).entity()}},{"../../vendor/invariant":63,"../constants":3,"../make_service":7}],17:[function(t,e){function n(){c=!1,s.length?a=s.concat(a):f=-1,a.length&&r()}function r(){if(!c){var t=setTimeout(n);c=!0;for(var e=a.length;e;){for(s=a,a=[];++f1)for(var n=1;n0?o(d):setTimeout(function(){o(d)},0))};try{u.onerror=function(){d.error="loaderror",s(d)}}catch(m){}u.send(p)}catch(m){d.error="loaderror",s(d)}})})})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)},"undefined"!=typeof window?window:void 0)},{"../UrlBuilder":18,"../client":20,"../util/normalizeHeaderName":40,"../util/responsePromise":41,when:61}],23:[function(e,n){!function(t){"use strict";t(function(t){function e(t){return t}function n(t){return t}function r(t){return t}function o(t){return p.promise(function(e,n){t.forEach(function(t){p(t,e,n)})})}function i(t){return this instanceof i?void a(this,t):new i(t)}function s(t){var s,a,l,d;return t=t||{},s=t.init||e,a=t.request||n,l=t.success||t.response||r,d=t.error||function(){return p((t.response||r).apply(this,arguments),p.reject,p.reject)},function(e,n){function r(t){var s,u;return s={},u={arguments:Array.prototype.slice.call(arguments),client:r},t="string"==typeof t?{path:t}:t||{},t.originator=t.originator||r,c(a.call(s,t,n,u),function(t){var r,a,c;return c=e,t instanceof i&&(a=t.abort,c=t.client||c,r=t.response,t=t.request),r=r||p(t,function(t){return p(c(t),function(t){return l.call(s,t,n,u)},function(t){return d.call(s,t,n,u)})}),a?o([r,a]):r},function(e){return p.reject({request:t,error:e})})}return"object"==typeof e&&(n=e),"function"!=typeof e&&(e=t.client||u),n=s(n||{}),f(r,e)}}var u,a,c,f,p;return u=t("./client/default"),a=t("./util/mixin"),c=t("./util/responsePromise"),f=t("./client"),p=t("when"),s.ComplexRequest=i,s})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"./client":20,"./client/default":21,"./util/mixin":39,"./util/responsePromise":41,when:61}],24:[function(e,n){!function(t){"use strict";t(function(t){var e,n,r;return e=t("../interceptor"),n=t("../util/mixin"),r=function(){function t(t,e,r){(t in e||t in r)&&(e[t]=n({},r[t],e[t]))}function e(t,e,n){t in n&&!(t in e)&&(e[t]=n[t])}var r={method:e,path:e,params:t,headers:t,entity:e,mixin:t};return function(t,e){for(var n in r)r[n](n,t,e);return t}}(),e({request:function(t,e){return r(t,e)}})})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../interceptor":23,"../util/mixin":39}],25:[function(e,n){!function(t){"use strict";t(function(t){var e,n;return e=t("../interceptor"),n=t("when"),e({init:function(t){return t.code=t.code||400,t},response:function(t,e){return t.status&&t.status.code>=e.code?n.reject(t):t}})})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../interceptor":23,when:61}],26:[function(e,n){!function(t){"use strict";t(function(t){var e,n,r,o,i;return e=t("../interceptor"),n=t("../mime"),r=t("../mime/registry"),i=t("when"),o={read:function(t){return t},write:function(t){return t}},e({init:function(t){return t.registry=t.registry||r,t},request:function(t,e){var r,s;return s=t.headers||(t.headers={}),r=n.parse(s["Content-Type"]=s["Content-Type"]||e.mime||"text/plain"),s.Accept=s.Accept||e.accept||r.raw+", application/json;q=0.8, text/plain;q=0.5, */*;q=0.2","entity"in t?e.registry.lookup(r).otherwise(function(){if(e.permissive)return o;throw"mime-unknown"}).then(function(n){var o=e.client||t.originator;return i.attempt(n.write,t.entity,{client:o,request:t,mime:r,registry:e.registry}).otherwise(function(){throw"mime-serialization"}).then(function(e){return t.entity=e,t})}):t},response:function(t,e){if(!(t.headers&&t.headers["Content-Type"]&&t.entity))return t;var r=n.parse(t.headers["Content-Type"]);return e.registry.lookup(r).otherwise(function(){return o}).then(function(n){var o=e.client||t.request&&t.request.originator;return i.attempt(n.read,t.entity,{client:o,response:t,mime:r,registry:e.registry}).otherwise(function(e){throw t.error="mime-deserialization",t.cause=e,t}).then(function(e){return t.entity=e,t})})}})})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../interceptor":23,"../mime":29,"../mime/registry":30,when:61}],27:[function(e,n){!function(t){"use strict";t(function(t){function e(t,e){return 0===t.indexOf(e)}function n(t,e){return t.lastIndexOf(e)+e.length===t.length}var r,o;return r=t("../interceptor"),o=t("../UrlBuilder"),r({request:function(t,r){var i;return r.prefix&&!new o(t.path).isFullyQualified()&&(i=r.prefix,t.path&&(n(i,"/")||e(t.path,"/")||(i+="/"),i+=t.path),t.path=i),t}})})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../UrlBuilder":18,"../interceptor":23}],28:[function(e,n){!function(t){"use strict";t(function(t){var e,n,r;return e=t("../interceptor"),n=t("../util/uriTemplate"),r=t("../util/mixin"),e({init:function(t){return t.params=t.params||{},t.template=t.template||"",t},request:function(t,e){var o,i;return o=t.path||e.template,i=r({},t.params,e.params),t.path=n.expand(o,i),delete t.params,t}})})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../interceptor":23,"../util/mixin":39,"../util/uriTemplate":43}],29:[function(e,n){!function(t){"use strict";var e;t(function(){function t(t){var n,r;return n=t.split(";"),r=n[0].trim().split("+"),{raw:t,type:r[0],suffix:r[1]?"+"+r[1]:"",params:n.slice(1).reduce(function(t,n){return n=n.split("="),t[n[0].trim()]=n[1]?n[1].trim():e,t},{})}}return{parse:t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],30:[function(e,n){!function(t){"use strict";t(function(t){function e(t){this.lookup=function(e){var o;return o="string"==typeof e?n.parse(e):e,t[o.raw]?t[o.raw]:t[o.type+o.suffix]?t[o.type+o.suffix]:t[o.type]?t[o.type]:t[o.suffix]?t[o.suffix]:r.reject(new Error('Unable to locate converter for mime "'+o.raw+'"'))},this.delegate=function(t){return{read:function(){var e=arguments;return this.lookup(t).then(function(t){return t.read.apply(this,e)}.bind(this))}.bind(this),write:function(){var e=arguments;return this.lookup(t).then(function(t){return t.write.apply(this,e)}.bind(this))}.bind(this)}},this.register=function(e,n){return t[e]=r(n),t[e]},this.child=function(){return new e(Object.create(t))}}var n,r,o;return n=t("../mime"),r=t("when"),o=new e({}),o.register("application/hal",t("./type/application/hal")),o.register("application/json",t("./type/application/json")),o.register("application/x-www-form-urlencoded",t("./type/application/x-www-form-urlencoded")),o.register("multipart/form-data",t("./type/multipart/form-data")),o.register("text/plain",t("./type/text/plain")),o.register("+json",o.delegate("application/json")),o})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../mime":29,"./type/application/hal":31,"./type/application/json":32,"./type/application/x-www-form-urlencoded":33,"./type/multipart/form-data":34,"./type/text/plain":35,when:61}],31:[function(e,n){!function(t){"use strict";t(function(t){function e(t,e,n){Object.defineProperty(t,e,{value:n,configurable:!0,enumerable:!1,writeable:!0})}var n,r,o,i,s,u;return n=t("../../../interceptor/pathPrefix"),r=t("../../../interceptor/template"),o=t("../../../util/find"),i=t("../../../util/lazyPromise"),s=t("../../../util/responsePromise"),u=t("when"),{read:function(t,a){function c(t,e){(e&&p&&p.warn||p.log)&&(p.warn||p.log).call(p,"Relationship '"+t+"' is deprecated, see "+e)}var f,p;return a=a||{},f=a.client,p=a.console||p,a.registry.lookup(a.mime.suffix).then(function(p){return u(p.read(t,a)).then(function(t){return o.findProperties(t,"_embedded",function(t,n,r){Object.keys(t).forEach(function(r){if(!(r in n)){var o=s({entity:t[r]});e(n,r,o)}}),e(n,r,t)}),o.findProperties(t,"_links",function(t,o,u){Object.keys(t).forEach(function(n){
2 | var u=t[n];n in o||e(o,n,s.make(i(function(){return u.deprecation&&c(n,u.deprecation),u.templated===!0?r(f)({path:u.href}):f({path:u.href})})))}),e(o,u,t),e(o,"clientFor",function(e,o){var i=t[e];if(!i)throw new Error("Unknown relationship: "+e);return i.deprecation&&c(e,i.deprecation),i.templated===!0?r(o||f,{template:i.href}):n(o||f,{prefix:i.href})}),e(o,"requestFor",function(t,e,n){var r=this.clientFor(t,n);return r(e)})}),t})})},write:function(t,e){return e.registry.lookup(e.mime.suffix).then(function(n){return n.write(t,e)})}}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../../../interceptor/pathPrefix":27,"../../../interceptor/template":28,"../../../util/find":37,"../../../util/lazyPromise":38,"../../../util/responsePromise":41,when:61}],32:[function(e,n){!function(t){"use strict";t(function(){function t(e,n){return{read:function(t){return JSON.parse(t,e)},write:function(t){return JSON.stringify(t,n)},extend:t}}return t()})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],33:[function(e,n){!function(t){"use strict";t(function(){function t(t){return t=encodeURIComponent(t),t.replace(r,"+")}function e(t){return t=t.replace(o," "),decodeURIComponent(t)}function n(e,r,o){return Array.isArray(o)?o.forEach(function(t){e=n(e,r,t)}):(e.length>0&&(e+="&"),e+=t(r),void 0!==o&&null!==o&&(e+="="+t(o))),e}var r,o;return r=/%20/g,o=/\+/g,{read:function(t){var n={};return t.split("&").forEach(function(t){var r,o,i;r=t.split("="),o=e(r[0]),i=2===r.length?e(r[1]):null,o in n?(Array.isArray(n[o])||(n[o]=[n[o]]),n[o].push(i)):n[o]=i}),n},write:function(t){var e="";return Object.keys(t).forEach(function(r){e=n(e,r,t[r])}),e}}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],34:[function(e,n){!function(t){"use strict";t(function(){function t(t){return t&&1===t.nodeType&&"FORM"===t.tagName}function e(t){var e,n=new FormData;for(var r in t)t.hasOwnProperty(r)&&(e=t[r],e instanceof File?n.append(r,e,e.name):e instanceof Blob?n.append(r,e):n.append(r,String(e)));return n}return{write:function(n){if("undefined"==typeof FormData)throw new Error("The multipart/form-data mime serializer requires FormData support");if(n instanceof FormData)return n;if(t(n))return new FormData(n);if("object"==typeof n&&null!==n)return e(n);throw new Error("Unable to create FormData from object "+n)}}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],35:[function(e,n){!function(t){"use strict";t(function(){return{read:function(t){return t},write:function(t){return t.toString()}}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],36:[function(e,n){!function(t){"use strict";t(function(){function t(t){if(/([^\u0000-\u00ff])/.test(t))throw new Error("Can't base64 encode non-ASCII characters.");for(var e,r,o,i=0,s=[];i>2));break;case 1:s.push(n.charAt((3&r)<<4|e>>4));break;case 2:s.push(n.charAt((15&r)<<2|e>>6)),s.push(n.charAt(63&e))}r=e,i+=1}return 0===o?(s.push(n.charAt((3&r)<<4)),s.push("==")):1===o&&(s.push(n.charAt((15&r)<<2)),s.push("=")),s.join("")}function e(t){if(t=t.replace(/\s/g,""),!/^[a-z0-9\+\/\s]+\={0,2}$/i.test(t)||t.length%4>0)throw new Error("Not a base64-encoded string.");var e,r,o,i=0,s=[];for(t=t.replace(/\=/g,"");i>4));break;case 2:s.push(String.fromCharCode((15&r)<<4|e>>2));break;case 3:s.push(String.fromCharCode((3&r)<<6|e))}r=e,i+=1}return s.join("")}var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";return{encode:t,decode:e}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],37:[function(e,n){!function(t){"use strict";t(function(){return{findProperties:function t(e,n,r){"object"==typeof e&&null!==e&&(n in e&&r(e[n],e,n),Object.keys(e).forEach(function(o){t(e[o],n,r)}))}}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],38:[function(e,n){!function(t){"use strict";t(function(t){function e(t){var e,r,o,i,s;return e=n.defer(),r=!1,o=e.resolver,i=e.promise,s=i.then,i.then=function(){return r||(r=!0,n.attempt(t).then(o.resolve,o.reject)),s.apply(i,arguments)},i}var n;return n=t("when"),e})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{when:61}],39:[function(e,n){!function(t){"use strict";t(function(){function t(t){var n,r,o,i;for(t||(t={}),n=1,r=arguments.length;r>n;n+=1){o=arguments[n];for(i in o)i in t&&(t[i]===o[i]||i in e&&e[i]===o[i])||(t[i]=o[i])}return t}var e={};return t})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],40:[function(e,n){!function(t){"use strict";t(function(){function t(t){return t.toLowerCase().split("-").map(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}).join("-")}return t})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],41:[function(e,n){!function(t){"use strict";t(function(t){function e(t,e){return t.then(function(t){return t&&t[e]},function(t){return c.reject(t&&t[e])})}function n(){return e(this,"entity")}function r(){return e(e(this,"status"),"code")}function o(){return e(this,"headers")}function i(t){return t=f(t),e(this.headers(),t)}function s(t){return t=[].concat(t),u(c.reduce(t,function(t,e){if("string"==typeof e&&(e={rel:e}),"function"!=typeof t.entity.clientFor)throw new Error("Hypermedia response expected");var n=t.entity.clientFor(e.rel);return n({params:e.params})},this))}function u(t){return t.status=r,t.headers=o,t.header=i,t.entity=n,t.follow=s,t}function a(){return u(c.apply(c,arguments))}var c=t("when"),f=t("./normalizeHeaderName");return a.make=u,a.reject=function(t){return u(c.reject(t))},a.promise=function(t){return u(c.promise(t))},a})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"./normalizeHeaderName":40,when:61}],42:[function(e,n){!function(t){"use strict";t(function(){function t(t,e){if("string"!=typeof t)throw new Error("String required for URL encoding");return t.split("").map(function(t){if(e.hasOwnProperty(t))return t;var n=t.charCodeAt(0);if(127>=n){var r=n.toString(16).toUpperCase();return"%"+(r.length%2===1?"0":"")+r}return encodeURIComponent(t).toUpperCase()}).join("")}function e(e){return e=e||r.unreserved,function(n){return t(n,e)}}function n(t){return decodeURIComponent(t)}var r;return r=function(){var t={alpha:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",digit:"0123456789"};return t.genDelims=":/?#[]@",t.subDelims="!$&'()*+,;=",t.reserved=t.genDelims+t.subDelims,t.unreserved=t.alpha+t.digit+"-._~",t.url=t.reserved+t.unreserved,t.scheme=t.alpha+t.digit+"+-.",t.userinfo=t.unreserved+t.subDelims+":",t.host=t.unreserved+t.subDelims,t.port=t.digit,t.pchar=t.unreserved+t.subDelims+":@",t.segment=t.pchar,t.path=t.segment+"/",t.query=t.pchar+"/?",t.fragment=t.pchar+"/?",Object.keys(t).reduce(function(e,n){return e[n]=t[n].split("").reduce(function(t,e){return t[e]=!0,t},{}),e},{})}(),{decode:n,encode:e(),encodeURL:e(r.url),encodeScheme:e(r.scheme),encodeUserInfo:e(r.userinfo),encodeHost:e(r.host),encodePort:e(r.port),encodePathSegment:e(r.segment),encodePath:e(r.path),encodeQuery:e(r.query),encodeFragment:e(r.fragment)}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],43:[function(e,n){!function(t){"use strict";var e;t(function(t){function n(t,n,r){return n.split(",").reduce(function(n,o){var s,a;if(s={},"*"===o.slice(-1)&&(o=o.slice(0,-1),s.explode=!0),u.test(o)){var c=u.exec(o);o=c[1],s.maxLength=parseInt(c[2])}return o=i.decode(o),a=r[o],a===e||null===a?n:(Array.isArray(a)?n+=a.reduce(function(e,n){return e.length?(e+=s.explode?t.separator:",",t.named&&s.explode&&(e+=t.encoder(o),e+=n.length?"=":t.empty)):(e+=t.first,t.named&&(e+=t.encoder(o),e+=n.length?"=":t.empty)),e+=t.encoder(n)},""):"object"==typeof a?n+=Object.keys(a).reduce(function(e,n){return e.length?e+=s.explode?t.separator:",":(e+=t.first,t.named&&!s.explode&&(e+=t.encoder(o),e+=a[n].length?"=":t.empty)),e+=t.encoder(n),e+=s.explode?"=":",",e+=t.encoder(a[n])},""):(a=String(a),s.maxLength&&(a=a.slice(0,s.maxLength)),n+=n.length?t.separator:t.first,t.named&&(n+=t.encoder(o),n+=a.length?"=":t.empty),n+=t.encoder(a)),n)},"")}function r(t,e){var r;if(r=s[t.slice(0,1)],r?t=t.slice(1):r=s[""],r.reserved)throw new Error("Reserved expression operations are not supported");return n(r,t,e)}function o(t,e){var n,o,i;for(i="",o=0;;){if(n=t.indexOf("{",o),-1===n){i+=t.slice(o);break}i+=t.slice(o,n),o=t.indexOf("}",n)+1,i+=r(t.slice(n+1,o-1),e)}return i}var i,s,u;return i=t("./uriEncoder"),u=/^([^:]*):([0-9]+)$/,s={"":{first:"",separator:",",named:!1,empty:"",encoder:i.encode},"+":{first:"",separator:",",named:!1,empty:"",encoder:i.encodeURL},"#":{first:"#",separator:",",named:!1,empty:"",encoder:i.encodeURL},".":{first:".",separator:".",named:!1,empty:"",encoder:i.encode},"/":{first:"/",separator:"/",named:!1,empty:"",encoder:i.encode},";":{first:";",separator:";",named:!0,empty:"",encoder:i.encode},"?":{first:"?",separator:"&",named:!0,empty:"=",encoder:i.encode},"&":{first:"&",separator:"&",named:!0,empty:"=",encoder:i.encode},"=":{reserved:!0},",":{reserved:!0},"!":{reserved:!0},"@":{reserved:!0},"|":{reserved:!0}},{expand:o}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"./uriEncoder":42}],44:[function(e,n){!function(t){"use strict";t(function(t){var e=t("./makePromise"),n=t("./Scheduler"),r=t("./env").asap;return e({scheduler:new n(r)})})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"./Scheduler":45,"./env":57,"./makePromise":59}],45:[function(e,n){!function(t){"use strict";t(function(){function t(t){this._async=t,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var e=this;this.drain=function(){e._drain()}}return t.prototype.enqueue=function(t){this._queue[this._queueLen++]=t,this.run()},t.prototype.afterQueue=function(t){this._afterQueue[this._afterQueueLen++]=t,this.run()},t.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},t.prototype._drain=function(){for(var t=0;t>>0,c=a,f=[],p=0;a>p;++p)if(i=e[p],void 0!==i||p in e){if(o=t._handler(i),o.state()>0){u.become(o),t._visitRemaining(e,p,o);break}o.visit(u,n,r)}else--c;return 0===c&&u.reject(new RangeError("any(): array must not be empty")),s}function o(e,n){function r(t){this.resolved||(f.push(t),0===--d&&(p=null,this.resolve(f)))}function o(t){this.resolved||(p.push(t),0===--i&&(f=null,this.reject(p)))}var i,s,u,a=t._defer(),c=a._handler,f=[],p=[],l=e.length>>>0,d=0;for(u=0;l>u;++u)s=e[u],(void 0!==s||u in e)&&++d;for(n=Math.max(n,0),i=d-n+1,d=Math.min(n,d),n>d?c.reject(new RangeError("some(): array must contain at least "+n+" item(s), but had "+d)):0===d&&c.resolve(f),u=0;l>u;++u)s=e[u],(void 0!==s||u in e)&&t._handler(s).visit(c,r,o,c.notify);return a}function i(e,n){return t._traverse(n,e)}function s(e,n){var r=b.call(e);return t._traverse(n,r).then(function(t){return u(r,t)})}function u(e,n){for(var r=n.length,o=new Array(r),i=0,s=0;r>i;++i)n[i]&&(o[s++]=t._handler(e[i]).value);return o.length=s,o}function a(t){return m(t.map(c))}function c(n){var r=t._handler(n);return 0===r.state()?h(n).then(e.fulfilled,e.rejected):(r._unreport(),e.inspect(r))}function f(t,e){return arguments.length>2?y.call(t,l(e),arguments[2]):y.call(t,l(e))}function p(t,e){return arguments.length>2?v.call(t,l(e),arguments[2]):v.call(t,l(e))}function l(t){return function(e,n,r){return d(t,void 0,[e,n,r])}}var d=n(t),h=t.resolve,m=t.all,y=Array.prototype.reduce,v=Array.prototype.reduceRight,b=Array.prototype.slice;return t.any=r,t.some=o,t.settle=a,t.map=i,t.filter=s,t.reduce=f,t.reduceRight=p,t.prototype.spread=function(t){return this.then(m).then(function(e){return t.apply(this,e)})},t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../apply":47,"../state":60}],49:[function(e,n){!function(t){"use strict";t(function(){function t(){throw new TypeError("catch predicate must be a function")}function e(t,e){return n(e)?t instanceof e:e(t)}function n(t){return t===Error||null!=t&&t.prototype instanceof Error}function r(t){return("object"==typeof t||"function"==typeof t)&&null!==t}function o(t){return t}return function(n){function i(t,n){return function(r){return e(r,n)?t.call(this,r):c(r)}}function s(t,e,n,o){var i=t.call(e);return r(i)?u(i,n,o):n(o)}function u(t,e,n){return a(t).then(function(){return e(n)})}var a=n.resolve,c=n.reject,f=n.prototype["catch"];return n.prototype.done=function(t,e){this._handler.visit(this._handler.receiver,t,e)},n.prototype["catch"]=n.prototype.otherwise=function(e){return arguments.length<2?f.call(this,e):"function"!=typeof e?this.ensure(t):f.call(this,i(arguments[1],e))},n.prototype["finally"]=n.prototype.ensure=function(t){return"function"!=typeof t?this:this.then(function(e){return s(t,this,o,e)},function(e){return s(t,this,c,e)})},n.prototype["else"]=n.prototype.orElse=function(t){return this.then(void 0,function(){return t})},n.prototype["yield"]=function(t){return this.then(function(){return t})},n.prototype.tap=function(t){return this.then(t)["yield"](this)},n}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],50:[function(e,n){!function(t){"use strict";t(function(){return function(t){return t.prototype.fold=function(e,n){var r=this._beget();return this._handler.fold(function(n,r,o){t._handler(n).fold(function(t,n,r){r.resolve(e.call(this,n,t))},r,this,o)},n,r._handler.receiver,r._handler),r},t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],51:[function(e,n){!function(t){"use strict";t(function(t){var e=t("../state").inspect;return function(t){return t.prototype.inspect=function(){return e(t._handler(this))},t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../state":60}],52:[function(e,n){!function(t){"use strict";t(function(){return function(t){function e(t,e,r,o){return n(function(e){return[e,t(e)]},e,r,o)}function n(t,e,o,i){function s(i,s){return r(o(i)).then(function(){return n(t,e,o,s)})}return r(i).then(function(n){return r(e(n)).then(function(e){return e?n:r(t(n)).spread(s)})})}var r=t.resolve;return t.iterate=e,t.unfold=n,t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],53:[function(e,n){!function(t){"use strict";t(function(){return function(t){return t.prototype.progress=function(t){return this.then(void 0,void 0,t)},t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],54:[function(e,n){!function(t){"use strict";t(function(t){function e(t,e,r,o){return n.setTimer(function(){t(r,o,e)},e)}var n=t("../env"),r=t("../TimeoutError");return function(t){function o(t,n,r){e(i,t,n,r)}function i(t,e){e.resolve(t)}function s(t,e,n){var o="undefined"==typeof t?new r("timed out after "+n+"ms"):t;e.reject(o)}return t.prototype.delay=function(t){var e=this._beget();return this._handler.fold(o,t,void 0,e._handler),e},t.prototype.timeout=function(t,r){var o=this._beget(),i=o._handler,u=e(s,t,r,o._handler);return this._handler.visit(i,function(t){n.clearTimer(u),this.resolve(t)},function(t){n.clearTimer(u),this.reject(t)},i.notify),o},t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../TimeoutError":46,"../env":57}],55:[function(e,n){!function(t){"use strict";t(function(t){function e(t){throw t}function n(){}var r=t("../env").setTimer,o=t("../format");return function(t){function i(t){t.handled||(d.push(t),f("Potentially unhandled rejection ["+t.id+"] "+o.formatError(t.value)))}function s(t){var e=d.indexOf(t);e>=0&&(d.splice(e,1),p("Handled previous rejection ["+t.id+"] "+o.formatObject(t.value)))}function u(t,e){l.push(t,e),null===h&&(h=r(a,0))}function a(){for(h=null;l.length>0;)l.shift()(l.shift())}var c,f=n,p=n;"undefined"!=typeof console&&(c=console,f="undefined"!=typeof c.error?function(t){c.error(t)}:function(t){c.log(t)},p="undefined"!=typeof c.info?function(t){c.info(t)}:function(t){c.log(t)}),t.onPotentiallyUnhandledRejection=function(t){u(i,t)},t.onPotentiallyUnhandledRejectionHandled=function(t){u(s,t)},t.onFatalRejection=function(t){u(e,t.value)};var l=[],d=[],h=null;return t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../env":57,"../format":58}],56:[function(e,n){!function(t){"use strict";t(function(){return function(t){return t.prototype["with"]=t.prototype.withThis=function(t){var e=this._beget(),n=e._handler;return n.receiver=t,this._handler.chain(n,t),e},t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],57:[function(e,n){(function(r){!function(t){"use strict";t(function(t){function e(){return"undefined"!=typeof r&&"[object process]"===Object.prototype.toString.call(r)}function n(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function o(t){function e(){var t=n;n=void 0,t()}var n,r=document.createTextNode(""),o=new t(e);o.observe(r,{characterData:!0});var i=0;return function(t){n=t,r.data=i^=1}}var i,s="undefined"!=typeof setTimeout&&setTimeout,u=function(t,e){return setTimeout(t,e)},a=function(t){return clearTimeout(t)},c=function(t){return s(t,0)};if(e())c=function(t){return r.nextTick(t)};else if(i=n())c=o(i);else if(!s){var f=t,p=f("vertx");u=function(t,e){return p.setTimer(e,t)},a=p.cancelTimer,c=p.runOnLoop||p.runOnContext}return{setTimer:u,clearTimer:a,asap:c}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})}).call(this,e("_process"))},{_process:17}],58:[function(e,n){!function(t){"use strict";t(function(){function t(t){var n="object"==typeof t&&null!==t&&(t.stack||t.message)?t.stack||t.message:e(t);return t instanceof Error?n:n+" (WARNING: non-Error used)"}function e(t){var e=String(t);return"[object Object]"===e&&"undefined"!=typeof JSON&&(e=n(t,e)),e}function n(t,e){try{return JSON.stringify(t)}catch(n){return e}}return{formatError:t,formatObject:e,tryStringify:n}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],59:[function(e,n){(function(e){!function(t){"use strict";t(function(){return function(t){function n(t,e){this._handler=t===w?e:r(t)}function r(t){function e(t){o.resolve(t)}function n(t){o.reject(t)}function r(t){o.notify(t)}var o=new x;try{t(e,n,r)}catch(i){n(i)}return o}function o(t){return L(t)?t:new n(w,new A(v(t)))}function i(t){return new n(w,new A(new E(t)))}function s(){return tt}function u(){return new n(w,new x)}function a(t,e){var n=new x(t.receiver,t.join().context);return new e(w,n)}function c(t){return p(Y,null,t)}function f(t,e){return p(F,t,e)}function p(t,e,r){function o(n,o,s){s.resolved||l(r,i,n,t(e,o,n),s)}function i(t,e,n){f[t]=e,0===--c&&n.become(new j(f))}for(var s,u="function"==typeof e?o:i,a=new x,c=r.length>>>0,f=new Array(c),p=0;p0?e(n,i.value,o):(o.become(i),d(t,n+1,i))}else e(n,r,o)}function d(t,e,n){for(var r=e;rn&&t._unreport()}}function m(t){return"object"!=typeof t||null===t?i(new TypeError("non-iterable passed to race()")):0===t.length?s():1===t.length?o(t[0]):y(t)}function y(t){var e,r,o,i=new x;for(e=0;e0||"function"!=typeof e&&0>o)return new this.constructor(w,r);var i=this._beget(),s=i._handler;return r.chain(s,r.receiver,t,e,n),i},n.prototype["catch"]=function(t){return this.then(void 0,t)},n.prototype._beget=function(){return a(this._handler,this.constructor)},n.all=c,n.race=m,n._traverse=f,n._visitRemaining=d,w.prototype.when=w.prototype.become=w.prototype.notify=w.prototype.fail=w.prototype._unreport=w.prototype._report=B,w.prototype._state=0,w.prototype.state=function(){return this._state},w.prototype.join=function(){for(var t=this;void 0!==t.handler;)t=t.handler;return t},w.prototype.chain=function(t,e,n,r,o){this.when({resolver:t,receiver:e,fulfilled:n,rejected:r,progress:o})},w.prototype.visit=function(t,e,n,r){this.chain(K,t,e,n,r)},w.prototype.fold=function(t,e,n,r){this.when(new O(t,e,n,r))},Q(w,_),_.prototype.become=function(t){t.fail()};var K=new _;Q(w,x),x.prototype._state=0,x.prototype.resolve=function(t){this.become(v(t))},x.prototype.reject=function(t){this.resolved||this.become(new E(t))},x.prototype.join=function(){if(!this.resolved)return this;for(var t=this;void 0!==t.handler;)if(t=t.handler,t===this)return this.handler=P();return t},x.prototype.run=function(){var t=this.consumers,e=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var n=0;n0?n(r.value):e(r.value)}return{pending:t,fulfilled:n,rejected:e,inspect:r}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],61:[function(e,n){!function(t){"use strict";t(function(t){function e(t,e,n,r){var o=A.resolve(t);return arguments.length<2?o:o.then(e,n,r)}function n(t){return new A(t)}function r(t){return function(){for(var e=0,n=arguments.length,r=new Array(n);n>e;++e)r[e]=arguments[e];return T(t,this,r)}}function o(t){for(var e=0,n=arguments.length-1,r=new Array(n);n>e;++e)r[e]=arguments[e+1];return T(t,this,r)}function i(){return new s}function s(){function t(t){r._handler.resolve(t)}function e(t){r._handler.reject(t)}function n(t){r._handler.notify(t)}var r=A._defer();this.promise=r,this.resolve=t,this.reject=e,this.notify=n,this.resolver={resolve:t,reject:e,notify:n}}function u(t){return t&&"function"==typeof t.then}function a(){return A.all(arguments)}function c(t){return e(t,A.all)}function f(t){return e(t,A.settle)}function p(t,n){return e(t,function(t){return A.map(t,n)})}function l(t,n){return e(t,function(t){return A.filter(t,n)})}var d=t("./lib/decorators/timed"),h=t("./lib/decorators/array"),m=t("./lib/decorators/flow"),y=t("./lib/decorators/fold"),v=t("./lib/decorators/inspect"),b=t("./lib/decorators/iterate"),g=t("./lib/decorators/progress"),w=t("./lib/decorators/with"),_=t("./lib/decorators/unhandledRejection"),x=t("./lib/TimeoutError"),A=[h,m,y,b,g,v,w,d,_].reduce(function(t,e){return e(t)},t("./lib/Promise")),T=t("./lib/apply")(A);return e.promise=n,e.resolve=A.resolve,e.reject=A.reject,e.lift=r,e["try"]=o,e.attempt=o,e.iterate=A.iterate,e.unfold=A.unfold,e.join=a,e.all=c,e.settle=f,e.any=r(A.any),e.some=r(A.some),e.race=r(A.race),e.map=p,e.filter=l,e.reduce=r(A.reduce),e.reduceRight=r(A.reduceRight),e.isPromiseLike=u,e.Promise=A,e.defer=i,e.TimeoutError=x,e})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"./lib/Promise":44,"./lib/TimeoutError":46,"./lib/apply":47,"./lib/decorators/array":48,"./lib/decorators/flow":49,"./lib/decorators/fold":50,"./lib/decorators/inspect":51,"./lib/decorators/iterate":52,"./lib/decorators/progress":53,"./lib/decorators/timed":54,"./lib/decorators/unhandledRejection":55,"./lib/decorators/with":56}],62:[function(t,e){var n=e.exports=function(t,e){if(e||(e=16),void 0===t&&(t=128),0>=t)return"0";for(var r=Math.log(Math.pow(2,t))/Math.log(e),o=2;r===1/0;o*=2)r=Math.log(Math.pow(2,t/o))/Math.log(e)*o;for(var i=r-Math.floor(r),s="",o=0;o=Math.pow(2,t)?n(t,e):s}},{}],63:[function(t,e){(function(t){"use strict";var n=t.env.NODE_ENV,r=function(t,e,r,o,i,s,u,a){if("production"!==n&&void 0===e)throw new Error("invariant requires an error message argument");if(!t){var c;if(void 0===e)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var f=[r,o,i,s,u,a],p=0;c=new Error(e.replace(/%s/g,function(){return f[p++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}};e.exports=r}).call(this,t("_process"))},{_process:17}],64:[function(t,e){function n(t){for(var e=1;e<iframe src="'+window.location.href+'" width="100%" height="600px" ></iframe>'
46 | }
47 | }
48 | ClimateChangeProjections.embedBox.setUrl();
49 |
50 |
51 | // Create the map
52 | var map = new mapboxgl.Map({
53 | container: 'map',
54 | style: 'mapbox://styles/mapbox/dark-v9',
55 | center: ClimateChangeProjections.map.center,
56 | zoom: ClimateChangeProjections.map.zoom,
57 | });
58 |
59 | // Disable scroll zooming in iframe
60 | if ( window.location !== window.parent.location ) {
61 | map.scrollZoom.disable();
62 | }
63 |
64 | // Connect to Mapbox
65 | var client = new MapboxClient(mapboxgl.accessToken);
66 |
67 | // Create the geocoder
68 | var geocoder = new MapboxGeocoder({
69 | placeholder: 'Search a location',
70 | flyTo: false,
71 | accessToken: mapboxgl.accessToken
72 | });
73 |
74 | // Add Geocoder to map
75 | map.addControl(geocoder, 'top-left');
76 |
77 | // Add zoom navigation to map
78 | map.addControl(new mapboxgl.NavigationControl(), 'top-left');
79 |
80 |
81 | // Create the draggable point on the map
82 | var geojson = {
83 | type: 'FeatureCollection',
84 | features: [{
85 | type: 'Feature',
86 | geometry: {
87 | type: 'Point',
88 | coordinates: ClimateChangeProjections.point.coordinates
89 | }
90 | }]
91 | };
92 | // Make sure popup on draggable point can't be closed
93 | var popup = new mapboxgl.Popup({
94 | closeButton: false,
95 | closeOnClick: false
96 | });
97 |
98 |
99 | map.on('load', function() {
100 |
101 | // Apply sources and layer styling
102 | map.addSource('temperature', {
103 | type: 'vector',
104 | url: 'mapbox://dnomadb.bm36vjqh'
105 | });
106 |
107 | map.addSource('point', {
108 | type: 'geojson',
109 | data: geojson
110 | });
111 |
112 | map.addLayer({
113 | id: 'point-casing',
114 | source: 'point',
115 | type: 'circle',
116 | paint: {
117 | 'circle-radius': 15,
118 | 'circle-color': '#fff'
119 | }
120 | });
121 |
122 | map.addLayer({
123 | id: 'point',
124 | source: 'point',
125 | type: 'circle',
126 | paint: {
127 | 'circle-radius': 10,
128 | 'circle-color': 'rgba(0,0,0,0.25)'
129 | }
130 | });
131 |
132 | map.addLayer({
133 | id: 'temperature2070',
134 | type: 'fill',
135 | source: 'temperature',
136 | 'source-layer': 'worldclim',
137 | paint: {
138 | 'fill-color': 'transparent',
139 | 'fill-antialias': false
140 | }
141 | }, 'water');
142 |
143 | map.addLayer({
144 | id: 'temperature2050',
145 | type: 'fill',
146 | source: 'temperature',
147 | 'source-layer': 'worldclim',
148 | paint: {
149 | 'fill-color': 'transparent',
150 | 'fill-antialias': false
151 | }
152 | }, 'water');
153 |
154 | map.addLayer({
155 | id: 'temperature2016',
156 | type: 'fill',
157 | source: 'temperature',
158 | 'source-layer': 'worldclim',
159 | paint: {
160 | 'fill-color': 'transparent',
161 | 'fill-antialias': false
162 | }
163 | }, 'water');
164 |
165 | // Events
166 | map.on('mousemove', move);
167 | map.on('mousedown', dragDown);
168 | map.on('touchstart', move);
169 | map.on('touchstart', dragDown);
170 | map.on('zoomend', ClimateChangeProjections.setUrlParameters);
171 | map.on('dragend', ClimateChangeProjections.setUrlParameters);
172 | map.on('mouseup', ClimateChangeProjections.setUrlParameters);
173 | map.on('touchend', ClimateChangeProjections.setUrlParameters);
174 |
175 | // Initialize the viz
176 | var initialCoords = geojson.features[0].geometry.coordinates;
177 | setPointLoading(initialCoords);
178 | window.setTimeout(function() {
179 | geolocatePoint(initialCoords);
180 | generateVisualization(map.project(initialCoords));
181 | }, 1000);
182 | });
183 |
184 | function move(e) {
185 | var features = map.queryRenderedFeatures(e.point, { layers: ['point'] });
186 |
187 | if (features.length) {
188 | map.setPaintProperty('point', 'circle-color', 'rgba(0,0,0,0.5)');
189 | map.getCanvasContainer().style.cursor = 'move';
190 | isCursorOverPoint = true;
191 | map.dragPan.disable();
192 | popup.setText('Drag me!');
193 | } else {
194 | map.setPaintProperty('point', 'circle-color', 'rgba(0,0,0,0.25)');
195 | map.getCanvasContainer().style.cursor = '';
196 | isCursorOverPoint = false;
197 | if (storedPopupText) popup.setText(storedPopupText);
198 | map.dragPan.enable();
199 | }
200 | }
201 |
202 | function dragDown() {
203 | if (!isCursorOverPoint) return;
204 | isDragging = true;
205 | popup.remove();
206 | map.getCanvasContainer().style.cursor = 'grab';
207 | map.on('mousemove', onDragMove);
208 | map.on('mouseup', onDragUp);
209 | map.on('touchmove', onDragMove);
210 | map.on('touchend', onDragUp);
211 | }
212 |
213 | function onDragMove(e) {
214 | if (!isDragging) return;
215 | var coords = e.lngLat;
216 | map.getCanvasContainer().style.cursor = 'grabbing';
217 | geojson.features[0].geometry.coordinates = [coords.lng, coords.lat];
218 | map.getSource('point').setData(geojson);
219 | }
220 |
221 | function setPointLoading(coords) {
222 | var load = document.createElement('div');
223 | load.className = 'loading';
224 | popup
225 | .setLngLat(coords)
226 | .setDOMContent(load)
227 | .addTo(map);
228 | }
229 |
230 | function onDragUp(e) {
231 | if (!isDragging) return;
232 | generateVisualization(e.point);
233 | var coords = [e.lngLat.lng, e.lngLat.lat];
234 | setPointLoading(coords);
235 | geolocatePoint(coords);
236 | isDragging = false;
237 | map.off('mousemove', onDragMove);
238 | map.off('mouseup', onDragUp);
239 | map.off('touchmove', onDragMove);
240 | map.off('touchend', onDragUp);
241 | }
242 |
243 | geocoder.on('result', function(e) {
244 | generateVisualization(map.project(e.result.center));
245 | storedPopupText = e.result.place_name;
246 | document.getElementById('location').textContent = storedPopupText;
247 | geojson.features[0].geometry.coordinates = e.result.center;
248 | map.getSource('point').setData(geojson);
249 | popup
250 | .setLngLat(e.result.center)
251 | .setText(storedPopupText)
252 | .addTo(map);
253 | });
254 |
255 | function generateVisualization(pos) {
256 | document.getElementById('loader-parent').className = 'hidden';
257 |
258 | var features = map.queryRenderedFeatures(pos, {
259 | layers: ['temperature2016']
260 | });
261 |
262 | if (!features.length) return;
263 | var feature = features[0];
264 | var currentTemp = feature.properties.band_3;
265 |
266 | var col_2070 = ['rgba(250,111,116,0)', 'rgba(250,111,116,0.75)'];
267 | var col_2050 = ['rgba(179,108,163,0)', 'rgba(179,108,163,0.75)'];
268 | var col_2016 = ['rgba(62,113,154,0)', 'rgba(62,113,154,0.75)'];
269 |
270 | // only works w/ one so far
271 | map.setPaintProperty('temperature2070', 'fill-color', {
272 | property: 'band_1',
273 | stops: [
274 | [currentTemp - 20, col_2070[0]],
275 | [currentTemp - 10, col_2070[1]],
276 | [currentTemp + 10, col_2070[1]],
277 | [currentTemp + 20, col_2070[0]]
278 | ]
279 | });
280 |
281 | map.setPaintProperty('temperature2050', 'fill-color', {
282 | property: 'band_2',
283 | stops: [
284 | [currentTemp - 20, col_2050[0]],
285 | [currentTemp - 10, col_2050[1]],
286 | [currentTemp + 10, col_2050[1]],
287 | [currentTemp + 20, col_2050[0]]
288 | ]
289 | });
290 |
291 | map.setPaintProperty('temperature2016', 'fill-color', {
292 | property: 'band_3',
293 | stops: [
294 | [currentTemp - 20, col_2016[0]],
295 | [currentTemp - 10, col_2016[1]],
296 | [currentTemp + 10, col_2016[1]],
297 | [currentTemp + 20, col_2016[0]]
298 | ]
299 | });
300 |
301 | buildLegend([{
302 | label: '2016',
303 | color: col_2016[1],
304 | value: feature.properties.band_1 / 10 + 'oC'
305 | }, {
306 | label: '2050',
307 | color: col_2050[1],
308 | value: feature.properties.band_2 / 10 + 'oC'
309 | }, {
310 | label: '2070',
311 | color: col_2070[1],
312 | value: feature.properties.band_3 / 10 + 'oC'
313 | }]);
314 | }
315 |
316 | function buildLegend(keys) {
317 | var legend = document.getElementById('legend');
318 | legend.innerHTML = '';
319 | keys.forEach(function(key) {
320 | var block = document.createElement('div');
321 | block.className = 'col4 pad1x pad0y';
322 | block.style.backgroundColor = key.color;
323 |
324 | var value = document.createElement('value');
325 | value.className = 'small strong center block legend-value';
326 | value.innerHTML = key.value;
327 |
328 | var date = document.createElement('date');
329 | date.className = 'micro center quiet block';
330 | date.textContent = key.label;
331 |
332 | block.appendChild(value);
333 | block.appendChild(date);
334 | legend.appendChild(block);
335 | });
336 | }
337 |
338 | function geolocatePoint(coords) {
339 | client.geocodeReverse({
340 | longitude: coords[0],
341 | latitude: coords[1]
342 | }, {
343 | dataset: 'mapbox.places',
344 | types: 'neighborhood,locality,region,country'
345 | }).then(function(res) {
346 | storedPopupText = res.features.length ? res.features[0].place_name : 'No location found';
347 | document.getElementById('location').textContent = storedPopupText;
348 | popup.setText(storedPopupText);
349 | }).catch(function(err) {
350 | console.warn(err);
351 | });
352 | }
353 |
354 | // Append custom attribution
355 | var bottomContainer = document.querySelector('.mapboxgl-ctrl-bottom-right');
356 | var attribution = document.createElement('div');
357 | attribution.className = 'mapboxgl-ctrl-attrib mapboxgl-ctrl hide-mobile';
358 |
359 | var attrib = document.createElement('a');
360 | attrib.target = '_blank';
361 | attrib.textContent = 'Climate data WorldClim';
362 | attrib.href = 'http://www.worldclim.org/';
363 |
364 | attribution.appendChild(attrib);
365 | bottomContainer.appendChild(attribution);
366 |
--------------------------------------------------------------------------------
/js/utilities.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | function getUrlParameters(parameter, staticURL='', decode=true){
4 | /*
5 | Function: getUrlParameters
6 | Description: Get the value of URL parameters either from
7 | current URL or static URL
8 | Author: Tirumal
9 | URL: www.code-tricks.com
10 | */
11 | var currLocation = (staticURL.length)? staticURL : window.location.hash;
12 | if (!currLocation) return false ;
13 | var parArr = currLocation.split("#!/")[1].split("&");
14 | var returnBool = true;
15 |
16 | for(var i = 0; i < parArr.length; i++){
17 | var parr = parArr[i].split("=");
18 | if(parr[0] == parameter){
19 | return (decode) ? decodeURIComponent(parr[1]) : parr[1];
20 | returnBool = true;
21 | }else{
22 | returnBool = false;
23 | }
24 | }
25 |
26 | if(!returnBool) return false;
27 | }
28 |
29 | function setUrlParameters(parameter, value, staticURL='', encode=true){
30 | /*
31 | Function: setUrlParameters
32 | Description: Set the value of URL parameters either from
33 | current URL or static URL
34 | Author: David Lemayian
35 | URL: https://twitter.com/DavidLemayian
36 | */
37 | var currLocation = (staticURL.length)? staticURL : window.location.hash;
38 | if (!currLocation){
39 | var parArr = [];
40 | } else {
41 | var parArr = currLocation.split("#!/")[1].split("&");
42 | }
43 | var parArrNew = [];
44 | var returnUrl = '';
45 |
46 | value = (encode) ? encodeURIComponent(value) : value;
47 |
48 | if (getUrlParameters(parameter, staticURL, encode) != false) {
49 | // Parameters existing in URL
50 | for(var i = 0; i < parArr.length; i++){
51 | var parr = parArr[i].split("=");
52 | if(parr[0] == parameter){
53 | parArrNew[i] = parr[0] + '=' + value;
54 | }else{
55 | parArrNew[i] = parr[0] + '=' + parr[1];
56 | }
57 | }
58 | } else {
59 | parArrNew = parArr;
60 | parArrNew.push(parameter + '=' + value);
61 | }
62 |
63 | return '!/' + parArrNew.join('&');
64 |
65 | }
66 |
67 | function removeUrlParameters (parameter, staticURL='') {
68 | /*
69 | Function: removeUrlParameters
70 | Description: Remove a set URL parameter either from
71 | current URL or static URL
72 | Author: David Lemayian
73 | URL: https://twitter.com/DavidLemayian
74 | */
75 | var currLocation = (staticURL.length)? staticURL : window.location.hash;
76 | if (!currLocation){
77 | var parArr = [];
78 | } else {
79 | var parArr = currLocation.split("#!/")[1].split("&");
80 | }
81 | var parArrNew = [];
82 | var returnUrl = '';
83 |
84 | if (getUrlParameters(parameter, staticURL, true) != false) {
85 | // Parameteres existing in URL
86 | parArrNew_index = 0;
87 | for(var i = 0; i < parArr.length; i++){
88 | parr = parArr[i].split("=");
89 | if(parr[0] == parameter){
90 | // Skip parameter
91 | }else{
92 | parArrNew[parArrNew_index] = parr[0] + '=' + parr[1];
93 | parArrNew_index = parArrNew_index + 1;
94 | }
95 | }
96 | } else {
97 | parArrNew = parArr;
98 | }
99 |
100 | return '!/' + parArrNew.join('&');
101 | }
102 |
103 | function isEmail(email){
104 | return /^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/.test( email );
105 | }
106 |
107 | function isNumeric(n) {
108 | return !isNaN(parseFloat(n)) && isFinite(n);
109 | }
110 |
--------------------------------------------------------------------------------
/js/vendor/jquery-1.12.0.min.js:
--------------------------------------------------------------------------------
1 | /*! jQuery v1.12.0 | (c) jQuery Foundation | jquery.org/license */
2 | !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
3 | return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" a",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""],legend:[1,""],area:[1,""],param:[1,""],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:l.htmlSerialize?[0,"",""]:[1,"X","
"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|?\w+;/,ha=/r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?""!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.rnamespace||a.rnamespace.test(g.namespace))&&(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/
60 |
61 |
62 |
63 |
64 |
65 |
66 |
74 |