jumbo-jekyll-theme 1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (243) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +19 -0
  4. data/_data/authors.yml +7 -0
  5. data/_data/footer.yml +51 -0
  6. data/_data/nav.yml +78 -0
  7. data/_data/news.yaml +230 -0
  8. data/_data/settings.yml +113 -0
  9. data/_data/sidebar-nav.yml +23 -0
  10. data/_data/sticky-nav.yml +21 -0
  11. data/_includes/breadcrumb.html +101 -0
  12. data/_includes/css.html +9 -0
  13. data/_includes/custom.html +1 -0
  14. data/_includes/display-blog-posts.html +16 -0
  15. data/_includes/disqus-comments.html +14 -0
  16. data/_includes/footer.html +51 -0
  17. data/_includes/google-analytics-script.html +9 -0
  18. data/_includes/gtm-noscript.html +5 -0
  19. data/_includes/gtm-script.html +9 -0
  20. data/_includes/head.html +41 -0
  21. data/_includes/image.html +6 -0
  22. data/_includes/javascript.html +11 -0
  23. data/_includes/jumbotron.html +54 -0
  24. data/_includes/linaro-svg.html +1 -0
  25. data/_includes/media.html +11 -0
  26. data/_includes/members.html +63 -0
  27. data/_includes/nav.html +133 -0
  28. data/_includes/newsletter.html +35 -0
  29. data/_includes/owl-carousel-homepage.html +103 -0
  30. data/_includes/pagination.html +39 -0
  31. data/_includes/post-comments.html +9 -0
  32. data/_includes/post-sidebar.html +59 -0
  33. data/_includes/post-tags.html +13 -0
  34. data/_includes/shape-divider.html +14 -0
  35. data/_includes/shape.html +52 -0
  36. data/_includes/sidebar.html +47 -0
  37. data/_includes/sticky-tab-bar.html +51 -0
  38. data/_includes/youtube.html +7 -0
  39. data/_layouts/container-breadcrumb-left-sidebar.html +10 -0
  40. data/_layouts/container-breadcrumb-right-sidebar.html +9 -0
  41. data/_layouts/container-breadcrumb.html +6 -0
  42. data/_layouts/container-left-sidebar.html +9 -0
  43. data/_layouts/container-right-sidebar.html +9 -0
  44. data/_layouts/container.html +8 -0
  45. data/_layouts/default.html +27 -0
  46. data/_layouts/full-width-breadcrumb.html +10 -0
  47. data/_layouts/full-width.html +9 -0
  48. data/_layouts/home.html +17 -0
  49. data/_layouts/post-featured-image-no-sidebar.html +0 -0
  50. data/_layouts/post-featured-image.html +129 -0
  51. data/_layouts/post-index.html +15 -0
  52. data/_layouts/post-no-sidebar.html +0 -0
  53. data/_layouts/post.html +71 -0
  54. data/_plugins/jekyll_get.rb +40 -0
  55. data/_sass/_bootstrap-compass.scss +9 -0
  56. data/_sass/_bootstrap-mincer.scss +19 -0
  57. data/_sass/_bootstrap-sprockets.scss +9 -0
  58. data/_sass/_bootstrap.scss +56 -0
  59. data/_sass/blog.scss +8 -0
  60. data/_sass/bootstrap/_alerts.scss +73 -0
  61. data/_sass/bootstrap/_badges.scss +68 -0
  62. data/_sass/bootstrap/_breadcrumbs.scss +28 -0
  63. data/_sass/bootstrap/_button-groups.scss +244 -0
  64. data/_sass/bootstrap/_buttons.scss +168 -0
  65. data/_sass/bootstrap/_carousel.scss +270 -0
  66. data/_sass/bootstrap/_close.scss +36 -0
  67. data/_sass/bootstrap/_code.scss +69 -0
  68. data/_sass/bootstrap/_component-animations.scss +37 -0
  69. data/_sass/bootstrap/_dropdowns.scss +216 -0
  70. data/_sass/bootstrap/_forms.scss +617 -0
  71. data/_sass/bootstrap/_glyphicons.scss +307 -0
  72. data/_sass/bootstrap/_grid.scss +84 -0
  73. data/_sass/bootstrap/_input-groups.scss +171 -0
  74. data/_sass/bootstrap/_jumbotron.scss +54 -0
  75. data/_sass/bootstrap/_labels.scss +66 -0
  76. data/_sass/bootstrap/_list-group.scss +130 -0
  77. data/_sass/bootstrap/_media.scss +66 -0
  78. data/_sass/bootstrap/_mixins.scss +40 -0
  79. data/_sass/bootstrap/_modals.scss +150 -0
  80. data/_sass/bootstrap/_navbar.scss +662 -0
  81. data/_sass/bootstrap/_navs.scss +242 -0
  82. data/_sass/bootstrap/_normalize.scss +424 -0
  83. data/_sass/bootstrap/_pager.scss +54 -0
  84. data/_sass/bootstrap/_pagination.scss +89 -0
  85. data/_sass/bootstrap/_panels.scss +271 -0
  86. data/_sass/bootstrap/_popovers.scss +131 -0
  87. data/_sass/bootstrap/_print.scss +101 -0
  88. data/_sass/bootstrap/_progress-bars.scss +87 -0
  89. data/_sass/bootstrap/_responsive-embed.scss +35 -0
  90. data/_sass/bootstrap/_responsive-utilities.scss +179 -0
  91. data/_sass/bootstrap/_scaffolding.scss +161 -0
  92. data/_sass/bootstrap/_tables.scss +234 -0
  93. data/_sass/bootstrap/_theme.scss +291 -0
  94. data/_sass/bootstrap/_thumbnails.scss +38 -0
  95. data/_sass/bootstrap/_tooltip.scss +101 -0
  96. data/_sass/bootstrap/_type.scss +298 -0
  97. data/_sass/bootstrap/_utilities.scss +55 -0
  98. data/_sass/bootstrap/_variables.scss +898 -0
  99. data/_sass/bootstrap/_wells.scss +29 -0
  100. data/_sass/bootstrap/mixins/_alerts.scss +14 -0
  101. data/_sass/bootstrap/mixins/_background-variant.scss +12 -0
  102. data/_sass/bootstrap/mixins/_border-radius.scss +18 -0
  103. data/_sass/bootstrap/mixins/_buttons.scss +65 -0
  104. data/_sass/bootstrap/mixins/_center-block.scss +7 -0
  105. data/_sass/bootstrap/mixins/_clearfix.scss +22 -0
  106. data/_sass/bootstrap/mixins/_forms.scss +88 -0
  107. data/_sass/bootstrap/mixins/_gradients.scss +58 -0
  108. data/_sass/bootstrap/mixins/_grid-framework.scss +81 -0
  109. data/_sass/bootstrap/mixins/_grid.scss +122 -0
  110. data/_sass/bootstrap/mixins/_hide-text.scss +21 -0
  111. data/_sass/bootstrap/mixins/_image.scss +33 -0
  112. data/_sass/bootstrap/mixins/_labels.scss +12 -0
  113. data/_sass/bootstrap/mixins/_list-group.scss +32 -0
  114. data/_sass/bootstrap/mixins/_nav-divider.scss +10 -0
  115. data/_sass/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  116. data/_sass/bootstrap/mixins/_opacity.scss +8 -0
  117. data/_sass/bootstrap/mixins/_pagination.scss +24 -0
  118. data/_sass/bootstrap/mixins/_panels.scss +24 -0
  119. data/_sass/bootstrap/mixins/_progress-bar.scss +10 -0
  120. data/_sass/bootstrap/mixins/_reset-filter.scss +8 -0
  121. data/_sass/bootstrap/mixins/_reset-text.scss +18 -0
  122. data/_sass/bootstrap/mixins/_resize.scss +6 -0
  123. data/_sass/bootstrap/mixins/_responsive-visibility.scss +21 -0
  124. data/_sass/bootstrap/mixins/_size.scss +10 -0
  125. data/_sass/bootstrap/mixins/_tab-focus.scss +9 -0
  126. data/_sass/bootstrap/mixins/_table-row.scss +28 -0
  127. data/_sass/bootstrap/mixins/_text-emphasis.scss +12 -0
  128. data/_sass/bootstrap/mixins/_text-overflow.scss +8 -0
  129. data/_sass/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  130. data/_sass/core.scss +9 -0
  131. data/_sass/core/404.scss +189 -0
  132. data/_sass/core/animations.scss +125 -0
  133. data/_sass/core/blog.scss +348 -0
  134. data/_sass/core/breadcrumb.scss +90 -0
  135. data/_sass/core/carousel-styles.scss +3 -0
  136. data/_sass/core/carousel.scss +175 -0
  137. data/_sass/core/cookieconsent.scss +42 -0
  138. data/_sass/core/critical.scss +0 -0
  139. data/_sass/core/custom.scss +3 -0
  140. data/_sass/core/fa.scss +2336 -0
  141. data/_sass/core/flipclock.scss +435 -0
  142. data/_sass/core/font-awesome.min.scss +4 -0
  143. data/_sass/core/fonts.scss +0 -0
  144. data/_sass/core/footer.scss +140 -0
  145. data/_sass/core/forms.scss +3 -0
  146. data/_sass/core/homepage.scss +79 -0
  147. data/_sass/core/lightbox.scss +213 -0
  148. data/_sass/core/nav.scss +770 -0
  149. data/_sass/core/owl.carousel.min.scss +6 -0
  150. data/_sass/core/owl.theme.default.min.scss +6 -0
  151. data/_sass/core/social-media-icons.scss +71 -0
  152. data/_sass/core/syntax.scss +65 -0
  153. data/_sass/core/tables.scss +125 -0
  154. data/_sass/core/theme.scss +418 -0
  155. data/_sass/custom.scss +0 -0
  156. data/assets/css/app/about.scss +47 -0
  157. data/assets/css/app/blog.scss +48 -0
  158. data/assets/css/app/custom.scss +670 -0
  159. data/assets/css/app/overrides.scss +20 -0
  160. data/assets/css/app/planet.scss +10 -0
  161. data/assets/css/app/press.scss +24 -0
  162. data/assets/css/app/social.scss +29 -0
  163. data/assets/css/app/twitter-feed.scss +414 -0
  164. data/assets/css/app/work.scss +151 -0
  165. data/assets/css/app/youtube.scss +65 -0
  166. data/assets/css/main-404.scss +17 -0
  167. data/assets/css/main-blog.scss +18 -0
  168. data/assets/css/main-home.scss +28 -0
  169. data/assets/css/main-lightbox.scss +28 -0
  170. data/assets/css/main.scss +27 -0
  171. data/assets/fonts/fontawesome-webfont.eot +0 -0
  172. data/assets/fonts/fontawesome-webfont.svg +2671 -0
  173. data/assets/fonts/fontawesome-webfont.ttf +0 -0
  174. data/assets/fonts/fontawesome-webfont.woff +0 -0
  175. data/assets/fonts/fontawesome-webfont.woff2 +0 -0
  176. data/assets/fonts/fontello.eot +0 -0
  177. data/assets/fonts/fontello.svg +44 -0
  178. data/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  179. data/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  180. data/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  181. data/assets/images/96boards-Logo.svg +1 -0
  182. data/assets/images/Linaro-Logo.svg +1 -0
  183. data/assets/images/Linaro-Logo_light.png +0 -0
  184. data/assets/images/Linaro-Logo_standard.svg +1 -0
  185. data/assets/images/Linaro-Sprinkle.svg +13 -0
  186. data/assets/images/avatar-placeholder.png +0 -0
  187. data/assets/images/background-image.jpg +0 -0
  188. data/assets/images/banner.jpg +0 -0
  189. data/assets/images/close.png +0 -0
  190. data/assets/images/css3.png +0 -0
  191. data/assets/images/favicon.ico +0 -0
  192. data/assets/images/favicon.png +0 -0
  193. data/assets/images/html5.png +0 -0
  194. data/assets/images/jekyll.svg +1 -0
  195. data/assets/images/js.jpeg +0 -0
  196. data/assets/images/loading.gif +0 -0
  197. data/assets/images/next.png +0 -0
  198. data/assets/images/owl.video.play.png +0 -0
  199. data/assets/images/placeholder.png +0 -0
  200. data/assets/images/prev.png +0 -0
  201. data/assets/images/social-media-image.png +0 -0
  202. data/assets/js/app/developer-services.js +26 -0
  203. data/assets/js/app/facebook.js +8 -0
  204. data/assets/js/app/home.js +46 -0
  205. data/assets/js/app/main.js +145 -0
  206. data/assets/js/app/mixitup.js +23 -0
  207. data/assets/js/app/openhours-timer.js +23 -0
  208. data/assets/js/app/rss.js +96 -0
  209. data/assets/js/app/search-page.js +40 -0
  210. data/assets/js/app/sticky-navbar.js +65 -0
  211. data/assets/js/app/tables.js +35 -0
  212. data/assets/js/package-blog.js +10 -0
  213. data/assets/js/package-developer-services.js +10 -0
  214. data/assets/js/package-extended.js +12 -0
  215. data/assets/js/package-home.js +10 -0
  216. data/assets/js/package-main.js +8 -0
  217. data/assets/js/package-openhours.js +10 -0
  218. data/assets/js/package-rss.js +11 -0
  219. data/assets/js/package-search.js +9 -0
  220. data/assets/js/package-services.js +6 -0
  221. data/assets/js/package-sticky.js +9 -0
  222. data/assets/js/package-work.js +12 -0
  223. data/assets/js/vendor/bootstrap.min.js +7 -0
  224. data/assets/js/vendor/cognito.js +11 -0
  225. data/assets/js/vendor/cookieconsent.min.js +8 -0
  226. data/assets/js/vendor/filtrify.js +11 -0
  227. data/assets/js/vendor/flipclock.min.js +2 -0
  228. data/assets/js/vendor/jquery.min.js +4 -0
  229. data/assets/js/vendor/jquery.rss.min.js +333 -0
  230. data/assets/js/vendor/jquery.validate.min.js +4 -0
  231. data/assets/js/vendor/lazysizes.min.js +2 -0
  232. data/assets/js/vendor/lightbox.js +519 -0
  233. data/assets/js/vendor/loadCSS.js +35 -0
  234. data/assets/js/vendor/loadCSS.min.js +2 -0
  235. data/assets/js/vendor/ls.unveilhooks.js +145 -0
  236. data/assets/js/vendor/mc-validate.js +14 -0
  237. data/assets/js/vendor/moment.min.js +1 -0
  238. data/assets/js/vendor/owl.carousel.min.js +103 -0
  239. data/assets/js/vendor/picturefill.min.js +5 -0
  240. data/assets/js/vendor/shuffle.js +2004 -0
  241. data/assets/js/vendor/twitter.js +129 -0
  242. data/robots.txt +9 -0
  243. metadata +509 -0
