assets-rails 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +65 -0
  8. data/Rakefile +2 -0
  9. data/assets-rails.gemspec +25 -0
  10. data/lib/assets-rails.rb +7 -0
  11. data/lib/assets-rails/engine.rb +9 -0
  12. data/lib/assets-rails/version.rb +5 -0
  13. data/vendor/assets/fonts/bootstrap/v3.2.0/glyphicons-halflings-regular.eot +0 -0
  14. data/vendor/assets/fonts/bootstrap/v3.2.0/glyphicons-halflings-regular.svg +229 -0
  15. data/vendor/assets/fonts/bootstrap/v3.2.0/glyphicons-halflings-regular.ttf +0 -0
  16. data/vendor/assets/fonts/bootstrap/v3.2.0/glyphicons-halflings-regular.woff +0 -0
  17. data/vendor/assets/fonts/bootstrap/v3.3.0/glyphicons-halflings-regular.eot +0 -0
  18. data/vendor/assets/fonts/bootstrap/v3.3.0/glyphicons-halflings-regular.svg +229 -0
  19. data/vendor/assets/fonts/bootstrap/v3.3.0/glyphicons-halflings-regular.ttf +0 -0
  20. data/vendor/assets/fonts/bootstrap/v3.3.0/glyphicons-halflings-regular.woff +0 -0
  21. data/vendor/assets/fonts/font-awesome/v4.2.0/FontAwesome.otf +0 -0
  22. data/vendor/assets/fonts/font-awesome/v4.2.0/fontawesome-webfont.eot +0 -0
  23. data/vendor/assets/fonts/font-awesome/v4.2.0/fontawesome-webfont.svg +520 -0
  24. data/vendor/assets/fonts/font-awesome/v4.2.0/fontawesome-webfont.ttf +0 -0
  25. data/vendor/assets/fonts/font-awesome/v4.2.0/fontawesome-webfont.woff +0 -0
  26. data/vendor/assets/fonts/jquery.flexslider/flexslider-icon.eot +0 -0
  27. data/vendor/assets/fonts/jquery.flexslider/flexslider-icon.svg +19 -0
  28. data/vendor/assets/fonts/jquery.flexslider/flexslider-icon.ttf +0 -0
  29. data/vendor/assets/fonts/jquery.flexslider/flexslider-icon.woff +0 -0
  30. data/vendor/assets/images/fancybox/blank.gif +0 -0
  31. data/vendor/assets/images/fancybox/fancybox_buttons.png +0 -0
  32. data/vendor/assets/images/fancybox/fancybox_loading.gif +0 -0
  33. data/vendor/assets/images/fancybox/fancybox_loading@2x.gif +0 -0
  34. data/vendor/assets/images/fancybox/fancybox_overlay.png +0 -0
  35. data/vendor/assets/images/fancybox/fancybox_sprite.png +0 -0
  36. data/vendor/assets/images/fancybox/fancybox_sprite@2x.png +0 -0
  37. data/vendor/assets/images/jquery.colorbox/v1.5.14/example1/border.png +0 -0
  38. data/vendor/assets/images/jquery.colorbox/v1.5.14/example1/controls.png +0 -0
  39. data/vendor/assets/images/jquery.colorbox/v1.5.14/example1/loading.gif +0 -0
  40. data/vendor/assets/images/jquery.colorbox/v1.5.14/example1/loading_background.png +0 -0
  41. data/vendor/assets/images/jquery.colorbox/v1.5.14/example1/overlay.png +0 -0
  42. data/vendor/assets/images/jquery.colorbox/v1.5.14/example2/controls.png +0 -0
  43. data/vendor/assets/images/jquery.colorbox/v1.5.14/example2/loading.gif +0 -0
  44. data/vendor/assets/images/jquery.colorbox/v1.5.14/example3/controls.png +0 -0
  45. data/vendor/assets/images/jquery.colorbox/v1.5.14/example3/loading.gif +0 -0
  46. data/vendor/assets/images/jquery.colorbox/v1.5.14/example4/border1.png +0 -0
  47. data/vendor/assets/images/jquery.colorbox/v1.5.14/example4/border2.png +0 -0
  48. data/vendor/assets/images/jquery.colorbox/v1.5.14/example4/loading.gif +0 -0
  49. data/vendor/assets/images/jquery.colorbox/v1.5.14/example5/border.png +0 -0
  50. data/vendor/assets/images/jquery.colorbox/v1.5.14/example5/controls.png +0 -0
  51. data/vendor/assets/images/jquery.colorbox/v1.5.14/example5/loading.gif +0 -0
  52. data/vendor/assets/images/jquery.colorbox/v1.5.14/example5/loading_background.png +0 -0
  53. data/vendor/assets/images/jquery.flexslider/bg_play_pause.png +0 -0
  54. data/vendor/assets/images/jquery.owlcarousel/AjaxLoader.gif +0 -0
  55. data/vendor/assets/images/jquery.owlcarousel/grabbing.png +0 -0
  56. data/vendor/assets/images/zebra_datepicker/calendar-disabled.png +0 -0
  57. data/vendor/assets/images/zebra_datepicker/calendar.png +0 -0
  58. data/vendor/assets/images/zebra_datepicker/metallic/default-date.png +0 -0
  59. data/vendor/assets/images/zebra_datepicker/metallic/disabled-date.png +0 -0
  60. data/vendor/assets/images/zebra_datepicker/metallic/header.png +0 -0
  61. data/vendor/assets/images/zebra_datepicker/metallic/selected-date.png +0 -0
  62. data/vendor/assets/javascripts/bootstrap/v3.2.0.js +12 -0
  63. data/vendor/assets/javascripts/bootstrap/v3.2.0/affix.js +142 -0
  64. data/vendor/assets/javascripts/bootstrap/v3.2.0/alert.js +92 -0
  65. data/vendor/assets/javascripts/bootstrap/v3.2.0/button.js +110 -0
  66. data/vendor/assets/javascripts/bootstrap/v3.2.0/carousel.js +223 -0
  67. data/vendor/assets/javascripts/bootstrap/v3.2.0/collapse.js +170 -0
  68. data/vendor/assets/javascripts/bootstrap/v3.2.0/dropdown.js +151 -0
  69. data/vendor/assets/javascripts/bootstrap/v3.2.0/modal.js +280 -0
  70. data/vendor/assets/javascripts/bootstrap/v3.2.0/popover.js +113 -0
  71. data/vendor/assets/javascripts/bootstrap/v3.2.0/scrollspy.js +170 -0
  72. data/vendor/assets/javascripts/bootstrap/v3.2.0/tab.js +128 -0
  73. data/vendor/assets/javascripts/bootstrap/v3.2.0/tooltip.js +457 -0
  74. data/vendor/assets/javascripts/bootstrap/v3.2.0/transition.js +59 -0
  75. data/vendor/assets/javascripts/bootstrap/v3.3.0/affix.js +162 -0
  76. data/vendor/assets/javascripts/bootstrap/v3.3.0/alert.js +94 -0
  77. data/vendor/assets/javascripts/bootstrap/v3.3.0/button.js +116 -0
  78. data/vendor/assets/javascripts/bootstrap/v3.3.0/carousel.js +239 -0
  79. data/vendor/assets/javascripts/bootstrap/v3.3.0/collapse.js +211 -0
  80. data/vendor/assets/javascripts/bootstrap/v3.3.0/dropdown.js +161 -0
  81. data/vendor/assets/javascripts/bootstrap/v3.3.0/modal.js +281 -0
  82. data/vendor/assets/javascripts/bootstrap/v3.3.0/popover.js +119 -0
  83. data/vendor/assets/javascripts/bootstrap/v3.3.0/scrollspy.js +175 -0
  84. data/vendor/assets/javascripts/bootstrap/v3.3.0/tab.js +153 -0
  85. data/vendor/assets/javascripts/bootstrap/v3.3.0/tooltip.js +478 -0
  86. data/vendor/assets/javascripts/bootstrap/v3.3.0/transition.js +59 -0
  87. data/vendor/assets/javascripts/draggabilly/v1.1.1.js +2 -0
  88. data/vendor/assets/javascripts/draggabilly/v1.1.1/draggabilly.js +615 -0
  89. data/vendor/assets/javascripts/imagesloaded/v3.1.8.js +2 -0
  90. data/vendor/assets/javascripts/imagesloaded/v3.1.8/imagesloaded.js +335 -0
  91. data/vendor/assets/javascripts/isotope/v2.0.1.js +1 -0
  92. data/vendor/assets/javascripts/isotope/v2.0.1/isotope.js +628 -0
  93. data/vendor/assets/javascripts/jquery.collageplus/v0.3.3.js +2 -0
  94. data/vendor/assets/javascripts/jquery.collageplus/v0.3.3/jquery.collagecaption.js +143 -0
  95. data/vendor/assets/javascripts/jquery.collageplus/v0.3.3/jquery.collageplus.js +401 -0
  96. data/vendor/assets/javascripts/jquery.collageplus/v0.3.3/remove_whitespace.js +13 -0
  97. data/vendor/assets/javascripts/jquery.colorbox/v1.5.14.js +2 -0
  98. data/vendor/assets/javascripts/jquery.colorbox/v1.5.14/jquery.colorbox.js +1090 -0
  99. data/vendor/assets/javascripts/jquery.expander/v1.4.12.js +1 -0
  100. data/vendor/assets/javascripts/jquery.expander/v1.4.12/jquery.expander.js +453 -0
  101. data/vendor/assets/javascripts/jquery.fakecrop.js +1 -0
  102. data/vendor/assets/javascripts/jquery.fakecrop/jquery.fakecrop.js +153 -0
  103. data/vendor/assets/javascripts/jquery.fancybox/v2.1.5.js +4 -0
  104. data/vendor/assets/javascripts/jquery.fancybox/v2.1.5/jquery.fancybox-buttons.js +122 -0
  105. data/vendor/assets/javascripts/jquery.fancybox/v2.1.5/jquery.fancybox-media.js +199 -0
  106. data/vendor/assets/javascripts/jquery.fancybox/v2.1.5/jquery.fancybox-thumbs.js +162 -0
  107. data/vendor/assets/javascripts/jquery.fancybox/v2.1.5/jquery.fancybox.js +2020 -0
  108. data/vendor/assets/javascripts/jquery.flexslider/v2.2.2.js +1 -0
  109. data/vendor/assets/javascripts/jquery.flexslider/v2.2.2/jquery.flexslider.js +1157 -0
  110. data/vendor/assets/javascripts/jquery.infinitescroll/v2.0.2.js +2 -0
  111. data/vendor/assets/javascripts/jquery.infinitescroll/v2.0.2/jquery.infinitescroll.js +821 -0
  112. data/vendor/assets/javascripts/jquery.nivo.slider/v3.2.js +2 -0
  113. data/vendor/assets/javascripts/jquery.nivo.slider/v3.2/jquery.nivo.slider.js +662 -0
  114. data/vendor/assets/javascripts/jquery.owlcarousel/v1.3.3.js +2 -0
  115. data/vendor/assets/javascripts/jquery.owlcarousel/v1.3.3/jquery.owlcarousel.js +1517 -0
  116. data/vendor/assets/javascripts/jquery.pageless.js +2 -0
  117. data/vendor/assets/javascripts/jquery.pageless/jquery.pageless.js +251 -0
  118. data/vendor/assets/javascripts/jquery.render/v1.1.0.js +2 -0
  119. data/vendor/assets/javascripts/jquery.render/v1.1.0/jquery.render.js +56 -0
  120. data/vendor/assets/javascripts/jquery.scrollto/v1.4.13.js +2 -0
  121. data/vendor/assets/javascripts/jquery.scrollto/v1.4.13/jquery.scrollto.js +187 -0
  122. data/vendor/assets/javascripts/jquery.timeago/v1.4.1.js +1 -0
  123. data/vendor/assets/javascripts/jquery.timeago/v1.4.1/jquery.timeago.js +214 -0
  124. data/vendor/assets/javascripts/jquery.turbolinks/v2.1.0.js +1 -0
  125. data/vendor/assets/javascripts/jquery.turbolinks/v2.1.0/jquery.turbolinks.js +49 -0
  126. data/vendor/assets/javascripts/jquery/v1.11.1.js +1 -0
  127. data/vendor/assets/javascripts/jquery/v1.11.1/jquery.js +10308 -0
  128. data/vendor/assets/javascripts/jquery/v2.1.1.js +1 -0
  129. data/vendor/assets/javascripts/jquery/v2.1.1/jquery.js +9190 -0
  130. data/vendor/assets/javascripts/masonry/v3.1.5.js +2 -0
  131. data/vendor/assets/javascripts/masonry/v3.1.5/masonry.js +205 -0
  132. data/vendor/assets/javascripts/nprogress/v0.1.6.js +2 -0
  133. data/vendor/assets/javascripts/nprogress/v0.1.6/nprogress-ajax.js +4 -0
  134. data/vendor/assets/javascripts/nprogress/v0.1.6/nprogress-turbolinks.js +5 -0
  135. data/vendor/assets/javascripts/nprogress/v0.1.6/nprogress.js +475 -0
  136. data/vendor/assets/javascripts/responsiveCarousel/v1.2.0.js +2 -0
  137. data/vendor/assets/javascripts/responsiveCarousel/v1.2.0/responsiveCarousel.js +410 -0
  138. data/vendor/assets/javascripts/responsiveslides/v1.54.js +2 -0
  139. data/vendor/assets/javascripts/responsiveslides/v1.54/responsiveslides.js +391 -0
  140. data/vendor/assets/javascripts/zebra_datepicker/v1.8.9.js +2 -0
  141. data/vendor/assets/javascripts/zebra_datepicker/v1.8.9/zebra_datepicker.js +2965 -0
  142. data/vendor/assets/stylesheets/bootstrap/_v3.2.0.scss +52 -0
  143. data/vendor/assets/stylesheets/bootstrap/_v3.3.0.scss +52 -0
  144. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_alerts.scss +68 -0
  145. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_badges.scss +57 -0
  146. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_bootstrap-sprockets.scss +7 -0
  147. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_breadcrumbs.scss +26 -0
  148. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_button-groups.scss +240 -0
  149. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_buttons.scss +157 -0
  150. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_carousel.scss +243 -0
  151. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_close.scss +35 -0
  152. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_code.scss +68 -0
  153. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_component-animations.scss +35 -0
  154. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_dropdowns.scss +215 -0
  155. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_forms.scss +538 -0
  156. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_glyphicons.scss +237 -0
  157. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_grid.scss +84 -0
  158. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_input-groups.scss +166 -0
  159. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_jumbotron.scss +48 -0
  160. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_labels.scss +66 -0
  161. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_list-group.scss +131 -0
  162. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_media.scss +56 -0
  163. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_mixins.scss +39 -0
  164. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_modals.scss +150 -0
  165. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_navbar.scss +659 -0
  166. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_navs.scss +242 -0
  167. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_normalize.scss +425 -0
  168. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_pager.scss +55 -0
  169. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_pagination.scss +88 -0
  170. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_panels.scss +243 -0
  171. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_popovers.scss +133 -0
  172. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_print.scss +101 -0
  173. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_progress-bars.scss +105 -0
  174. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_responsive-embed.scss +34 -0
  175. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_responsive-utilities.scss +174 -0
  176. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_scaffolding.scss +150 -0
  177. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_tables.scss +233 -0
  178. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_theme.scss +258 -0
  179. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_thumbnails.scss +38 -0
  180. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_tooltip.scss +95 -0
  181. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_type.scss +304 -0
  182. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_utilities.scss +57 -0
  183. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_variables.scss +854 -0
  184. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_wells.scss +29 -0
  185. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_alerts.scss +14 -0
  186. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_background-variant.scss +11 -0
  187. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_border-radius.scss +18 -0
  188. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_buttons.scss +50 -0
  189. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_center-block.scss +7 -0
  190. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_clearfix.scss +22 -0
  191. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_forms.scss +84 -0
  192. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_gradients.scss +58 -0
  193. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_grid-framework.scss +81 -0
  194. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_grid.scss +122 -0
  195. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_hide-text.scss +21 -0
  196. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_image.scss +34 -0
  197. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_labels.scss +12 -0
  198. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_list-group.scss +31 -0
  199. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_nav-divider.scss +10 -0
  200. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_nav-vertical-align.scss +9 -0
  201. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_opacity.scss +8 -0
  202. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_pagination.scss +23 -0
  203. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_panels.scss +24 -0
  204. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_progress-bar.scss +10 -0
  205. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_reset-filter.scss +8 -0
  206. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_resize.scss +6 -0
  207. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_responsive-visibility.scss +21 -0
  208. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_size.scss +10 -0
  209. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_tab-focus.scss +9 -0
  210. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_table-row.scss +28 -0
  211. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_text-emphasis.scss +11 -0
  212. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_text-overflow.scss +8 -0
  213. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_vendor-prefixes.scss +219 -0
  214. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_alerts.scss +68 -0
  215. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_badges.scss +57 -0
  216. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_bootstrap-sprockets.scss +7 -0
  217. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_breadcrumbs.scss +26 -0
  218. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_button-groups.scss +247 -0
  219. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_buttons.scss +160 -0
  220. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_carousel.scss +267 -0
  221. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_close.scss +35 -0
  222. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_code.scss +69 -0
  223. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_component-animations.scss +38 -0
  224. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_dropdowns.scss +213 -0
  225. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_forms.scss +561 -0
  226. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_glyphicons.scss +234 -0
  227. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_grid.scss +84 -0
  228. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_input-groups.scss +166 -0
  229. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_jumbotron.scss +48 -0
  230. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_labels.scss +66 -0
  231. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_list-group.scss +132 -0
  232. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_media.scss +47 -0
  233. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_mixins.scss +39 -0
  234. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_modals.scss +149 -0
  235. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_navbar.scss +661 -0
  236. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_navs.scss +244 -0
  237. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_normalize.scss +427 -0
  238. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_pager.scss +54 -0
  239. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_pagination.scss +88 -0
  240. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_panels.scss +261 -0
  241. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_popovers.scss +134 -0
  242. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_print.scss +107 -0
  243. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_progress-bars.scss +87 -0
  244. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_responsive-embed.scss +35 -0
  245. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_responsive-utilities.scss +174 -0
  246. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_scaffolding.scss +150 -0
  247. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_tables.scss +234 -0
  248. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_theme.scss +260 -0
  249. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_thumbnails.scss +38 -0
  250. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_tooltip.scss +95 -0
  251. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_type.scss +298 -0
  252. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_utilities.scss +56 -0
  253. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_variables.scss +864 -0
  254. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_wells.scss +29 -0
  255. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_alerts.scss +14 -0
  256. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_background-variant.scss +11 -0
  257. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_border-radius.scss +18 -0
  258. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_buttons.scss +52 -0
  259. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_center-block.scss +7 -0
  260. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_clearfix.scss +22 -0
  261. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_forms.scss +88 -0
  262. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_gradients.scss +58 -0
  263. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_grid-framework.scss +81 -0
  264. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_grid.scss +122 -0
  265. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_hide-text.scss +21 -0
  266. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_image.scss +33 -0
  267. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_labels.scss +12 -0
  268. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_list-group.scss +31 -0
  269. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_nav-divider.scss +10 -0
  270. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_nav-vertical-align.scss +9 -0
  271. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_opacity.scss +8 -0
  272. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_pagination.scss +23 -0
  273. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_panels.scss +24 -0
  274. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_progress-bar.scss +10 -0
  275. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_reset-filter.scss +8 -0
  276. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_resize.scss +6 -0
  277. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_responsive-visibility.scss +21 -0
  278. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_size.scss +10 -0
  279. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_tab-focus.scss +9 -0
  280. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_table-row.scss +28 -0
  281. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_text-emphasis.scss +11 -0
  282. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_text-overflow.scss +8 -0
  283. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_vendor-prefixes.scss +222 -0
  284. data/vendor/assets/stylesheets/font-awesome/v4.2.0.css +3 -0
  285. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_bordered-pulled.scss +16 -0
  286. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_core.scss +11 -0
  287. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_extras.scss +44 -0
  288. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_fixed-width.scss +6 -0
  289. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_icons.scss +552 -0
  290. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_larger.scss +13 -0
  291. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_list.scss +19 -0
  292. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_mixins.scss +25 -0
  293. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_path.scss +14 -0
  294. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_rotated-flipped.scss +20 -0
  295. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_spinning.scss +29 -0
  296. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_stacked.scss +20 -0
  297. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_variables.scss +561 -0
  298. data/vendor/assets/stylesheets/font-awesome/v4.2.0/font-awesome.scss +17 -0
  299. data/vendor/assets/stylesheets/jquery.colorbox/v1.5.14/example1.css.scss +70 -0
  300. data/vendor/assets/stylesheets/jquery.colorbox/v1.5.14/example2.css.scss +50 -0
  301. data/vendor/assets/stylesheets/jquery.colorbox/v1.5.14/example3.css.scss +45 -0
  302. data/vendor/assets/stylesheets/jquery.colorbox/v1.5.14/example4.css.scss +66 -0
  303. data/vendor/assets/stylesheets/jquery.colorbox/v1.5.14/example5.css.scss +58 -0
  304. data/vendor/assets/stylesheets/jquery.fancybox/v2.1.5.css +5 -0
  305. data/vendor/assets/stylesheets/jquery.fancybox/v2.1.5/jquery.fancybox-buttons.css.erb +97 -0
  306. data/vendor/assets/stylesheets/jquery.fancybox/v2.1.5/jquery.fancybox-thumbs.css +55 -0
  307. data/vendor/assets/stylesheets/jquery.fancybox/v2.1.5/jquery.fancybox.css.erb +274 -0
  308. data/vendor/assets/stylesheets/jquery.flexslider/v2.2.2.css +3 -0
  309. data/vendor/assets/stylesheets/jquery.flexslider/v2.2.2/jquery.flexslider.scss +96 -0
  310. data/vendor/assets/stylesheets/jquery.nivo.slider/v3.2.css +3 -0
  311. data/vendor/assets/stylesheets/jquery.nivo.slider/v3.2/jquery.nivo.slider.css +113 -0
  312. data/vendor/assets/stylesheets/jquery.owlcarousel/v1.3.3/jquery.owlcarousel.scss +71 -0
  313. data/vendor/assets/stylesheets/jquery.owlcarousel/v1.3.3/theme.scss +79 -0
  314. data/vendor/assets/stylesheets/jquery.owlcarousel/v1.3.3/transitions.scss +163 -0
  315. data/vendor/assets/stylesheets/nprogress/v0.1.6/nprogress-bootstrap.css +4 -0
  316. data/vendor/assets/stylesheets/nprogress/v0.1.6/nprogress.css.scss +77 -0
  317. data/vendor/assets/stylesheets/responsiveslides/v1.54.css +3 -0
  318. data/vendor/assets/stylesheets/responsiveslides/v1.54/responsiveslides.css +33 -0
  319. data/vendor/assets/stylesheets/zebra_datepicker/v1.8.9/bootstrap.scss +95 -0
  320. data/vendor/assets/stylesheets/zebra_datepicker/v1.8.9/default.scss +102 -0
  321. data/vendor/assets/stylesheets/zebra_datepicker/v1.8.9/metallic.scss +106 -0
  322. metadata +407 -0
