├── .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' 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=/\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("