@@ -0,0 +1,4 @@
1
+ /*! jQuery Validation Plugin - v1.17.0 - 7/29/2017
2
+ * https://jqueryvalidation.org/
3
+ * Copyright (c) 2017 Jörn Zaefferer; Licensed MIT */
4
+ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.submitButton=b.currentTarget,a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.submitButton&&(c.settings.submitHandler||c.formSubmitted)&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!c.settings.submitHandler||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(null!=j&&(!j.form&&j.hasAttribute("contenteditable")&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}}),a.extend(a.expr.pseudos||a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){var c=a(b).val();return null!==c&&!!a.trim(""+c)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){!this.form&&this.hasAttribute("contenteditable")&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name"));var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.hasAttribute("contenteditable")&&(this.form=a(this).closest("form")[0],this.name=d),!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type;return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=b.hasAttribute("contenteditable")?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);if("function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f){if(j=f.call(b,j),"string"!=typeof j)throw new TypeError("The normalizer should return a string value.");delete g.normalizer}for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof TypeError&&(k.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){"string"==typeof c&&(c={method:c});var d=this.findDefined(this.customMessage(b.name,c.method),this.customDataMessage(b,c.method),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c.method],"<strong>Warning: No message defined for "+b.name+"</strong>"),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return a.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.submitButton&&a("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(d,e){b[d]=a.isFunction(e)&&"normalizer"!==d?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e<=d},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var b,c={};return a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)}),a});
@@ -0,0 +1,2 @@
1
+ /*! lazysizes - v4.0.0-rc1 */
2
+ !function(a,b){var c=b(a,a.document);a.lazySizes=c,"object"==typeof module&&module.exports&&(module.exports=c)}(window,function(a,b){"use strict";if(b.getElementsByClassName){var c,d,e=b.documentElement,f=a.Date,g=a.HTMLPictureElement,h="addEventListener",i="getAttribute",j=a[h],k=a.setTimeout,l=a.requestAnimationFrame||k,m=a.requestIdleCallback,n=/^picture$/i,o=["load","error","lazyincluded","_lazyloaded"],p={},q=Array.prototype.forEach,r=function(a,b){return p[b]||(p[b]=new RegExp("(\\s|^)"+b+"(\\s|$)")),p[b].test(a[i]("class")||"")&&p[b]},s=function(a,b){r(a,b)||a.setAttribute("class",(a[i]("class")||"").trim()+" "+b)},t=function(a,b){var c;(c=r(a,b))&&a.setAttribute("class",(a[i]("class")||"").replace(c," "))},u=function(a,b,c){var d=c?h:"removeEventListener";c&&u(a,b),o.forEach(function(c){a[d](c,b)})},v=function(a,d,e,f,g){var h=b.createEvent("CustomEvent");return e||(e={}),e.instance=c,h.initCustomEvent(d,!f,!g,e),a.dispatchEvent(h),h},w=function(b,c){var e;!g&&(e=a.picturefill||d.pf)?e({reevaluate:!0,elements:[b]}):c&&c.src&&(b.src=c.src)},x=function(a,b){return(getComputedStyle(a,null)||{})[b]},y=function(a,b,c){for(c=c||a.offsetWidth;c<d.minSize&&b&&!a._lazysizesWidth;)c=b.offsetWidth,b=b.parentNode;return c},z=function(){var a,c,d=[],e=[],f=d,g=function(){var b=f;for(f=d.length?e:d,a=!0,c=!1;b.length;)b.shift()();a=!1},h=function(d,e){a&&!e?d.apply(this,arguments):(f.push(d),c||(c=!0,(b.hidden?k:l)(g)))};return h._lsFlush=g,h}(),A=function(a,b){return b?function(){z(a)}:function(){var b=this,c=arguments;z(function(){a.apply(b,c)})}},B=function(a){var b,c=0,d=125,e=666,g=e,h=function(){b=!1,c=f.now(),a()},i=m?function(){m(h,{timeout:g}),g!==e&&(g=e)}:A(function(){k(h)},!0);return function(a){var e;(a=a===!0)&&(g=44),b||(b=!0,e=d-(f.now()-c),0>e&&(e=0),a||9>e&&m?i():k(i,e))}},C=function(a){var b,c,d=99,e=function(){b=null,a()},g=function(){var a=f.now()-c;d>a?k(g,d-a):(m||e)(e)};return function(){c=f.now(),b||(b=k(g,d))}},D=function(){var c,g,l,m,o,p,y,D,F,G,H,I,J,K,L,M=/^img$/i,N=/^iframe$/i,O="onscroll"in a&&!/glebot/.test(navigator.userAgent),P=0,Q=0,R=0,S=-1,T=function(a){R--,a&&a.target&&u(a.target,T),(!a||0>R||!a.target)&&(R=0)},U=function(a,c){var d,f=a,g="hidden"==x(b.body,"visibility")||"hidden"!=x(a,"visibility");for(F-=c,I+=c,G-=c,H+=c;g&&(f=f.offsetParent)&&f!=b.body&&f!=e;)g=(x(f,"opacity")||1)>0,g&&"visible"!=x(f,"overflow")&&(d=f.getBoundingClientRect(),g=H>d.left&&G<d.right&&I>d.top-1&&F<d.bottom+1);return g},V=function(){var a,f,h,j,k,m,n,p,q;if((o=d.loadMode)&&8>R&&(a=c.length)){f=0,S++,null==K&&("expand"in d||(d.expand=e.clientHeight>500&&e.clientWidth>500?500:370),J=d.expand,K=J*d.expFactor),K>Q&&1>R&&S>2&&o>2&&!b.hidden?(Q=K,S=0):Q=o>1&&S>1&&6>R?J:P;for(;a>f;f++)if(c[f]&&!c[f]._lazyRace)if(O)if((p=c[f][i]("data-expand"))&&(m=1*p)||(m=Q),q!==m&&(y=innerWidth+m*L,D=innerHeight+m,n=-1*m,q=m),h=c[f].getBoundingClientRect(),(I=h.bottom)>=n&&(F=h.top)<=D&&(H=h.right)>=n*L&&(G=h.left)<=y&&(I||H||G||F)&&(d.loadHidden||"hidden"!=x(c[f],"visibility"))&&(l&&3>R&&!p&&(3>o||4>S)||U(c[f],m))){if(ba(c[f]),k=!0,R>9)break}else!k&&l&&!j&&4>R&&4>S&&o>2&&(g[0]||d.preloadAfterLoad)&&(g[0]||!p&&(I||H||G||F||"auto"!=c[f][i](d.sizesAttr)))&&(j=g[0]||c[f]);else ba(c[f]);j&&!k&&ba(j)}},W=B(V),X=function(a){s(a.target,d.loadedClass),t(a.target,d.loadingClass),u(a.target,Z),v(a.target,"lazyloaded")},Y=A(X),Z=function(a){Y({target:a.target})},$=function(a,b){try{a.contentWindow.location.replace(b)}catch(c){a.src=b}},_=function(a){var b,c=a[i](d.srcsetAttr);(b=d.customMedia[a[i]("data-media")||a[i]("media")])&&a.setAttribute("media",b),c&&a.setAttribute("srcset",c)},aa=A(function(a,b,c,e,f){var g,h,j,l,o,p;(o=v(a,"lazybeforeunveil",b)).defaultPrevented||(e&&(c?s(a,d.autosizesClass):a.setAttribute("sizes",e)),h=a[i](d.srcsetAttr),g=a[i](d.srcAttr),f&&(j=a.parentNode,l=j&&n.test(j.nodeName||"")),p=b.firesLoad||"src"in a&&(h||g||l),o={target:a},p&&(u(a,T,!0),clearTimeout(m),m=k(T,2500),s(a,d.loadingClass),u(a,Z,!0)),l&&q.call(j.getElementsByTagName("source"),_),h?a.setAttribute("srcset",h):g&&!l&&(N.test(a.nodeName)?$(a,g):a.src=g),f&&(h||l)&&w(a,{src:g})),a._lazyRace&&delete a._lazyRace,t(a,d.lazyClass),z(function(){(!p||a.complete&&a.naturalWidth>1)&&(p?T(o):R--,X(o))},!0)}),ba=function(a){var b,c=M.test(a.nodeName),e=c&&(a[i](d.sizesAttr)||a[i]("sizes")),f="auto"==e;(!f&&l||!c||!a[i]("src")&&!a.srcset||a.complete||r(a,d.errorClass))&&(b=v(a,"lazyunveilread").detail,f&&E.updateElem(a,!0,a.offsetWidth),a._lazyRace=!0,R++,aa(a,b,f,e,c))},ca=function(){if(!l){if(f.now()-p<999)return void k(ca,999);var a=C(function(){d.loadMode=3,W()});l=!0,d.loadMode=3,W(),j("scroll",function(){3==d.loadMode&&(d.loadMode=2),a()},!0)}};return{_:function(){p=f.now(),c=b.getElementsByClassName(d.lazyClass),g=b.getElementsByClassName(d.lazyClass+" "+d.preloadClass),L=d.hFac,j("scroll",W,!0),j("resize",W,!0),a.MutationObserver?new MutationObserver(W).observe(e,{childList:!0,subtree:!0,attributes:!0}):(e[h]("DOMNodeInserted",W,!0),e[h]("DOMAttrModified",W,!0),setInterval(W,999)),j("hashchange",W,!0),["focus","mouseover","click","load","transitionend","animationend","webkitAnimationEnd"].forEach(function(a){b[h](a,W,!0)}),/d$|^c/.test(b.readyState)?ca():(j("load",ca),b[h]("DOMContentLoaded",W),k(ca,2e4)),c.length?(V(),z._lsFlush()):W()},checkElems:W,unveil:ba}}(),E=function(){var a,c=A(function(a,b,c,d){var e,f,g;if(a._lazysizesWidth=d,d+="px",a.setAttribute("sizes",d),n.test(b.nodeName||""))for(e=b.getElementsByTagName("source"),f=0,g=e.length;g>f;f++)e[f].setAttribute("sizes",d);c.detail.dataAttr||w(a,c.detail)}),e=function(a,b,d){var e,f=a.parentNode;f&&(d=y(a,f,d),e=v(a,"lazybeforesizes",{width:d,dataAttr:!!b}),e.defaultPrevented||(d=e.detail.width,d&&d!==a._lazysizesWidth&&c(a,f,e,d)))},f=function(){var b,c=a.length;if(c)for(b=0;c>b;b++)e(a[b])},g=C(f);return{_:function(){a=b.getElementsByClassName(d.autosizesClass),j("resize",g)},checkElems:g,updateElem:e}}(),F=function(){F.i||(F.i=!0,E._(),D._())};return function(){var b,c={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0};d=a.lazySizesConfig||a.lazysizesConfig||{};for(b in c)b in d||(d[b]=c[b]);a.lazySizesConfig=d,k(function(){d.init&&F()})}(),c={cfg:d,autoSizer:E,loader:D,init:F,uP:w,aC:s,rC:t,hC:r,fire:v,gW:y,rAF:z}}});
@@ -0,0 +1,519 @@
1
+ /*!
2
+ * Lightbox v2.9.0
3
+ * by Lokesh Dhakar
4
+ *
5
+ * More info:
6
+ * http://lokeshdhakar.com/projects/lightbox2/
7
+ *
8
+ * Copyright 2007, 2015 Lokesh Dhakar
9
+ * Released under the MIT license
10
+ * https://github.com/lokesh/lightbox2/blob/master/LICENSE
11
+ *
12
+ * @preserve
13
+ */
14
+
15
+ // Uses Node, AMD or browser globals to create a module.
16
+ (function (root, factory) {
17
+ if (typeof define === 'function' && define.amd) {
18
+ // AMD. Register as an anonymous module.
19
+ define(['jquery'], factory);
20
+ } else if (typeof exports === 'object') {
21
+ // Node. Does not work with strict CommonJS, but
22
+ // only CommonJS-like environments that support module.exports,
23
+ // like Node.
24
+ module.exports = factory(require('jquery'));
25
+ } else {
26
+ // Browser globals (root is window)
27
+ root.lightbox = factory(root.jQuery);
28
+ }
29
+ }(this, function ($) {
30
+
31
+ function Lightbox(options) {
32
+ this.album = [];
33
+ this.currentImageIndex = void 0;
34
+ this.init();
35
+
36
+ // options
37
+ this.options = $.extend({}, this.constructor.defaults);
38
+ this.option(options);
39
+ }
40
+
41
+ // Descriptions of all options available on the demo site:
42
+ // http://lokeshdhakar.com/projects/lightbox2/index.html#options
43
+ Lightbox.defaults = {
44
+ albumLabel: 'Image %1 of %2',
45
+ alwaysShowNavOnTouchDevices: false,
46
+ fadeDuration: 600,
47
+ fitImagesInViewport: true,
48
+ imageFadeDuration: 600,
49
+ // maxWidth: 800,
50
+ // maxHeight: 600,
51
+ positionFromTop: 50,
52
+ resizeDuration: 700,
53
+ showImageNumberLabel: true,
54
+ wrapAround: false,
55
+ disableScrolling: false,
56
+ /*
57
+ Sanitize Title
58
+ If the caption data is trusted, for example you are hardcoding it in, then leave this to false.
59
+ This will free you to add html tags, such as links, in the caption.
60
+
61
+ If the caption data is user submitted or from some other untrusted source, then set this to true
62
+ to prevent xss and other injection attacks.
63
+ */
64
+ sanitizeTitle: false
65
+ };
66
+
67
+ Lightbox.prototype.option = function(options) {
68
+ $.extend(this.options, options);
69
+ };
70
+
71
+ Lightbox.prototype.imageCountLabel = function(currentImageNum, totalImages) {
72
+ return this.options.albumLabel.replace(/%1/g, currentImageNum).replace(/%2/g, totalImages);
73
+ };
74
+
75
+ Lightbox.prototype.init = function() {
76
+ var self = this;
77
+ // Both enable and build methods require the body tag to be in the DOM.
78
+ $(document).ready(function() {
79
+ self.enable();
80
+ self.build();
81
+ });
82
+ };
83
+
84
+ // Loop through anchors and areamaps looking for either data-lightbox attributes or rel attributes
85
+ // that contain 'lightbox'. When these are clicked, start lightbox.
86
+ Lightbox.prototype.enable = function() {
87
+ var self = this;
88
+ $('body').on('click', 'a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]', function(event) {
89
+ self.start($(event.currentTarget));
90
+ return false;
91
+ });
92
+ };
93
+
94
+ // Build html for the lightbox and the overlay.
95
+ // Attach event handlers to the new DOM elements. click click click
96
+ Lightbox.prototype.build = function() {
97
+ var self = this;
98
+ $('<div id="lightboxOverlay" class="lightboxOverlay"></div><div id="lightbox" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /><div class="lb-nav"><a class="lb-prev" href="" ></a><a class="lb-next" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div></div>').appendTo($('body'));
99
+
100
+ // Cache jQuery objects
101
+ this.$lightbox = $('#lightbox');
102
+ this.$overlay = $('#lightboxOverlay');
103
+ this.$outerContainer = this.$lightbox.find('.lb-outerContainer');
104
+ this.$container = this.$lightbox.find('.lb-container');
105
+ this.$image = this.$lightbox.find('.lb-image');
106
+ this.$nav = this.$lightbox.find('.lb-nav');
107
+
108
+ // Store css values for future lookup
109
+ this.containerPadding = {
110
+ top: parseInt(this.$container.css('padding-top'), 10),
111
+ right: parseInt(this.$container.css('padding-right'), 10),
112
+ bottom: parseInt(this.$container.css('padding-bottom'), 10),
113
+ left: parseInt(this.$container.css('padding-left'), 10)
114
+ };
115
+
116
+ this.imageBorderWidth = {
117
+ top: parseInt(this.$image.css('border-top-width'), 10),
118
+ right: parseInt(this.$image.css('border-right-width'), 10),
119
+ bottom: parseInt(this.$image.css('border-bottom-width'), 10),
120
+ left: parseInt(this.$image.css('border-left-width'), 10)
121
+ };
122
+
123
+ // Attach event handlers to the newly minted DOM elements
124
+ this.$overlay.hide().on('click', function() {
125
+ self.end();
126
+ return false;
127
+ });
128
+
129
+ this.$lightbox.hide().on('click', function(event) {
130
+ if ($(event.target).attr('id') === 'lightbox') {
131
+ self.end();
132
+ }
133
+ return false;
134
+ });
135
+
136
+ this.$outerContainer.on('click', function(event) {
137
+ if ($(event.target).attr('id') === 'lightbox') {
138
+ self.end();
139
+ }
140
+ return false;
141
+ });
142
+
143
+ this.$lightbox.find('.lb-prev').on('click', function() {
144
+ if (self.currentImageIndex === 0) {
145
+ self.changeImage(self.album.length - 1);
146
+ } else {
147
+ self.changeImage(self.currentImageIndex - 1);
148
+ }
149
+ return false;
150
+ });
151
+
152
+ this.$lightbox.find('.lb-next').on('click', function() {
153
+ if (self.currentImageIndex === self.album.length - 1) {
154
+ self.changeImage(0);
155
+ } else {
156
+ self.changeImage(self.currentImageIndex + 1);
157
+ }
158
+ return false;
159
+ });
160
+
161
+ /*
162
+ Show context menu for image on right-click
163
+
164
+ There is a div containing the navigation that spans the entire image and lives above of it. If
165
+ you right-click, you are right clicking this div and not the image. This prevents users from
166
+ saving the image or using other context menu actions with the image.
167
+
168
+ To fix this, when we detect the right mouse button is pressed down, but not yet clicked, we
169
+ set pointer-events to none on the nav div. This is so that the upcoming right-click event on
170
+ the next mouseup will bubble down to the image. Once the right-click/contextmenu event occurs
171
+ we set the pointer events back to auto for the nav div so it can capture hover and left-click
172
+ events as usual.
173
+ */
174
+ this.$nav.on('mousedown', function(event) {
175
+ if (event.which === 3) {
176
+ self.$nav.css('pointer-events', 'none');
177
+
178
+ self.$lightbox.one('contextmenu', function() {
179
+ setTimeout(function() {
180
+ this.$nav.css('pointer-events', 'auto');
181
+ }.bind(self), 0);
182
+ });
183
+ }
184
+ });
185
+
186
+
187
+ this.$lightbox.find('.lb-loader, .lb-close').on('click', function() {
188
+ self.end();
189
+ return false;
190
+ });
191
+ };
192
+
193
+ // Show overlay and lightbox. If the image is part of a set, add siblings to album array.
194
+ Lightbox.prototype.start = function($link) {
195
+ var self = this;
196
+ var $window = $(window);
197
+
198
+ $window.on('resize', $.proxy(this.sizeOverlay, this));
199
+
200
+ $('select, object, embed').css({
201
+ visibility: 'hidden'
202
+ });
203
+
204
+ this.sizeOverlay();
205
+
206
+ this.album = [];
207
+ var imageNumber = 0;
208
+
209
+ function addToAlbum($link) {
210
+ self.album.push({
211
+ link: $link.attr('href'),
212
+ title: $link.attr('data-title') || $link.attr('title')
213
+ });
214
+ }
215
+
216
+ // Support both data-lightbox attribute and rel attribute implementations
217
+ var dataLightboxValue = $link.attr('data-lightbox');
218
+ var $links;
219
+
220
+ if (dataLightboxValue) {
221
+ $links = $($link.prop('tagName') + '[data-lightbox="' + dataLightboxValue + '"]');
222
+ for (var i = 0; i < $links.length; i = ++i) {
223
+ addToAlbum($($links[i]));
224
+ if ($links[i] === $link[0]) {
225
+ imageNumber = i;
226
+ }
227
+ }
228
+ } else {
229
+ if ($link.attr('rel') === 'lightbox') {
230
+ // If image is not part of a set
231
+ addToAlbum($link);
232
+ } else {
233
+ // If image is part of a set
234
+ $links = $($link.prop('tagName') + '[rel="' + $link.attr('rel') + '"]');
235
+ for (var j = 0; j < $links.length; j = ++j) {
236
+ addToAlbum($($links[j]));
237
+ if ($links[j] === $link[0]) {
238
+ imageNumber = j;
239
+ }
240
+ }
241
+ }
242
+ }
243
+
244
+ // Position Lightbox
245
+ var top = $window.scrollTop() + this.options.positionFromTop;
246
+ var left = $window.scrollLeft();
247
+ this.$lightbox.css({
248
+ top: top + 'px',
249
+ left: left + 'px'
250
+ }).fadeIn(this.options.fadeDuration);
251
+
252
+ // Disable scrolling of the page while open
253
+ if (this.options.disableScrolling) {
254
+ $('body').addClass('lb-disable-scrolling');
255
+ }
256
+
257
+ this.changeImage(imageNumber);
258
+ };
259
+
260
+ // Hide most UI elements in preparation for the animated resizing of the lightbox.
261
+ Lightbox.prototype.changeImage = function(imageNumber) {
262
+ var self = this;
263
+
264
+ this.disableKeyboardNav();
265
+ var $image = this.$lightbox.find('.lb-image');
266
+
267
+ this.$overlay.fadeIn(this.options.fadeDuration);
268
+
269
+ $('.lb-loader').fadeIn('slow');
270
+ this.$lightbox.find('.lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption').hide();
271
+
272
+ this.$outerContainer.addClass('animating');
273
+
274
+ // When image to show is preloaded, we send the width and height to sizeContainer()
275
+ var preloader = new Image();
276
+ preloader.onload = function() {
277
+ var $preloader;
278
+ var imageHeight;
279
+ var imageWidth;
280
+ var maxImageHeight;
281
+ var maxImageWidth;
282
+ var windowHeight;
283
+ var windowWidth;
284
+
285
+ $image.attr('src', self.album[imageNumber].link);
286
+
287
+ $preloader = $(preloader);
288
+
289
+ $image.width(preloader.width);
290
+ $image.height(preloader.height);
291
+
292
+ if (self.options.fitImagesInViewport) {
293
+ // Fit image inside the viewport.
294
+ // Take into account the border around the image and an additional 10px gutter on each side.
295
+
296
+ windowWidth = $(window).width();
297
+ windowHeight = $(window).height();
298
+ maxImageWidth = windowWidth - self.containerPadding.left - self.containerPadding.right - self.imageBorderWidth.left - self.imageBorderWidth.right - 20;
299
+ maxImageHeight = windowHeight - self.containerPadding.top - self.containerPadding.bottom - self.imageBorderWidth.top - self.imageBorderWidth.bottom - 120;
300
+
301
+ // Check if image size is larger then maxWidth|maxHeight in settings
302
+ if (self.options.maxWidth && self.options.maxWidth < maxImageWidth) {
303
+ maxImageWidth = self.options.maxWidth;
304
+ }
305
+ if (self.options.maxHeight && self.options.maxHeight < maxImageWidth) {
306
+ maxImageHeight = self.options.maxHeight;
307
+ }
308
+
309
+ // Is the current image's width or height is greater than the maxImageWidth or maxImageHeight
310
+ // option than we need to size down while maintaining the aspect ratio.
311
+ if ((preloader.width > maxImageWidth) || (preloader.height > maxImageHeight)) {
312
+ if ((preloader.width / maxImageWidth) > (preloader.height / maxImageHeight)) {
313
+ imageWidth = maxImageWidth;
314
+ imageHeight = parseInt(preloader.height / (preloader.width / imageWidth), 10);
315
+ $image.width(imageWidth);
316
+ $image.height(imageHeight);
317
+ } else {
318
+ imageHeight = maxImageHeight;
319
+ imageWidth = parseInt(preloader.width / (preloader.height / imageHeight), 10);
320
+ $image.width(imageWidth);
321
+ $image.height(imageHeight);
322
+ }
323
+ }
324
+ }
325
+ self.sizeContainer($image.width(), $image.height());
326
+ };
327
+
328
+ preloader.src = this.album[imageNumber].link;
329
+ this.currentImageIndex = imageNumber;
330
+ };
331
+
332
+ // Stretch overlay to fit the viewport
333
+ Lightbox.prototype.sizeOverlay = function() {
334
+ this.$overlay
335
+ .width($(document).width())
336
+ .height($(document).height());
337
+ };
338
+
339
+ // Animate the size of the lightbox to fit the image we are showing
340
+ Lightbox.prototype.sizeContainer = function(imageWidth, imageHeight) {
341
+ var self = this;
342
+
343
+ var oldWidth = this.$outerContainer.outerWidth();
344
+ var oldHeight = this.$outerContainer.outerHeight();
345
+ var newWidth = imageWidth + this.containerPadding.left + this.containerPadding.right + this.imageBorderWidth.left + this.imageBorderWidth.right;
346
+ var newHeight = imageHeight + this.containerPadding.top + this.containerPadding.bottom + this.imageBorderWidth.top + this.imageBorderWidth.bottom;
347
+
348
+ function postResize() {
349
+ self.$lightbox.find('.lb-dataContainer').width(newWidth);
350
+ self.$lightbox.find('.lb-prevLink').height(newHeight);
351
+ self.$lightbox.find('.lb-nextLink').height(newHeight);
352
+ self.showImage();
353
+ }
354
+
355
+ if (oldWidth !== newWidth || oldHeight !== newHeight) {
356
+ this.$outerContainer.animate({
357
+ width: newWidth,
358
+ height: newHeight
359
+ }, this.options.resizeDuration, 'swing', function() {
360
+ postResize();
361
+ });
362
+ } else {
363
+ postResize();
364
+ }
365
+ };
366
+
367
+ // Display the image and its details and begin preload neighboring images.
368
+ Lightbox.prototype.showImage = function() {
369
+ this.$lightbox.find('.lb-loader').stop(true).hide();
370
+ this.$lightbox.find('.lb-image').fadeIn(this.options.imageFadeDuration);
371
+
372
+ this.updateNav();
373
+ this.updateDetails();
374
+ this.preloadNeighboringImages();
375
+ this.enableKeyboardNav();
376
+ };
377
+
378
+ // Display previous and next navigation if appropriate.
379
+ Lightbox.prototype.updateNav = function() {
380
+ // Check to see if the browser supports touch events. If so, we take the conservative approach
381
+ // and assume that mouse hover events are not supported and always show prev/next navigation
382
+ // arrows in image sets.
383
+ var alwaysShowNav = false;
384
+ try {
385
+ document.createEvent('TouchEvent');
386
+ alwaysShowNav = (this.options.alwaysShowNavOnTouchDevices) ? true : false;
387
+ } catch (e) {}
388
+
389
+ this.$lightbox.find('.lb-nav').show();
390
+
391
+ if (this.album.length > 1) {
392
+ if (this.options.wrapAround) {
393
+ if (alwaysShowNav) {
394
+ this.$lightbox.find('.lb-prev, .lb-next').css('opacity', '1');
395
+ }
396
+ this.$lightbox.find('.lb-prev, .lb-next').show();
397
+ } else {
398
+ if (this.currentImageIndex > 0) {
399
+ this.$lightbox.find('.lb-prev').show();
400
+ if (alwaysShowNav) {
401
+ this.$lightbox.find('.lb-prev').css('opacity', '1');
402
+ }
403
+ }
404
+ if (this.currentImageIndex < this.album.length - 1) {
405
+ this.$lightbox.find('.lb-next').show();
406
+ if (alwaysShowNav) {
407
+ this.$lightbox.find('.lb-next').css('opacity', '1');
408
+ }
409
+ }
410
+ }
411
+ }
412
+ };
413
+
414
+ // Display caption, image number, and closing button.
415
+ Lightbox.prototype.updateDetails = function() {
416
+ var self = this;
417
+
418
+ // Enable anchor clicks in the injected caption html.
419
+ // Thanks Nate Wright for the fix. @https://github.com/NateWr
420
+ if (typeof this.album[this.currentImageIndex].title !== 'undefined' &&
421
+ this.album[this.currentImageIndex].title !== '') {
422
+ var $caption = this.$lightbox.find('.lb-caption');
423
+ if (this.options.sanitizeTitle) {
424
+ $caption.text(this.album[this.currentImageIndex].title);
425
+ } else {
426
+ $caption.html(this.album[this.currentImageIndex].title);
427
+ }
428
+ $caption.fadeIn('fast')
429
+ .find('a').on('click', function(event) {
430
+ if ($(this).attr('target') !== undefined) {
431
+ window.open($(this).attr('href'), $(this).attr('target'));
432
+ } else {
433
+ location.href = $(this).attr('href');
434
+ }
435
+ });
436
+ }
437
+
438
+ if (this.album.length > 1 && this.options.showImageNumberLabel) {
439
+ var labelText = this.imageCountLabel(this.currentImageIndex + 1, this.album.length);
440
+ this.$lightbox.find('.lb-number').text(labelText).fadeIn('fast');
441
+ } else {
442
+ this.$lightbox.find('.lb-number').hide();
443
+ }
444
+
445
+ this.$outerContainer.removeClass('animating');
446
+
447
+ this.$lightbox.find('.lb-dataContainer').fadeIn(this.options.resizeDuration, function() {
448
+ return self.sizeOverlay();
449
+ });
450
+ };
451
+
452
+ // Preload previous and next images in set.
453
+ Lightbox.prototype.preloadNeighboringImages = function() {
454
+ if (this.album.length > this.currentImageIndex + 1) {
455
+ var preloadNext = new Image();
456
+ preloadNext.src = this.album[this.currentImageIndex + 1].link;
457
+ }
458
+ if (this.currentImageIndex > 0) {
459
+ var preloadPrev = new Image();
460
+ preloadPrev.src = this.album[this.currentImageIndex - 1].link;
461
+ }
462
+ };
463
+
464
+ Lightbox.prototype.enableKeyboardNav = function() {
465
+ $(document).on('keyup.keyboard', $.proxy(this.keyboardAction, this));
466
+ };
467
+
468
+ Lightbox.prototype.disableKeyboardNav = function() {
469
+ $(document).off('.keyboard');
470
+ };
471
+
472
+ Lightbox.prototype.keyboardAction = function(event) {
473
+ var KEYCODE_ESC = 27;
474
+ var KEYCODE_LEFTARROW = 37;
475
+ var KEYCODE_RIGHTARROW = 39;
476
+
477
+ var keycode = event.keyCode;
478
+ var key = String.fromCharCode(keycode).toLowerCase();
479
+ if (keycode === KEYCODE_ESC || key.match(/x|o|c/)) {
480
+ this.end();
481
+ } else if (key === 'p' || keycode === KEYCODE_LEFTARROW) {
482
+ if (this.currentImageIndex !== 0) {
483
+ this.changeImage(this.currentImageIndex - 1);
484
+ } else if (this.options.wrapAround && this.album.length > 1) {
485
+ this.changeImage(this.album.length - 1);
486
+ }
487
+ } else if (key === 'n' || keycode === KEYCODE_RIGHTARROW) {
488
+ if (this.currentImageIndex !== this.album.length - 1) {
489
+ this.changeImage(this.currentImageIndex + 1);
490
+ } else if (this.options.wrapAround && this.album.length > 1) {
491
+ this.changeImage(0);
492
+ }
493
+ }
494
+ };
495
+
496
+ // Closing time. :-(
497
+ Lightbox.prototype.end = function() {
498
+ this.disableKeyboardNav();
499
+ $(window).off('resize', this.sizeOverlay);
500
+ this.$lightbox.fadeOut(this.options.fadeDuration);
501
+ this.$overlay.fadeOut(this.options.fadeDuration);
502
+ $('select, object, embed').css({
503
+ visibility: 'visible'
504
+ });
505
+ if (this.options.disableScrolling) {
506
+ $('body').removeClass('lb-disable-scrolling');
507
+ }
508
+ };
509
+
510
+ return new Lightbox();
511
+ }));
512
+
513
+
514
+ $(document).ready(function(){
515
+ lightbox.option({
516
+ 'disableScrolling': true,
517
+ 'albumLabel': ''
518
+ })
519
+ });