@@ -0,0 +1,2 @@
1
+ //https://github.com/paulirish/infinite-scroll
2
+ //= require jquery.infinitescroll/v2.0.2/jquery.infinitescroll.js
@@ -0,0 +1,821 @@
1
+ /*global jQuery: true */
2
+
3
+ /*!
4
+ --------------------------------
5
+ Infinite Scroll
6
+ --------------------------------
7
+ + https://github.com/paulirish/infinite-scroll
8
+ + version 2.0.2
9
+ + Copyright 2011/12 Paul Irish & Luke Shumard
10
+ + Licensed under the MIT license
11
+
12
+ + Documentation: http://infinite-scroll.com/
13
+ */
14
+
15
+ // Uses AMD or browser globals to create a jQuery plugin.
16
+ (function (factory) {
17
+ if (typeof define === 'function' && define.amd) {
18
+ // AMD. Register as an anonymous module.
19
+ define(['jquery'], factory);
20
+ } else {
21
+ // Browser globals
22
+ factory(jQuery);
23
+ }
24
+ }(function ($, undefined) {
25
+ 'use strict';
26
+
27
+ $.infinitescroll = function infscr(options, callback, element) {
28
+ this.element = $(element);
29
+
30
+ // Flag the object in the event of a failed creation
31
+ if (!this._create(options, callback)) {
32
+ this.failed = true;
33
+ }
34
+ };
35
+
36
+ $.infinitescroll.defaults = {
37
+ loading: {
38
+ finished: undefined,
39
+ finishedMsg: "<em>Congratulations, you've reached the end of the internet.</em>",
40
+ img: 'data:image/gif;base64,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',
41
+ msg: null,
42
+ msgText: '<em>Loading the next set of posts...</em>',
43
+ selector: null,
44
+ speed: 'fast',
45
+ start: undefined
46
+ },
47
+ state: {
48
+ isDuringAjax: false,
49
+ isInvalidPage: false,
50
+ isDestroyed: false,
51
+ isDone: false, // For when it goes all the way through the archive.
52
+ isPaused: false,
53
+ isBeyondMaxPage: false,
54
+ currPage: 1
55
+ },
56
+ debug: false,
57
+ behavior: undefined,
58
+ binder: $(window), // used to cache the selector
59
+ nextSelector: 'div.navigation a:first',
60
+ navSelector: 'div.navigation',
61
+ contentSelector: null, // rename to pageFragment
62
+ extraScrollPx: 150,
63
+ itemSelector: 'div.post',
64
+ animate: false,
65
+ pathParse: undefined,
66
+ dataType: 'html',
67
+ appendCallback: true,
68
+ bufferPx: 40,
69
+ errorCallback: function () { },
70
+ infid: 0, //Instance ID
71
+ pixelsFromNavToBottom: undefined,
72
+ path: undefined, // Either parts of a URL as an array (e.g. ["/page/", "/"] or a function that takes in the page number and returns a URL
73
+ prefill: false, // When the document is smaller than the window, load data until the document is larger or links are exhausted
74
+ maxPage: undefined // to manually control maximum page (when maxPage is undefined, maximum page limitation is not work)
75
+ };
76
+
77
+ $.infinitescroll.prototype = {
78
+
79
+ /*
80
+ ----------------------------
81
+ Private methods
82
+ ----------------------------
83
+ */
84
+
85
+ // Bind or unbind from scroll
86
+ _binding: function infscr_binding(binding) {
87
+
88
+ var instance = this,
89
+ opts = instance.options;
90
+
91
+ opts.v = '2.0b2.120520';
92
+
93
+ // if behavior is defined and this function is extended, call that instead of default
94
+ if (!!opts.behavior && this['_binding_'+opts.behavior] !== undefined) {
95
+ this['_binding_'+opts.behavior].call(this);
96
+ return;
97
+ }
98
+
99
+ if (binding !== 'bind' && binding !== 'unbind') {
100
+ this._debug('Binding value ' + binding + ' not valid');
101
+ return false;
102
+ }
103
+
104
+ if (binding === 'unbind') {
105
+ (this.options.binder).unbind('smartscroll.infscr.' + instance.options.infid);
106
+ } else {
107
+ (this.options.binder)[binding]('smartscroll.infscr.' + instance.options.infid, function () {
108
+ instance.scroll();
109
+ });
110
+ }
111
+
112
+ this._debug('Binding', binding);
113
+ },
114
+
115
+ // Fundamental aspects of the plugin are initialized
116
+ _create: function infscr_create(options, callback) {
117
+
118
+ // Add custom options to defaults
119
+ var opts = $.extend(true, {}, $.infinitescroll.defaults, options);
120
+ this.options = opts;
121
+ var $window = $(window);
122
+ var instance = this;
123
+
124
+ // Validate selectors
125
+ if (!instance._validate(options)) {
126
+ return false;
127
+ }
128
+
129
+ // Validate page fragment path
130
+ var path = $(opts.nextSelector).attr('href');
131
+ if (!path) {
132
+ this._debug('Navigation selector not found');
133
+ return false;
134
+ }
135
+
136
+ // Set the path to be a relative URL from root.
137
+ opts.path = opts.path || this._determinepath(path);
138
+
139
+ // contentSelector is 'page fragment' option for .load() / .ajax() calls
140
+ opts.contentSelector = opts.contentSelector || this.element;
141
+
142
+ // loading.selector - if we want to place the load message in a specific selector, defaulted to the contentSelector
143
+ opts.loading.selector = opts.loading.selector || opts.contentSelector;
144
+
145
+ // Define loading.msg
146
+ opts.loading.msg = opts.loading.msg || $('<div id="infscr-loading"><img alt="Loading..." src="' + opts.loading.img + '" /><div>' + opts.loading.msgText + '</div></div>');
147
+
148
+ // Preload loading.img
149
+ (new Image()).src = opts.loading.img;
150
+
151
+ // distance from nav links to bottom
152
+ // computed as: height of the document + top offset of container - top offset of nav link
153
+ if(opts.pixelsFromNavToBottom === undefined) {
154
+ opts.pixelsFromNavToBottom = $(document).height() - $(opts.navSelector).offset().top;
155
+ this._debug('pixelsFromNavToBottom: ' + opts.pixelsFromNavToBottom);
156
+ }
157
+
158
+ var self = this;
159
+
160
+ // determine loading.start actions
161
+ opts.loading.start = opts.loading.start || function() {
162
+ $(opts.navSelector).hide();
163
+ opts.loading.msg
164
+ .appendTo(opts.loading.selector)
165
+ .show(opts.loading.speed, $.proxy(function() {
166
+ this.beginAjax(opts);
167
+ }, self));
168
+ };
169
+
170
+ // determine loading.finished actions
171
+ opts.loading.finished = opts.loading.finished || function() {
172
+ if (!opts.state.isBeyondMaxPage)
173
+ opts.loading.msg.fadeOut(opts.loading.speed);
174
+ };
175
+
176
+ // callback loading
177
+ opts.callback = function(instance, data, url) {
178
+ if (!!opts.behavior && instance['_callback_'+opts.behavior] !== undefined) {
179
+ instance['_callback_'+opts.behavior].call($(opts.contentSelector)[0], data, url);
180
+ }
181
+
182
+ if (callback) {
183
+ callback.call($(opts.contentSelector)[0], data, opts, url);
184
+ }
185
+
186
+ if (opts.prefill) {
187
+ $window.bind('resize.infinite-scroll', instance._prefill);
188
+ }
189
+ };
190
+
191
+ if (options.debug) {
192
+ // Tell IE9 to use its built-in console
193
+ if (Function.prototype.bind && (typeof console === 'object' || typeof console === 'function') && typeof console.log === 'object') {
194
+ ['log','info','warn','error','assert','dir','clear','profile','profileEnd']
195
+ .forEach(function (method) {
196
+ console[method] = this.call(console[method], console);
197
+ }, Function.prototype.bind);
198
+ }
199
+ }
200
+
201
+ this._setup();
202
+
203
+ // Setups the prefill method for use
204
+ if (opts.prefill) {
205
+ this._prefill();
206
+ }
207
+
208
+ // Return true to indicate successful creation
209
+ return true;
210
+ },
211
+
212
+ _prefill: function infscr_prefill() {
213
+ var instance = this;
214
+ var $window = $(window);
215
+
216
+ function needsPrefill() {
217
+ return (instance.options.contentSelector.height() <= $window.height());
218
+ }
219
+
220
+ this._prefill = function() {
221
+ if (needsPrefill()) {
222
+ instance.scroll();
223
+ }
224
+
225
+ $window.bind('resize.infinite-scroll', function() {
226
+ if (needsPrefill()) {
227
+ $window.unbind('resize.infinite-scroll');
228
+ instance.scroll();
229
+ }
230
+ });
231
+ };
232
+
233
+ // Call self after setting up the new function
234
+ this._prefill();
235
+ },
236
+
237
+ // Console log wrapper
238
+ _debug: function infscr_debug() {
239
+ if (true !== this.options.debug) {
240
+ return;
241
+ }
242
+
243
+ if (typeof console !== 'undefined' && typeof console.log === 'function') {
244
+ // Modern browsers
245
+ // Single argument, which is a string
246
+ if ((Array.prototype.slice.call(arguments)).length === 1 && typeof Array.prototype.slice.call(arguments)[0] === 'string') {
247
+ console.log( (Array.prototype.slice.call(arguments)).toString() );
248
+ } else {
249
+ console.log( Array.prototype.slice.call(arguments) );
250
+ }
251
+ } else if (!Function.prototype.bind && typeof console !== 'undefined' && typeof console.log === 'object') {
252
+ // IE8
253
+ Function.prototype.call.call(console.log, console, Array.prototype.slice.call(arguments));
254
+ }
255
+ },
256
+
257
+ // find the number to increment in the path.
258
+ _determinepath: function infscr_determinepath(path) {
259
+
260
+ var opts = this.options;
261
+
262
+ // if behavior is defined and this function is extended, call that instead of default
263
+ if (!!opts.behavior && this['_determinepath_'+opts.behavior] !== undefined) {
264
+ return this['_determinepath_'+opts.behavior].call(this,path);
265
+ }
266
+
267
+ if (!!opts.pathParse) {
268
+
269
+ this._debug('pathParse manual');
270
+ return opts.pathParse(path, this.options.state.currPage+1);
271
+
272
+ } else if (path.match(/^(.*?)\b2\b(.*?$)/)) {
273
+ path = path.match(/^(.*?)\b2\b(.*?$)/).slice(1);
274
+
275
+ // if there is any 2 in the url at all.
276
+ } else if (path.match(/^(.*?)2(.*?$)/)) {
277
+
278
+ // page= is used in django:
279
+ // http://www.infinite-scroll.com/changelog/comment-page-1/#comment-127
280
+ if (path.match(/^(.*?page=)2(\/.*|$)/)) {
281
+ path = path.match(/^(.*?page=)2(\/.*|$)/).slice(1);
282
+ return path;
283
+ }
284
+
285
+ path = path.match(/^(.*?)2(.*?$)/).slice(1);
286
+
287
+ } else {
288
+
289
+ // page= is used in drupal too but second page is page=1 not page=2:
290
+ // thx Jerod Fritz, vladikoff
291
+ if (path.match(/^(.*?page=)1(\/.*|$)/)) {
292
+ path = path.match(/^(.*?page=)1(\/.*|$)/).slice(1);
293
+ return path;
294
+ } else {
295
+ this._debug("Sorry, we couldn't parse your Next (Previous Posts) URL. Verify your the css selector points to the correct A tag. If you still get this error: yell, scream, and kindly ask for help at infinite-scroll.com.");
296
+ // Get rid of isInvalidPage to allow permalink to state
297
+ opts.state.isInvalidPage = true; //prevent it from running on this page.
298
+ }
299
+ }
300
+ this._debug('determinePath', path);
301
+ return path;
302
+
303
+ },
304
+
305
+ // Custom error
306
+ _error: function infscr_error(xhr) {
307
+
308
+ var opts = this.options;
309
+
310
+ // if behavior is defined and this function is extended, call that instead of default
311
+ if (!!opts.behavior && this['_error_'+opts.behavior] !== undefined) {
312
+ this['_error_'+opts.behavior].call(this,xhr);
313
+ return;
314
+ }
315
+
316
+ if (xhr !== 'destroy' && xhr !== 'end') {
317
+ xhr = 'unknown';
318
+ }
319
+
320
+ this._debug('Error', xhr);
321
+
322
+ if (xhr === 'end' || opts.state.isBeyondMaxPage) {
323
+ this._showdonemsg();
324
+ }
325
+
326
+ opts.state.isDone = true;
327
+ opts.state.currPage = 1; // if you need to go back to this instance
328
+ opts.state.isPaused = false;
329
+ opts.state.isBeyondMaxPage = false;
330
+ this._binding('unbind');
331
+
332
+ },
333
+
334
+ // Load Callback
335
+ _loadcallback: function infscr_loadcallback(box, data, url) {
336
+ var opts = this.options,
337
+ callback = this.options.callback, // GLOBAL OBJECT FOR CALLBACK
338
+ result = (opts.state.isDone) ? 'done' : (!opts.appendCallback) ? 'no-append' : 'append',
339
+ frag;
340
+
341
+ // if behavior is defined and this function is extended, call that instead of default
342
+ if (!!opts.behavior && this['_loadcallback_'+opts.behavior] !== undefined) {
343
+ this['_loadcallback_'+opts.behavior].call(this,box,data);
344
+ return;
345
+ }
346
+
347
+ switch (result) {
348
+ case 'done':
349
+ this._showdonemsg();
350
+ return false;
351
+
352
+ case 'no-append':
353
+ if (opts.dataType === 'html') {
354
+ data = '<div>' + data + '</div>';
355
+ data = $(data).find(opts.itemSelector);
356
+ }
357
+ break;
358
+
359
+ case 'append':
360
+ var children = box.children();
361
+ // if it didn't return anything
362
+ if (children.length === 0) {
363
+ return this._error('end');
364
+ }
365
+
366
+ // use a documentFragment because it works when content is going into a table or UL
367
+ frag = document.createDocumentFragment();
368
+ while (box[0].firstChild) {
369
+ frag.appendChild(box[0].firstChild);
370
+ }
371
+
372
+ this._debug('contentSelector', $(opts.contentSelector)[0]);
373
+ $(opts.contentSelector)[0].appendChild(frag);
374
+ // previously, we would pass in the new DOM element as context for the callback
375
+ // however we're now using a documentfragment, which doesn't have parents or children,
376
+ // so the context is the contentContainer guy, and we pass in an array
377
+ // of the elements collected as the first argument.
378
+
379
+ data = children.get();
380
+ break;
381
+ }
382
+
383
+ // loadingEnd function
384
+ opts.loading.finished.call($(opts.contentSelector)[0],opts);
385
+
386
+ // smooth scroll to ease in the new content
387
+ if (opts.animate) {
388
+ var scrollTo = $(window).scrollTop() + $(opts.loading.msg).height() + opts.extraScrollPx + 'px';
389
+ $('html,body').animate({ scrollTop: scrollTo }, 800, function () { opts.state.isDuringAjax = false; });
390
+ }
391
+
392
+ if (!opts.animate) {
393
+ // once the call is done, we can allow it again.
394
+ opts.state.isDuringAjax = false;
395
+ }
396
+
397
+ callback(this, data, url);
398
+
399
+ if (opts.prefill) {
400
+ this._prefill();
401
+ }
402
+ },
403
+
404
+ _nearbottom: function infscr_nearbottom() {
405
+
406
+ var opts = this.options,
407
+ pixelsFromWindowBottomToBottom = 0 + $(document).height() - (opts.binder.scrollTop()) - $(window).height();
408
+
409
+ // if behavior is defined and this function is extended, call that instead of default
410
+ if (!!opts.behavior && this['_nearbottom_'+opts.behavior] !== undefined) {
411
+ return this['_nearbottom_'+opts.behavior].call(this);
412
+ }
413
+
414
+ this._debug('math:', pixelsFromWindowBottomToBottom, opts.pixelsFromNavToBottom);
415
+
416
+ // if distance remaining in the scroll (including buffer) is less than the orignal nav to bottom....
417
+ return (pixelsFromWindowBottomToBottom - opts.bufferPx < opts.pixelsFromNavToBottom);
418
+
419
+ },
420
+
421
+ // Pause / temporarily disable plugin from firing
422
+ _pausing: function infscr_pausing(pause) {
423
+
424
+ var opts = this.options;
425
+
426
+ // if behavior is defined and this function is extended, call that instead of default
427
+ if (!!opts.behavior && this['_pausing_'+opts.behavior] !== undefined) {
428
+ this['_pausing_'+opts.behavior].call(this,pause);
429
+ return;
430
+ }
431
+
432
+ // If pause is not 'pause' or 'resume', toggle it's value
433
+ if (pause !== 'pause' && pause !== 'resume' && pause !== null) {
434
+ this._debug('Invalid argument. Toggling pause value instead');
435
+ }
436
+
437
+ pause = (pause && (pause === 'pause' || pause === 'resume')) ? pause : 'toggle';
438
+
439
+ switch (pause) {
440
+ case 'pause':
441
+ opts.state.isPaused = true;
442
+ break;
443
+
444
+ case 'resume':
445
+ opts.state.isPaused = false;
446
+ break;
447
+
448
+ case 'toggle':
449
+ opts.state.isPaused = !opts.state.isPaused;
450
+ break;
451
+ }
452
+
453
+ this._debug('Paused', opts.state.isPaused);
454
+ return false;
455
+
456
+ },
457
+
458
+ // Behavior is determined
459
+ // If the behavior option is undefined, it will set to default and bind to scroll
460
+ _setup: function infscr_setup() {
461
+
462
+ var opts = this.options;
463
+
464
+ // if behavior is defined and this function is extended, call that instead of default
465
+ if (!!opts.behavior && this['_setup_'+opts.behavior] !== undefined) {
466
+ this['_setup_'+opts.behavior].call(this);
467
+ return;
468
+ }
469
+
470
+ this._binding('bind');
471
+
472
+ return false;
473
+
474
+ },
475
+
476
+ // Show done message
477
+ _showdonemsg: function infscr_showdonemsg() {
478
+
479
+ var opts = this.options;
480
+
481
+ // if behavior is defined and this function is extended, call that instead of default
482
+ if (!!opts.behavior && this['_showdonemsg_'+opts.behavior] !== undefined) {
483
+ this['_showdonemsg_'+opts.behavior].call(this);
484
+ return;
485
+ }
486
+
487
+ opts.loading.msg
488
+ .find('img')
489
+ .hide()
490
+ .parent()
491
+ .find('div').html(opts.loading.finishedMsg).animate({ opacity: 1 }, 2000, function () {
492
+ $(this).parent().fadeOut(opts.loading.speed);
493
+ });
494
+
495
+ // user provided callback when done
496
+ opts.errorCallback.call($(opts.contentSelector)[0],'done');
497
+ },
498
+
499
+ // grab each selector option and see if any fail
500
+ _validate: function infscr_validate(opts) {
501
+ for (var key in opts) {
502
+ if (key.indexOf && key.indexOf('Selector') > -1 && $(opts[key]).length === 0) {
503
+ this._debug('Your ' + key + ' found no elements.');
504
+ return false;
505
+ }
506
+ }
507
+
508
+ return true;
509
+ },
510
+
511
+ /*
512
+ ----------------------------
513
+ Public methods
514
+ ----------------------------
515
+ */
516
+
517
+ // Bind to scroll
518
+ bind: function infscr_bind() {
519
+ this._binding('bind');
520
+ },
521
+
522
+ // Destroy current instance of plugin
523
+ destroy: function infscr_destroy() {
524
+ this.options.state.isDestroyed = true;
525
+ this.options.loading.finished();
526
+ return this._error('destroy');
527
+ },
528
+
529
+ // Set pause value to false
530
+ pause: function infscr_pause() {
531
+ this._pausing('pause');
532
+ },
533
+
534
+ // Set pause value to false
535
+ resume: function infscr_resume() {
536
+ this._pausing('resume');
537
+ },
538
+
539
+ beginAjax: function infscr_ajax(opts) {
540
+ var instance = this,
541
+ path = opts.path,
542
+ box, desturl, method, condition;
543
+
544
+ // increment the URL bit. e.g. /page/3/
545
+ opts.state.currPage++;
546
+
547
+ // Manually control maximum page
548
+ if ( opts.maxPage !== undefined && opts.state.currPage > opts.maxPage ){
549
+ opts.state.isBeyondMaxPage = true;
550
+ this.destroy();
551
+ return;
552
+ }
553
+
554
+ // if we're dealing with a table we can't use DIVs
555
+ box = $(opts.contentSelector).is('table, tbody') ? $('<tbody/>') : $('<div/>');
556
+
557
+ desturl = (typeof path === 'function') ? path(opts.state.currPage) : path.join(opts.state.currPage);
558
+ instance._debug('heading into ajax', desturl);
559
+
560
+ method = (opts.dataType === 'html' || opts.dataType === 'json' ) ? opts.dataType : 'html+callback';
561
+ if (opts.appendCallback && opts.dataType === 'html') {
562
+ method += '+callback';
563
+ }
564
+
565
+ switch (method) {
566
+ case 'html+callback':
567
+ instance._debug('Using HTML via .load() method');
568
+ box.load(desturl + ' ' + opts.itemSelector, undefined, function infscr_ajax_callback(responseText) {
569
+ instance._loadcallback(box, responseText, desturl);
570
+ });
571
+
572
+ break;
573
+
574
+ case 'html':
575
+ instance._debug('Using ' + (method.toUpperCase()) + ' via $.ajax() method');
576
+ $.ajax({
577
+ // params
578
+ url: desturl,
579
+ dataType: opts.dataType,
580
+ complete: function infscr_ajax_callback(jqXHR, textStatus) {
581
+ condition = (typeof (jqXHR.isResolved) !== 'undefined') ? (jqXHR.isResolved()) : (textStatus === 'success' || textStatus === 'notmodified');
582
+ if (condition) {
583
+ instance._loadcallback(box, jqXHR.responseText, desturl);
584
+ } else {
585
+ instance._error('end');
586
+ }
587
+ }
588
+ });
589
+
590
+ break;
591
+ case 'json':
592
+ instance._debug('Using ' + (method.toUpperCase()) + ' via $.ajax() method');
593
+ $.ajax({
594
+ dataType: 'json',
595
+ type: 'GET',
596
+ url: desturl,
597
+ success: function (data, textStatus, jqXHR) {
598
+ condition = (typeof (jqXHR.isResolved) !== 'undefined') ? (jqXHR.isResolved()) : (textStatus === 'success' || textStatus === 'notmodified');
599
+ if (opts.appendCallback) {
600
+ // if appendCallback is true, you must defined template in options.
601
+ // note that data passed into _loadcallback is already an html (after processed in opts.template(data)).
602
+ if (opts.template !== undefined) {
603
+ var theData = opts.template(data);
604
+ box.append(theData);
605
+ if (condition) {
606
+ instance._loadcallback(box, theData);
607
+ } else {
608
+ instance._error('end');
609
+ }
610
+ } else {
611
+ instance._debug('template must be defined.');
612
+ instance._error('end');
613
+ }
614
+ } else {
615
+ // if appendCallback is false, we will pass in the JSON object. you should handle it yourself in your callback.
616
+ if (condition) {
617
+ instance._loadcallback(box, data, desturl);
618
+ } else {
619
+ instance._error('end');
620
+ }
621
+ }
622
+ },
623
+ error: function() {
624
+ instance._debug('JSON ajax request failed.');
625
+ instance._error('end');
626
+ }
627
+ });
628
+
629
+ break;
630
+ }
631
+ },
632
+
633
+ // Retrieve next set of content items
634
+ retrieve: function infscr_retrieve(pageNum) {
635
+ pageNum = pageNum || null;
636
+
637
+ var instance = this,
638
+ opts = instance.options;
639
+
640
+ // if behavior is defined and this function is extended, call that instead of default
641
+ if (!!opts.behavior && this['retrieve_'+opts.behavior] !== undefined) {
642
+ this['retrieve_'+opts.behavior].call(this,pageNum);
643
+ return;
644
+ }
645
+
646
+ // for manual triggers, if destroyed, get out of here
647
+ if (opts.state.isDestroyed) {
648
+ this._debug('Instance is destroyed');
649
+ return false;
650
+ }
651
+
652
+ // we dont want to fire the ajax multiple times
653
+ opts.state.isDuringAjax = true;
654
+
655
+ opts.loading.start.call($(opts.contentSelector)[0],opts);
656
+ },
657
+
658
+ // Check to see next page is needed
659
+ scroll: function infscr_scroll() {
660
+
661
+ var opts = this.options,
662
+ state = opts.state;
663
+
664
+ // if behavior is defined and this function is extended, call that instead of default
665
+ if (!!opts.behavior && this['scroll_'+opts.behavior] !== undefined) {
666
+ this['scroll_'+opts.behavior].call(this);
667
+ return;
668
+ }
669
+
670
+ if (state.isDuringAjax || state.isInvalidPage || state.isDone || state.isDestroyed || state.isPaused) {
671
+ return;
672
+ }
673
+
674
+ if (!this._nearbottom()) {
675
+ return;
676
+ }
677
+
678
+ this.retrieve();
679
+
680
+ },
681
+
682
+ // Toggle pause value
683
+ toggle: function infscr_toggle() {
684
+ this._pausing();
685
+ },
686
+
687
+ // Unbind from scroll
688
+ unbind: function infscr_unbind() {
689
+ this._binding('unbind');
690
+ },
691
+
692
+ // update options
693
+ update: function infscr_options(key) {
694
+ if ($.isPlainObject(key)) {
695
+ this.options = $.extend(true,this.options,key);
696
+ }
697
+ }
698
+ };
699
+
700
+
701
+ /*
702
+ ----------------------------
703
+ Infinite Scroll function
704
+ ----------------------------
705
+
706
+ Borrowed logic from the following...
707
+
708
+ jQuery UI
709
+ - https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.widget.js
710
+
711
+ jCarousel
712
+ - https://github.com/jsor/jcarousel/blob/master/lib/jquery.jcarousel.js
713
+
714
+ Masonry
715
+ - https://github.com/desandro/masonry/blob/master/jquery.masonry.js
716
+
717
+ */
718
+
719
+ $.fn.infinitescroll = function infscr_init(options, callback) {
720
+
721
+
722
+ var thisCall = typeof options;
723
+
724
+ switch (thisCall) {
725
+
726
+ // method
727
+ case 'string':
728
+ var args = Array.prototype.slice.call(arguments, 1);
729
+
730
+ this.each(function () {
731
+ var instance = $.data(this, 'infinitescroll');
732
+
733
+ if (!instance) {
734
+ // not setup yet
735
+ // return $.error('Method ' + options + ' cannot be called until Infinite Scroll is setup');
736
+ return false;
737
+ }
738
+
739
+ if (!$.isFunction(instance[options]) || options.charAt(0) === '_') {
740
+ // return $.error('No such method ' + options + ' for Infinite Scroll');
741
+ return false;
742
+ }
743
+
744
+ // no errors!
745
+ instance[options].apply(instance, args);
746
+ });
747
+
748
+ break;
749
+
750
+ // creation
751
+ case 'object':
752
+
753
+ this.each(function () {
754
+
755
+ var instance = $.data(this, 'infinitescroll');
756
+
757
+ if (instance) {
758
+
759
+ // update options of current instance
760
+ instance.update(options);
761
+
762
+ } else {
763
+
764
+ // initialize new instance
765
+ instance = new $.infinitescroll(options, callback, this);
766
+
767
+ // don't attach if instantiation failed
768
+ if (!instance.failed) {
769
+ $.data(this, 'infinitescroll', instance);
770
+ }
771
+
772
+ }
773
+
774
+ });
775
+
776
+ break;
777
+
778
+ }
779
+
780
+ return this;
781
+ };
782
+
783
+
784
+
785
+ /*
786
+ * smartscroll: debounced scroll event for jQuery *
787
+ * https://github.com/lukeshumard/smartscroll
788
+ * Based on smartresize by @louis_remi: https://github.com/lrbabe/jquery.smartresize.js *
789
+ * Copyright 2011 Louis-Remi & Luke Shumard * Licensed under the MIT license. *
790
+ */
791
+
792
+ var event = $.event,
793
+ scrollTimeout;
794
+
795
+ event.special.smartscroll = {
796
+ setup: function () {
797
+ $(this).bind('scroll', event.special.smartscroll.handler);
798
+ },
799
+ teardown: function () {
800
+ $(this).unbind('scroll', event.special.smartscroll.handler);
801
+ },
802
+ handler: function (event, execAsap) {
803
+ // Save the context
804
+ var context = this,
805
+ args = arguments;
806
+
807
+ // set correct event type
808
+ event.type = 'smartscroll';
809
+
810
+ if (scrollTimeout) { clearTimeout(scrollTimeout); }
811
+ scrollTimeout = setTimeout(function () {
812
+ $(context).trigger('smartscroll', args);
813
+ }, execAsap === 'execAsap' ? 0 : 100);
814
+ }
815
+ };
816
+
817
+ $.fn.smartscroll = function (fn) {
818
+ return fn ? this.bind('smartscroll', fn) : this.trigger('smartscroll', ['execAsap']);
819
+ };
820
+
821
+ }));