picky-statistics 4.5.0 → 4.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (607) hide show
  1. data/lib/picky-statistics.rb +4 -2
  2. data/lib/picky-statistics/application/app.rb +10 -4
  3. data/lib/picky-statistics/application/javascripts/crossfilter.v1.min.js +1 -0
  4. data/lib/picky-statistics/application/javascripts/d3.v2.min.js +4 -0
  5. data/lib/picky-statistics/application/javascripts/helpers.js +258 -0
  6. data/lib/picky-statistics/application/javascripts/statistics.js +203 -63
  7. data/lib/picky-statistics/application/stylesheets/statistics.css +137 -71
  8. data/lib/picky-statistics/application/views/index.haml +42 -33
  9. data/lib/picky-statistics/logfile_reader.rb +106 -0
  10. data/spec/lib/picky-statistics/logfile_reader_spec.rb +57 -0
  11. metadata +12 -604
  12. data/lib/picky-statistics/application/javascripts/d3/LICENSE +0 -26
  13. data/lib/picky-statistics/application/javascripts/d3/Makefile +0 -268
  14. data/lib/picky-statistics/application/javascripts/d3/README.md +0 -51
  15. data/lib/picky-statistics/application/javascripts/d3/d3.chart.js +0 -984
  16. data/lib/picky-statistics/application/javascripts/d3/d3.chart.min.js +0 -1
  17. data/lib/picky-statistics/application/javascripts/d3/d3.csv.js +0 -92
  18. data/lib/picky-statistics/application/javascripts/d3/d3.csv.min.js +0 -1
  19. data/lib/picky-statistics/application/javascripts/d3/d3.geo.js +0 -938
  20. data/lib/picky-statistics/application/javascripts/d3/d3.geo.min.js +0 -1
  21. data/lib/picky-statistics/application/javascripts/d3/d3.geom.js +0 -835
  22. data/lib/picky-statistics/application/javascripts/d3/d3.geom.min.js +0 -1
  23. data/lib/picky-statistics/application/javascripts/d3/d3.js +0 -4690
  24. data/lib/picky-statistics/application/javascripts/d3/d3.layout.js +0 -1891
  25. data/lib/picky-statistics/application/javascripts/d3/d3.layout.min.js +0 -1
  26. data/lib/picky-statistics/application/javascripts/d3/d3.min.js +0 -2
  27. data/lib/picky-statistics/application/javascripts/d3/d3.time.js +0 -687
  28. data/lib/picky-statistics/application/javascripts/d3/d3.time.min.js +0 -1
  29. data/lib/picky-statistics/application/javascripts/d3/examples/albers/albers.html +0 -168
  30. data/lib/picky-statistics/application/javascripts/d3/examples/area/area-radial.html +0 -48
  31. data/lib/picky-statistics/application/javascripts/d3/examples/area/area.html +0 -113
  32. data/lib/picky-statistics/application/javascripts/d3/examples/axis/axis-alternating.html +0 -50
  33. data/lib/picky-statistics/application/javascripts/d3/examples/axis/axis-ggplot2.html +0 -68
  34. data/lib/picky-statistics/application/javascripts/d3/examples/axis/axis-multiples.html +0 -117
  35. data/lib/picky-statistics/application/javascripts/d3/examples/axis/axis-orientations.html +0 -63
  36. data/lib/picky-statistics/application/javascripts/d3/examples/axis/axis-transition.html +0 -153
  37. data/lib/picky-statistics/application/javascripts/d3/examples/azimuthal/azimuthal.css +0 -21
  38. data/lib/picky-statistics/application/javascripts/d3/examples/azimuthal/azimuthal.html +0 -99
  39. data/lib/picky-statistics/application/javascripts/d3/examples/azimuthal/azimuthal.js +0 -29
  40. data/lib/picky-statistics/application/javascripts/d3/examples/bar/bar-hierarchy.html +0 -223
  41. data/lib/picky-statistics/application/javascripts/d3/examples/bar/bar.html +0 -101
  42. data/lib/picky-statistics/application/javascripts/d3/examples/bar/sample-data.csv +0 -53
  43. data/lib/picky-statistics/application/javascripts/d3/examples/bonne/bonne.html +0 -159
  44. data/lib/picky-statistics/application/javascripts/d3/examples/box/box.css +0 -4
  45. data/lib/picky-statistics/application/javascripts/d3/examples/box/box.html +0 -19
  46. data/lib/picky-statistics/application/javascripts/d3/examples/box/box.js +0 -68
  47. data/lib/picky-statistics/application/javascripts/d3/examples/brush/brush-ordinal.html +0 -92
  48. data/lib/picky-statistics/application/javascripts/d3/examples/brush/brush-x.html +0 -92
  49. data/lib/picky-statistics/application/javascripts/d3/examples/brush/brush-y.html +0 -91
  50. data/lib/picky-statistics/application/javascripts/d3/examples/brush/brush.html +0 -98
  51. data/lib/picky-statistics/application/javascripts/d3/examples/bubble/bubble.css +0 -8
  52. data/lib/picky-statistics/application/javascripts/d3/examples/bubble/bubble.html +0 -14
  53. data/lib/picky-statistics/application/javascripts/d3/examples/bubble/bubble.js +0 -46
  54. data/lib/picky-statistics/application/javascripts/d3/examples/bullet/bullet.css +0 -10
  55. data/lib/picky-statistics/application/javascripts/d3/examples/bullet/bullet.html +0 -18
  56. data/lib/picky-statistics/application/javascripts/d3/examples/bullet/bullet.js +0 -53
  57. data/lib/picky-statistics/application/javascripts/d3/examples/bullet/bullets.json +0 -7
  58. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-radial.css +0 -9
  59. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-radial.html +0 -15
  60. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-radial.js +0 -50
  61. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-treemap.css +0 -14
  62. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-treemap.html +0 -16
  63. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-treemap.js +0 -53
  64. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/packages.js +0 -49
  65. data/lib/picky-statistics/application/javascripts/d3/examples/button.css +0 -35
  66. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/calendar.css +0 -15
  67. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/dji-area.html +0 -120
  68. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/dji.csv +0 -5233
  69. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/dji.html +0 -15
  70. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/dji.js +0 -65
  71. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/vix.csv +0 -5231
  72. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/vix.html +0 -15
  73. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/vix.js +0 -65
  74. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/cartogram.css +0 -20
  75. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/cartogram.html +0 -15
  76. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/cartogram.js +0 -51
  77. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/demers.css +0 -9
  78. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/demers.html +0 -16
  79. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/demers.js +0 -79
  80. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/dorling.css +0 -9
  81. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/dorling.html +0 -16
  82. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/dorling.js +0 -80
  83. data/lib/picky-statistics/application/javascripts/d3/examples/chord/chord-flare.html +0 -109
  84. data/lib/picky-statistics/application/javascripts/d3/examples/chord/chord.css +0 -9
  85. data/lib/picky-statistics/application/javascripts/d3/examples/chord/chord.html +0 -14
  86. data/lib/picky-statistics/application/javascripts/d3/examples/chord/chord.js +0 -98
  87. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/choropleth-area.html +0 -51
  88. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/choropleth-bounds.html +0 -46
  89. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/choropleth.css +0 -16
  90. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/choropleth.html +0 -15
  91. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/choropleth.js +0 -38
  92. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/unemployment.json +0 -1
  93. data/lib/picky-statistics/application/javascripts/d3/examples/clock/clock.css +0 -23
  94. data/lib/picky-statistics/application/javascripts/d3/examples/clock/clock.html +0 -17
  95. data/lib/picky-statistics/application/javascripts/d3/examples/clock/clock.js +0 -87
  96. data/lib/picky-statistics/application/javascripts/d3/examples/cluster/cluster-radial.html +0 -14
  97. data/lib/picky-statistics/application/javascripts/d3/examples/cluster/cluster-radial.js +0 -39
  98. data/lib/picky-statistics/application/javascripts/d3/examples/cluster/cluster.css +0 -15
  99. data/lib/picky-statistics/application/javascripts/d3/examples/cluster/cluster.html +0 -14
  100. data/lib/picky-statistics/application/javascripts/d3/examples/cluster/cluster.js +0 -39
  101. data/lib/picky-statistics/application/javascripts/d3/examples/contour/contour.html +0 -108
  102. data/lib/picky-statistics/application/javascripts/d3/examples/crimea/crimea-stacked-area.html +0 -109
  103. data/lib/picky-statistics/application/javascripts/d3/examples/crimea/crimea-stacked-bar.html +0 -98
  104. data/lib/picky-statistics/application/javascripts/d3/examples/crimea/crimea.csv +0 -24
  105. data/lib/picky-statistics/application/javascripts/d3/examples/custom/custom.html +0 -83
  106. data/lib/picky-statistics/application/javascripts/d3/examples/data/README.md +0 -13
  107. data/lib/picky-statistics/application/javascripts/d3/examples/data/faithful.json +0 -8
  108. data/lib/picky-statistics/application/javascripts/d3/examples/data/flare-imports.json +0 -222
  109. data/lib/picky-statistics/application/javascripts/d3/examples/data/flare.json +0 -380
  110. data/lib/picky-statistics/application/javascripts/d3/examples/data/morley.csv +0 -101
  111. data/lib/picky-statistics/application/javascripts/d3/examples/data/sample.csv +0 -2
  112. data/lib/picky-statistics/application/javascripts/d3/examples/data/sample.html +0 -5
  113. data/lib/picky-statistics/application/javascripts/d3/examples/data/sample.json +0 -1
  114. data/lib/picky-statistics/application/javascripts/d3/examples/data/sample.txt +0 -1
  115. data/lib/picky-statistics/application/javascripts/d3/examples/data/sample.xml +0 -4
  116. data/lib/picky-statistics/application/javascripts/d3/examples/data/stocks.csv +0 -807
  117. data/lib/picky-statistics/application/javascripts/d3/examples/data/unemployment.csv +0 -1709
  118. data/lib/picky-statistics/application/javascripts/d3/examples/data/us-borders.json +0 -1
  119. data/lib/picky-statistics/application/javascripts/d3/examples/data/us-counties.json +0 -3216
  120. data/lib/picky-statistics/application/javascripts/d3/examples/data/us-state-centroids.json +0 -54
  121. data/lib/picky-statistics/application/javascripts/d3/examples/data/us-states.json +0 -54
  122. data/lib/picky-statistics/application/javascripts/d3/examples/data/world-countries.json +0 -179
  123. data/lib/picky-statistics/application/javascripts/d3/examples/delaunay/delaunay.html +0 -44
  124. data/lib/picky-statistics/application/javascripts/d3/examples/donut/donut.html +0 -124
  125. data/lib/picky-statistics/application/javascripts/d3/examples/dot/dot.html +0 -103
  126. data/lib/picky-statistics/application/javascripts/d3/examples/drag/drag.html +0 -44
  127. data/lib/picky-statistics/application/javascripts/d3/examples/force/README +0 -10
  128. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-bounds.html +0 -70
  129. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-cluster.html +0 -249
  130. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-collapsible.html +0 -144
  131. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-dynamic.html +0 -118
  132. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-map.html +0 -104
  133. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-multi-foci.html +0 -68
  134. data/lib/picky-statistics/application/javascripts/d3/examples/force/force.css +0 -9
  135. data/lib/picky-statistics/application/javascripts/d3/examples/force/force.html +0 -14
  136. data/lib/picky-statistics/application/javascripts/d3/examples/force/force.js +0 -50
  137. data/lib/picky-statistics/application/javascripts/d3/examples/force/miserables.json +0 -1
  138. data/lib/picky-statistics/application/javascripts/d3/examples/great-arc/great-arc.html +0 -78
  139. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-data-key.html +0 -60
  140. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-data-nested-key.html +0 -75
  141. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-data-nested.html +0 -77
  142. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-data.html +0 -46
  143. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-event.html +0 -53
  144. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-node-key.html +0 -25
  145. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-order.html +0 -25
  146. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-sort.html +0 -75
  147. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-transform.html +0 -41
  148. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-transition-undefined.html +0 -43
  149. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-transition.html +0 -47
  150. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-webkit-transition.html +0 -64
  151. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/select-enter-add.html +0 -29
  152. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/selectAll-enter-add.html +0 -20
  153. data/lib/picky-statistics/application/javascripts/d3/examples/histogram/histogram.html +0 -80
  154. data/lib/picky-statistics/application/javascripts/d3/examples/horizon/horizon.css +0 -9
  155. data/lib/picky-statistics/application/javascripts/d3/examples/horizon/horizon.html +0 -25
  156. data/lib/picky-statistics/application/javascripts/d3/examples/horizon/horizon.js +0 -43
  157. data/lib/picky-statistics/application/javascripts/d3/examples/horizon/unemployment.json +0 -1
  158. data/lib/picky-statistics/application/javascripts/d3/examples/hull/hull.html +0 -75
  159. data/lib/picky-statistics/application/javascripts/d3/examples/kde/kde.css +0 -9
  160. data/lib/picky-statistics/application/javascripts/d3/examples/kde/kde.html +0 -14
  161. data/lib/picky-statistics/application/javascripts/d3/examples/kde/kde.js +0 -40
  162. data/lib/picky-statistics/application/javascripts/d3/examples/line/line.css +0 -22
  163. data/lib/picky-statistics/application/javascripts/d3/examples/line/line.html +0 -11
  164. data/lib/picky-statistics/application/javascripts/d3/examples/line/line.js +0 -63
  165. data/lib/picky-statistics/application/javascripts/d3/examples/marimekko/marimekko.html +0 -116
  166. data/lib/picky-statistics/application/javascripts/d3/examples/marimekko/marimekko.json +0 -18
  167. data/lib/picky-statistics/application/javascripts/d3/examples/marker/marker.html +0 -169
  168. data/lib/picky-statistics/application/javascripts/d3/examples/mercator/mercator.html +0 -133
  169. data/lib/picky-statistics/application/javascripts/d3/examples/moire/moire.html +0 -53
  170. data/lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js +0 -70
  171. data/lib/picky-statistics/application/javascripts/d3/examples/pack/pack.css +0 -15
  172. data/lib/picky-statistics/application/javascripts/d3/examples/pack/pack.html +0 -14
  173. data/lib/picky-statistics/application/javascripts/d3/examples/pack/pack.js +0 -33
  174. data/lib/picky-statistics/application/javascripts/d3/examples/parallel/cars.csv +0 -407
  175. data/lib/picky-statistics/application/javascripts/d3/examples/parallel/parallel.html +0 -134
  176. data/lib/picky-statistics/application/javascripts/d3/examples/partition/partition-icicle-zoom.html +0 -59
  177. data/lib/picky-statistics/application/javascripts/d3/examples/partition/partition-icicle.html +0 -45
  178. data/lib/picky-statistics/application/javascripts/d3/examples/partition/partition-sunburst-zoom.html +0 -72
  179. data/lib/picky-statistics/application/javascripts/d3/examples/partition/partition-sunburst.html +0 -21
  180. data/lib/picky-statistics/application/javascripts/d3/examples/partition/partition-sunburst.js +0 -72
  181. data/lib/picky-statistics/application/javascripts/d3/examples/pie/pie-transition.html +0 -69
  182. data/lib/picky-statistics/application/javascripts/d3/examples/pie/pie.html +0 -51
  183. data/lib/picky-statistics/application/javascripts/d3/examples/population/population.css +0 -28
  184. data/lib/picky-statistics/application/javascripts/d3/examples/population/population.csv +0 -571
  185. data/lib/picky-statistics/application/javascripts/d3/examples/population/population.html +0 -13
  186. data/lib/picky-statistics/application/javascripts/d3/examples/population/population.js +0 -126
  187. data/lib/picky-statistics/application/javascripts/d3/examples/qq/qq.css +0 -18
  188. data/lib/picky-statistics/application/javascripts/d3/examples/qq/qq.html +0 -21
  189. data/lib/picky-statistics/application/javascripts/d3/examples/qq/qq.js +0 -66
  190. data/lib/picky-statistics/application/javascripts/d3/examples/qq/stats.js +0 -28
  191. data/lib/picky-statistics/application/javascripts/d3/examples/qq/turkers.json +0 -1
  192. data/lib/picky-statistics/application/javascripts/d3/examples/quadtree/quadtree.html +0 -114
  193. data/lib/picky-statistics/application/javascripts/d3/examples/showreel/showreel.html +0 -661
  194. data/lib/picky-statistics/application/javascripts/d3/examples/sizzle/sizzle.html +0 -27
  195. data/lib/picky-statistics/application/javascripts/d3/examples/sort/sort.css +0 -4
  196. data/lib/picky-statistics/application/javascripts/d3/examples/sort/sort.html +0 -12
  197. data/lib/picky-statistics/application/javascripts/d3/examples/sort/sort.js +0 -112
  198. data/lib/picky-statistics/application/javascripts/d3/examples/spline/spline.css +0 -30
  199. data/lib/picky-statistics/application/javascripts/d3/examples/spline/spline.html +0 -14
  200. data/lib/picky-statistics/application/javascripts/d3/examples/spline/spline.js +0 -113
  201. data/lib/picky-statistics/application/javascripts/d3/examples/splom/flowers.json +0 -1
  202. data/lib/picky-statistics/application/javascripts/d3/examples/splom/splom.css +0 -49
  203. data/lib/picky-statistics/application/javascripts/d3/examples/splom/splom.html +0 -13
  204. data/lib/picky-statistics/application/javascripts/d3/examples/splom/splom.js +0 -119
  205. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stack.css +0 -7
  206. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stack.html +0 -22
  207. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stack.js +0 -119
  208. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stream.css +0 -3
  209. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stream.html +0 -19
  210. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stream.js +0 -42
  211. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stream_layers.js +0 -33
  212. data/lib/picky-statistics/application/javascripts/d3/examples/superformula/dot.html +0 -104
  213. data/lib/picky-statistics/application/javascripts/d3/examples/superformula/explorer.html +0 -120
  214. data/lib/picky-statistics/application/javascripts/d3/examples/superformula/superformula.html +0 -70
  215. data/lib/picky-statistics/application/javascripts/d3/examples/superformula/superformula.js +0 -98
  216. data/lib/picky-statistics/application/javascripts/d3/examples/symbol-map/symbol-map.html +0 -67
  217. data/lib/picky-statistics/application/javascripts/d3/examples/touch/touch.html +0 -65
  218. data/lib/picky-statistics/application/javascripts/d3/examples/transform/test.html +0 -85
  219. data/lib/picky-statistics/application/javascripts/d3/examples/transform/transform.html +0 -60
  220. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree-dynamic.html +0 -111
  221. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree-interactive.html +0 -172
  222. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree-radial.html +0 -14
  223. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree-radial.js +0 -40
  224. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree.css +0 -15
  225. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree.html +0 -14
  226. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree.js +0 -39
  227. data/lib/picky-statistics/application/javascripts/d3/examples/treemap/treemap-svg.html +0 -22
  228. data/lib/picky-statistics/application/javascripts/d3/examples/treemap/treemap-svg.js +0 -34
  229. data/lib/picky-statistics/application/javascripts/d3/examples/treemap/treemap.css +0 -8
  230. data/lib/picky-statistics/application/javascripts/d3/examples/treemap/treemap.html +0 -22
  231. data/lib/picky-statistics/application/javascripts/d3/examples/treemap/treemap.js +0 -53
  232. data/lib/picky-statistics/application/javascripts/d3/examples/voroboids/boid.js +0 -235
  233. data/lib/picky-statistics/application/javascripts/d3/examples/voroboids/voroboids.css +0 -15
  234. data/lib/picky-statistics/application/javascripts/d3/examples/voroboids/voroboids.html +0 -14
  235. data/lib/picky-statistics/application/javascripts/d3/examples/voroboids/voroboids.js +0 -65
  236. data/lib/picky-statistics/application/javascripts/d3/examples/voronoi/voronoi.css +0 -16
  237. data/lib/picky-statistics/application/javascripts/d3/examples/voronoi/voronoi.html +0 -15
  238. data/lib/picky-statistics/application/javascripts/d3/examples/voronoi/voronoi.js +0 -34
  239. data/lib/picky-statistics/application/javascripts/d3/examples/zoom-pan/zoom-pan-transform.html +0 -96
  240. data/lib/picky-statistics/application/javascripts/d3/examples/zoom-pan/zoom-pan.html +0 -120
  241. data/lib/picky-statistics/application/javascripts/d3/examples/zoom/dji.csv +0 -5233
  242. data/lib/picky-statistics/application/javascripts/d3/examples/zoom/zoom.html +0 -162
  243. data/lib/picky-statistics/application/javascripts/d3/lib/colorbrewer/LICENSE +0 -38
  244. data/lib/picky-statistics/application/javascripts/d3/lib/colorbrewer/colorbrewer.css +0 -1327
  245. data/lib/picky-statistics/application/javascripts/d3/lib/colorbrewer/colorbrewer.js +0 -32
  246. data/lib/picky-statistics/application/javascripts/d3/lib/jit/LICENSE +0 -27
  247. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/LICENSE +0 -25
  248. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  249. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  250. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_flat_10_000000_40x100.png +0 -0
  251. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  252. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  253. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  254. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  255. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  256. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  257. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  258. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-icons_228ef1_256x240.png +0 -0
  259. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-icons_ef8c08_256x240.png +0 -0
  260. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-icons_ffd27a_256x240.png +0 -0
  261. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
  262. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/jquery-ui.css +0 -318
  263. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/jquery-ui.min.js +0 -83
  264. data/lib/picky-statistics/application/javascripts/d3/lib/jquery/LICENSE +0 -20
  265. data/lib/picky-statistics/application/javascripts/d3/lib/jquery/jquery.js +0 -6883
  266. data/lib/picky-statistics/application/javascripts/d3/lib/jquery/jquery.min.js +0 -166
  267. data/lib/picky-statistics/application/javascripts/d3/lib/polymaps/LICENSE +0 -28
  268. data/lib/picky-statistics/application/javascripts/d3/lib/protovis/LICENSE +0 -27
  269. data/lib/picky-statistics/application/javascripts/d3/lib/science/LICENSE +0 -26
  270. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.js +0 -225
  271. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.lin.js +0 -27
  272. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.lin.min.js +0 -1
  273. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.min.js +0 -1
  274. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.stats.js +0 -720
  275. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.stats.min.js +0 -1
  276. data/lib/picky-statistics/application/javascripts/d3/lib/sizzle/LICENSE +0 -24
  277. data/lib/picky-statistics/application/javascripts/d3/lib/sizzle/sizzle.js +0 -1376
  278. data/lib/picky-statistics/application/javascripts/d3/lib/sizzle/sizzle.min.js +0 -28
  279. data/lib/picky-statistics/application/javascripts/d3/package.json +0 -28
  280. data/lib/picky-statistics/application/javascripts/d3/src/behavior/behavior.js +0 -1
  281. data/lib/picky-statistics/application/javascripts/d3/src/behavior/drag.js +0 -125
  282. data/lib/picky-statistics/application/javascripts/d3/src/behavior/zoom.js +0 -242
  283. data/lib/picky-statistics/application/javascripts/d3/src/chart/box.js +0 -297
  284. data/lib/picky-statistics/application/javascripts/d3/src/chart/bullet.js +0 -237
  285. data/lib/picky-statistics/application/javascripts/d3/src/chart/chart.js +0 -1
  286. data/lib/picky-statistics/application/javascripts/d3/src/chart/horizon.js +0 -203
  287. data/lib/picky-statistics/application/javascripts/d3/src/chart/qq.js +0 -245
  288. data/lib/picky-statistics/application/javascripts/d3/src/compat/date.js +0 -3
  289. data/lib/picky-statistics/application/javascripts/d3/src/compat/style.js +0 -9
  290. data/lib/picky-statistics/application/javascripts/d3/src/core/array.js +0 -29
  291. data/lib/picky-statistics/application/javascripts/d3/src/core/ascending.js +0 -3
  292. data/lib/picky-statistics/application/javascripts/d3/src/core/bisect.js +0 -38
  293. data/lib/picky-statistics/application/javascripts/d3/src/core/collapse.js +0 -3
  294. data/lib/picky-statistics/application/javascripts/d3/src/core/core.js +0 -1
  295. data/lib/picky-statistics/application/javascripts/d3/src/core/descending.js +0 -3
  296. data/lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js +0 -60
  297. data/lib/picky-statistics/application/javascripts/d3/src/core/ease.js +0 -128
  298. data/lib/picky-statistics/application/javascripts/d3/src/core/entries.js +0 -5
  299. data/lib/picky-statistics/application/javascripts/d3/src/core/event.js +0 -6
  300. data/lib/picky-statistics/application/javascripts/d3/src/core/extent.js +0 -21
  301. data/lib/picky-statistics/application/javascripts/d3/src/core/first.js +0 -13
  302. data/lib/picky-statistics/application/javascripts/d3/src/core/format.js +0 -100
  303. data/lib/picky-statistics/application/javascripts/d3/src/core/formatPrefix.js +0 -20
  304. data/lib/picky-statistics/application/javascripts/d3/src/core/functor.js +0 -3
  305. data/lib/picky-statistics/application/javascripts/d3/src/core/hsl.js +0 -63
  306. data/lib/picky-statistics/application/javascripts/d3/src/core/html.js +0 -10
  307. data/lib/picky-statistics/application/javascripts/d3/src/core/interpolate.js +0 -183
  308. data/lib/picky-statistics/application/javascripts/d3/src/core/json.js +0 -5
  309. data/lib/picky-statistics/application/javascripts/d3/src/core/keys.js +0 -5
  310. data/lib/picky-statistics/application/javascripts/d3/src/core/last.js +0 -13
  311. data/lib/picky-statistics/application/javascripts/d3/src/core/max.js +0 -14
  312. data/lib/picky-statistics/application/javascripts/d3/src/core/mean.js +0 -13
  313. data/lib/picky-statistics/application/javascripts/d3/src/core/median.js +0 -5
  314. data/lib/picky-statistics/application/javascripts/d3/src/core/merge.js +0 -3
  315. data/lib/picky-statistics/application/javascripts/d3/src/core/min.js +0 -14
  316. data/lib/picky-statistics/application/javascripts/d3/src/core/nest.js +0 -87
  317. data/lib/picky-statistics/application/javascripts/d3/src/core/noop.js +0 -1
  318. data/lib/picky-statistics/application/javascripts/d3/src/core/ns.js +0 -17
  319. data/lib/picky-statistics/application/javascripts/d3/src/core/number.js +0 -3
  320. data/lib/picky-statistics/application/javascripts/d3/src/core/permute.js +0 -7
  321. data/lib/picky-statistics/application/javascripts/d3/src/core/quantile.js +0 -8
  322. data/lib/picky-statistics/application/javascripts/d3/src/core/random.js +0 -15
  323. data/lib/picky-statistics/application/javascripts/d3/src/core/range.js +0 -21
  324. data/lib/picky-statistics/application/javascripts/d3/src/core/rebind.js +0 -16
  325. data/lib/picky-statistics/application/javascripts/d3/src/core/requote.js +0 -5
  326. data/lib/picky-statistics/application/javascripts/d3/src/core/rgb.js +0 -287
  327. data/lib/picky-statistics/application/javascripts/d3/src/core/round.js +0 -5
  328. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-append.js +0 -15
  329. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-attr.js +0 -44
  330. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-call.js +0 -13
  331. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-classed.js +0 -61
  332. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-data.js +0 -110
  333. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-each.js +0 -9
  334. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-empty.js +0 -3
  335. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-enter-select.js +0 -24
  336. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-enter.js +0 -11
  337. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-filter.js +0 -26
  338. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-html.js +0 -6
  339. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-insert.js +0 -20
  340. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-map.js +0 -5
  341. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-node.js +0 -9
  342. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-on.js +0 -34
  343. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-order.js +0 -11
  344. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-property.js +0 -23
  345. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-remove.js +0 -9
  346. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-root.js +0 -18
  347. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-select.js +0 -30
  348. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-selectAll.js +0 -24
  349. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-sort.js +0 -12
  350. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-style.js +0 -26
  351. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-text.js +0 -6
  352. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-transition.js +0 -14
  353. data/lib/picky-statistics/application/javascripts/d3/src/core/selection.js +0 -25
  354. data/lib/picky-statistics/application/javascripts/d3/src/core/split.js +0 -21
  355. data/lib/picky-statistics/application/javascripts/d3/src/core/sum.js +0 -14
  356. data/lib/picky-statistics/application/javascripts/d3/src/core/text.js +0 -10
  357. data/lib/picky-statistics/application/javascripts/d3/src/core/this.js +0 -3
  358. data/lib/picky-statistics/application/javascripts/d3/src/core/timer.js +0 -104
  359. data/lib/picky-statistics/application/javascripts/d3/src/core/transform.js +0 -58
  360. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-attr.js +0 -23
  361. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-delay.js +0 -6
  362. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-duration.js +0 -6
  363. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-each.js +0 -9
  364. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-remove.js +0 -6
  365. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-select.js +0 -22
  366. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-selectAll.js +0 -22
  367. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-style.js +0 -14
  368. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-text.js +0 -7
  369. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-transition.js +0 -3
  370. data/lib/picky-statistics/application/javascripts/d3/src/core/transition.js +0 -125
  371. data/lib/picky-statistics/application/javascripts/d3/src/core/transpose.js +0 -3
  372. data/lib/picky-statistics/application/javascripts/d3/src/core/uninterpolate.js +0 -9
  373. data/lib/picky-statistics/application/javascripts/d3/src/core/values.js +0 -5
  374. data/lib/picky-statistics/application/javascripts/d3/src/core/xhr.js +0 -10
  375. data/lib/picky-statistics/application/javascripts/d3/src/core/xml.js +0 -10
  376. data/lib/picky-statistics/application/javascripts/d3/src/core/zip.js +0 -13
  377. data/lib/picky-statistics/application/javascripts/d3/src/csv/csv.js +0 -5
  378. data/lib/picky-statistics/application/javascripts/d3/src/csv/format.js +0 -13
  379. data/lib/picky-statistics/application/javascripts/d3/src/csv/parse.js +0 -73
  380. data/lib/picky-statistics/application/javascripts/d3/src/end.js +0 -1
  381. data/lib/picky-statistics/application/javascripts/d3/src/externs.js +0 -6
  382. data/lib/picky-statistics/application/javascripts/d3/src/geo/albers.js +0 -126
  383. data/lib/picky-statistics/application/javascripts/d3/src/geo/azimuthal.js +0 -80
  384. data/lib/picky-statistics/application/javascripts/d3/src/geo/bonne.js +0 -70
  385. data/lib/picky-statistics/application/javascripts/d3/src/geo/bounds.js +0 -83
  386. data/lib/picky-statistics/application/javascripts/d3/src/geo/circle.js +0 -146
  387. data/lib/picky-statistics/application/javascripts/d3/src/geo/equirectangular.js +0 -36
  388. data/lib/picky-statistics/application/javascripts/d3/src/geo/geo.js +0 -3
  389. data/lib/picky-statistics/application/javascripts/d3/src/geo/greatArc.js +0 -80
  390. data/lib/picky-statistics/application/javascripts/d3/src/geo/greatCircle.js +0 -1
  391. data/lib/picky-statistics/application/javascripts/d3/src/geo/mercator.js +0 -36
  392. data/lib/picky-statistics/application/javascripts/d3/src/geo/path.js +0 -271
  393. data/lib/picky-statistics/application/javascripts/d3/src/geo/type.js +0 -5
  394. data/lib/picky-statistics/application/javascripts/d3/src/geom/contour.js +0 -78
  395. data/lib/picky-statistics/application/javascripts/d3/src/geom/delaunay.js +0 -31
  396. data/lib/picky-statistics/application/javascripts/d3/src/geom/geom.js +0 -1
  397. data/lib/picky-statistics/application/javascripts/d3/src/geom/hull.js +0 -98
  398. data/lib/picky-statistics/application/javascripts/d3/src/geom/polygon.js +0 -88
  399. data/lib/picky-statistics/application/javascripts/d3/src/geom/quadtree.js +0 -129
  400. data/lib/picky-statistics/application/javascripts/d3/src/geom/voronoi.js +0 -409
  401. data/lib/picky-statistics/application/javascripts/d3/src/layout/bundle.js +0 -57
  402. data/lib/picky-statistics/application/javascripts/d3/src/layout/chord.js +0 -153
  403. data/lib/picky-statistics/application/javascripts/d3/src/layout/cluster.js +0 -78
  404. data/lib/picky-statistics/application/javascripts/d3/src/layout/force.js +0 -342
  405. data/lib/picky-statistics/application/javascripts/d3/src/layout/hierarchy.js +0 -120
  406. data/lib/picky-statistics/application/javascripts/d3/src/layout/histogram.js +0 -102
  407. data/lib/picky-statistics/application/javascripts/d3/src/layout/layout.js +0 -1
  408. data/lib/picky-statistics/application/javascripts/d3/src/layout/pack.js +0 -203
  409. data/lib/picky-statistics/application/javascripts/d3/src/layout/partition.js +0 -48
  410. data/lib/picky-statistics/application/javascripts/d3/src/layout/pie.js +0 -95
  411. data/lib/picky-statistics/application/javascripts/d3/src/layout/stack.js +0 -237
  412. data/lib/picky-statistics/application/javascripts/d3/src/layout/tree.js +0 -237
  413. data/lib/picky-statistics/application/javascripts/d3/src/layout/treemap.js +0 -217
  414. data/lib/picky-statistics/application/javascripts/d3/src/package.js +0 -18
  415. data/lib/picky-statistics/application/javascripts/d3/src/scale/bilinear.js +0 -7
  416. data/lib/picky-statistics/application/javascripts/d3/src/scale/category.js +0 -54
  417. data/lib/picky-statistics/application/javascripts/d3/src/scale/linear.js +0 -111
  418. data/lib/picky-statistics/application/javascripts/d3/src/scale/log.js +0 -85
  419. data/lib/picky-statistics/application/javascripts/d3/src/scale/nice.js +0 -24
  420. data/lib/picky-statistics/application/javascripts/d3/src/scale/ordinal.js +0 -81
  421. data/lib/picky-statistics/application/javascripts/d3/src/scale/polylinear.js +0 -16
  422. data/lib/picky-statistics/application/javascripts/d3/src/scale/pow.js +0 -54
  423. data/lib/picky-statistics/application/javascripts/d3/src/scale/quantile.js +0 -43
  424. data/lib/picky-statistics/application/javascripts/d3/src/scale/quantize.js +0 -36
  425. data/lib/picky-statistics/application/javascripts/d3/src/scale/scale.js +0 -10
  426. data/lib/picky-statistics/application/javascripts/d3/src/scale/sqrt.js +0 -3
  427. data/lib/picky-statistics/application/javascripts/d3/src/start.js +0 -1
  428. data/lib/picky-statistics/application/javascripts/d3/src/svg/arc.js +0 -95
  429. data/lib/picky-statistics/application/javascripts/d3/src/svg/area-radial.js +0 -10
  430. data/lib/picky-statistics/application/javascripts/d3/src/svg/area.js +0 -89
  431. data/lib/picky-statistics/application/javascripts/d3/src/svg/axis.js +0 -200
  432. data/lib/picky-statistics/application/javascripts/d3/src/svg/brush.js +0 -334
  433. data/lib/picky-statistics/application/javascripts/d3/src/svg/chord.js +0 -99
  434. data/lib/picky-statistics/application/javascripts/d3/src/svg/diagonal-radial.js +0 -22
  435. data/lib/picky-statistics/application/javascripts/d3/src/svg/diagonal.js +0 -38
  436. data/lib/picky-statistics/application/javascripts/d3/src/svg/line-radial.js +0 -22
  437. data/lib/picky-statistics/application/javascripts/d3/src/svg/line.js +0 -415
  438. data/lib/picky-statistics/application/javascripts/d3/src/svg/mouse.js +0 -29
  439. data/lib/picky-statistics/application/javascripts/d3/src/svg/svg.js +0 -1
  440. data/lib/picky-statistics/application/javascripts/d3/src/svg/symbol.js +0 -98
  441. data/lib/picky-statistics/application/javascripts/d3/src/svg/touches.js +0 -9
  442. data/lib/picky-statistics/application/javascripts/d3/src/time/day.js +0 -7
  443. data/lib/picky-statistics/application/javascripts/d3/src/time/days.js +0 -11
  444. data/lib/picky-statistics/application/javascripts/d3/src/time/format-iso.js +0 -13
  445. data/lib/picky-statistics/application/javascripts/d3/src/time/format-utc.js +0 -53
  446. data/lib/picky-statistics/application/javascripts/d3/src/time/format.js +0 -327
  447. data/lib/picky-statistics/application/javascripts/d3/src/time/hour.js +0 -8
  448. data/lib/picky-statistics/application/javascripts/d3/src/time/hours.js +0 -11
  449. data/lib/picky-statistics/application/javascripts/d3/src/time/minute.js +0 -5
  450. data/lib/picky-statistics/application/javascripts/d3/src/time/minutes.js +0 -11
  451. data/lib/picky-statistics/application/javascripts/d3/src/time/month.js +0 -7
  452. data/lib/picky-statistics/application/javascripts/d3/src/time/months.js +0 -11
  453. data/lib/picky-statistics/application/javascripts/d3/src/time/range.js +0 -16
  454. data/lib/picky-statistics/application/javascripts/d3/src/time/scale-utc.js +0 -36
  455. data/lib/picky-statistics/application/javascripts/d3/src/time/scale.js +0 -118
  456. data/lib/picky-statistics/application/javascripts/d3/src/time/second.js +0 -5
  457. data/lib/picky-statistics/application/javascripts/d3/src/time/seconds.js +0 -7
  458. data/lib/picky-statistics/application/javascripts/d3/src/time/time.js +0 -3
  459. data/lib/picky-statistics/application/javascripts/d3/src/time/week.js +0 -9
  460. data/lib/picky-statistics/application/javascripts/d3/src/time/weeks.js +0 -11
  461. data/lib/picky-statistics/application/javascripts/d3/src/time/year.js +0 -7
  462. data/lib/picky-statistics/application/javascripts/d3/src/time/years.js +0 -11
  463. data/lib/picky-statistics/application/javascripts/d3/test/core/ascending-test.js +0 -47
  464. data/lib/picky-statistics/application/javascripts/d3/test/core/bisect-test.js +0 -103
  465. data/lib/picky-statistics/application/javascripts/d3/test/core/descending-test.js +0 -47
  466. data/lib/picky-statistics/application/javascripts/d3/test/core/dispatch-test.js +0 -129
  467. data/lib/picky-statistics/application/javascripts/d3/test/core/ease-test.js +0 -129
  468. data/lib/picky-statistics/application/javascripts/d3/test/core/entries-test.js +0 -43
  469. data/lib/picky-statistics/application/javascripts/d3/test/core/extent-test.js +0 -51
  470. data/lib/picky-statistics/application/javascripts/d3/test/core/first-test.js +0 -42
  471. data/lib/picky-statistics/application/javascripts/d3/test/core/format-test.js +0 -239
  472. data/lib/picky-statistics/application/javascripts/d3/test/core/formatPrefix-test.js +0 -108
  473. data/lib/picky-statistics/application/javascripts/d3/test/core/functor-test.js +0 -29
  474. data/lib/picky-statistics/application/javascripts/d3/test/core/hsl-test.js +0 -82
  475. data/lib/picky-statistics/application/javascripts/d3/test/core/html-test.js +0 -37
  476. data/lib/picky-statistics/application/javascripts/d3/test/core/interpolate-test.js +0 -209
  477. data/lib/picky-statistics/application/javascripts/d3/test/core/json-test.js +0 -37
  478. data/lib/picky-statistics/application/javascripts/d3/test/core/keys-test.js +0 -31
  479. data/lib/picky-statistics/application/javascripts/d3/test/core/last-test.js +0 -42
  480. data/lib/picky-statistics/application/javascripts/d3/test/core/max-test.js +0 -51
  481. data/lib/picky-statistics/application/javascripts/d3/test/core/mean-test.js +0 -43
  482. data/lib/picky-statistics/application/javascripts/d3/test/core/median-test.js +0 -43
  483. data/lib/picky-statistics/application/javascripts/d3/test/core/merge-test.js +0 -27
  484. data/lib/picky-statistics/application/javascripts/d3/test/core/min-test.js +0 -50
  485. data/lib/picky-statistics/application/javascripts/d3/test/core/nest-test.js +0 -236
  486. data/lib/picky-statistics/application/javascripts/d3/test/core/ns-test.js +0 -58
  487. data/lib/picky-statistics/application/javascripts/d3/test/core/permute-test.js +0 -53
  488. data/lib/picky-statistics/application/javascripts/d3/test/core/quantile-test.js +0 -50
  489. data/lib/picky-statistics/application/javascripts/d3/test/core/range-test.js +0 -93
  490. data/lib/picky-statistics/application/javascripts/d3/test/core/rebind-test.js +0 -52
  491. data/lib/picky-statistics/application/javascripts/d3/test/core/requote-test.js +0 -53
  492. data/lib/picky-statistics/application/javascripts/d3/test/core/rgb-test.js +0 -89
  493. data/lib/picky-statistics/application/javascripts/d3/test/core/round-test.js +0 -70
  494. data/lib/picky-statistics/application/javascripts/d3/test/core/select-test.js +0 -42
  495. data/lib/picky-statistics/application/javascripts/d3/test/core/selectAll-test.js +0 -46
  496. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-append-test.js +0 -123
  497. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-attr-test.js +0 -153
  498. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-call-test.js +0 -71
  499. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-classed-test.js +0 -219
  500. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-data-test.js +0 -168
  501. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-each-test.js +0 -83
  502. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-empty-test.js +0 -51
  503. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-filter-test.js +0 -70
  504. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-html-test.js +0 -121
  505. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-insert-test.js +0 -136
  506. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-map-test.js +0 -47
  507. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-node-test.js +0 -50
  508. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-on-test.js +0 -95
  509. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-order-test.js +0 -32
  510. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-property-test.js +0 -91
  511. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-remove-test.js +0 -39
  512. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-select-test.js +0 -125
  513. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-selectAll-test.js +0 -128
  514. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-sort-test.js +0 -59
  515. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-style-test.js +0 -100
  516. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-test.js +0 -35
  517. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-text-test.js +0 -109
  518. data/lib/picky-statistics/application/javascripts/d3/test/core/split-test.js +0 -34
  519. data/lib/picky-statistics/application/javascripts/d3/test/core/sum-test.js +0 -47
  520. data/lib/picky-statistics/application/javascripts/d3/test/core/text-test.js +0 -48
  521. data/lib/picky-statistics/application/javascripts/d3/test/core/timer-test.js +0 -62
  522. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-attr.js +0 -54
  523. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-attrTween.js +0 -67
  524. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-call.js +0 -33
  525. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-delay.js +0 -41
  526. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-duration.js +0 -41
  527. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-each.js +0 -166
  528. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-id.js +0 -20
  529. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-remove.js +0 -46
  530. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-select.js +0 -63
  531. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-selectAll.js +0 -59
  532. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-style.js +0 -49
  533. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-styleTween.js +0 -73
  534. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-text.js +0 -30
  535. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-time.js +0 -36
  536. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-transition.js +0 -60
  537. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-tween.js +0 -71
  538. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test.js +0 -66
  539. data/lib/picky-statistics/application/javascripts/d3/test/core/transpose-test.js +0 -32
  540. data/lib/picky-statistics/application/javascripts/d3/test/core/values-test.js +0 -35
  541. data/lib/picky-statistics/application/javascripts/d3/test/core/version-test.js +0 -18
  542. data/lib/picky-statistics/application/javascripts/d3/test/core/xhr-test.js +0 -56
  543. data/lib/picky-statistics/application/javascripts/d3/test/core/xml-test.js +0 -48
  544. data/lib/picky-statistics/application/javascripts/d3/test/core/zip-test.js +0 -32
  545. data/lib/picky-statistics/application/javascripts/d3/test/csv/csv-test.js +0 -38
  546. data/lib/picky-statistics/application/javascripts/d3/test/csv/format-test.js +0 -39
  547. data/lib/picky-statistics/application/javascripts/d3/test/csv/parse-test.js +0 -101
  548. data/lib/picky-statistics/application/javascripts/d3/test/env-assert.js +0 -96
  549. data/lib/picky-statistics/application/javascripts/d3/test/env-fragment.js +0 -8
  550. data/lib/picky-statistics/application/javascripts/d3/test/env-xhr.js +0 -56
  551. data/lib/picky-statistics/application/javascripts/d3/test/env.js +0 -13
  552. data/lib/picky-statistics/application/javascripts/d3/test/geo/albers-test.js +0 -57
  553. data/lib/picky-statistics/application/javascripts/d3/test/geo/azimuthal-test.js +0 -261
  554. data/lib/picky-statistics/application/javascripts/d3/test/geo/bonne-test.js +0 -116
  555. data/lib/picky-statistics/application/javascripts/d3/test/geo/equirectangular-test.js +0 -50
  556. data/lib/picky-statistics/application/javascripts/d3/test/geo/greatArc-test.js +0 -41
  557. data/lib/picky-statistics/application/javascripts/d3/test/geo/mercator-test.js +0 -57
  558. data/lib/picky-statistics/application/javascripts/d3/test/geo/path-test.js +0 -25
  559. data/lib/picky-statistics/application/javascripts/d3/test/geom/polygon-test.js +0 -57
  560. data/lib/picky-statistics/application/javascripts/d3/test/layout/cluster-test.js +0 -39
  561. data/lib/picky-statistics/application/javascripts/d3/test/layout/hierarchy-test.js +0 -30
  562. data/lib/picky-statistics/application/javascripts/d3/test/layout/histogram-test.js +0 -91
  563. data/lib/picky-statistics/application/javascripts/d3/test/layout/pack-test.js +0 -67
  564. data/lib/picky-statistics/application/javascripts/d3/test/layout/partition-test.js +0 -50
  565. data/lib/picky-statistics/application/javascripts/d3/test/layout/tree-test.js +0 -41
  566. data/lib/picky-statistics/application/javascripts/d3/test/layout/treemap-test.js +0 -190
  567. data/lib/picky-statistics/application/javascripts/d3/test/scale/category-test.js +0 -74
  568. data/lib/picky-statistics/application/javascripts/d3/test/scale/linear-test.js +0 -243
  569. data/lib/picky-statistics/application/javascripts/d3/test/scale/log-test.js +0 -266
  570. data/lib/picky-statistics/application/javascripts/d3/test/scale/ordinal-test.js +0 -207
  571. data/lib/picky-statistics/application/javascripts/d3/test/scale/pow-test.js +0 -263
  572. data/lib/picky-statistics/application/javascripts/d3/test/scale/quantile-test.js +0 -64
  573. data/lib/picky-statistics/application/javascripts/d3/test/scale/quantize-test.js +0 -69
  574. data/lib/picky-statistics/application/javascripts/d3/test/scale/sqrt-test.js +0 -256
  575. data/lib/picky-statistics/application/javascripts/d3/test/svg/arc-test.js +0 -147
  576. data/lib/picky-statistics/application/javascripts/d3/test/svg/area-radial-test.js +0 -200
  577. data/lib/picky-statistics/application/javascripts/d3/test/svg/area-test.js +0 -192
  578. data/lib/picky-statistics/application/javascripts/d3/test/svg/axis-test.js +0 -353
  579. data/lib/picky-statistics/application/javascripts/d3/test/svg/line-radial-test.js +0 -125
  580. data/lib/picky-statistics/application/javascripts/d3/test/svg/line-test.js +0 -189
  581. data/lib/picky-statistics/application/javascripts/d3/test/svg/symbol-test.js +0 -96
  582. data/lib/picky-statistics/application/javascripts/d3/test/time/day-test.js +0 -65
  583. data/lib/picky-statistics/application/javascripts/d3/test/time/days-test.js +0 -105
  584. data/lib/picky-statistics/application/javascripts/d3/test/time/format-test.js +0 -467
  585. data/lib/picky-statistics/application/javascripts/d3/test/time/hour-test.js +0 -103
  586. data/lib/picky-statistics/application/javascripts/d3/test/time/hours-test.js +0 -135
  587. data/lib/picky-statistics/application/javascripts/d3/test/time/minute-test.js +0 -43
  588. data/lib/picky-statistics/application/javascripts/d3/test/time/minutes-test.js +0 -101
  589. data/lib/picky-statistics/application/javascripts/d3/test/time/month-test.js +0 -53
  590. data/lib/picky-statistics/application/javascripts/d3/test/time/months-test.js +0 -105
  591. data/lib/picky-statistics/application/javascripts/d3/test/time/scale-test.js +0 -525
  592. data/lib/picky-statistics/application/javascripts/d3/test/time/second-test.js +0 -41
  593. data/lib/picky-statistics/application/javascripts/d3/test/time/seconds-test.js +0 -101
  594. data/lib/picky-statistics/application/javascripts/d3/test/time/week-test.js +0 -59
  595. data/lib/picky-statistics/application/javascripts/d3/test/time/weeks-test.js +0 -105
  596. data/lib/picky-statistics/application/javascripts/d3/test/time/year-test.js +0 -41
  597. data/lib/picky-statistics/application/javascripts/d3/test/time/years-test.js +0 -73
  598. data/lib/picky-statistics/application/javascripts/full_live.js +0 -60
  599. data/lib/picky-statistics/application/javascripts/graph.js +0 -83
  600. data/lib/picky-statistics/application/javascripts/jquery-1.4.4.min.js +0 -167
  601. data/lib/picky-statistics/application/javascripts/jquery.sparkline-1.6.min.js +0 -94
  602. data/lib/picky-statistics/application/javascripts/results.js +0 -86
  603. data/lib/picky-statistics/application/javascripts/rickshaw.js +0 -1
  604. data/lib/picky-statistics/statistics/count.rb +0 -70
  605. data/lib/picky-statistics/statistics/logfile_reader.rb +0 -143
  606. data/spec/lib/picky-statistics/statistics/count_spec.rb +0 -15
  607. data/spec/lib/picky-statistics/statistics/logfile_reader_spec.rb +0 -47
@@ -1 +0,0 @@
1
- (function(){function h(a,b){var c=b+1;while(c<a.length&&a[c]===0)c++;return c}function g(a,b,c,d){var e=d[0],f=d[1],g=h(b,f);if(g<a.length&&a[g]-a[c]<a[c]-a[e]){var i=h(b,e);d[0]=i,d[1]=g}}function f(a){return(a=1-a*a*a)*a*a}function e(a){var b=a.length,c=0;while(++c<b)if(a[c-1]>=a[c])return!1;return!0}function d(a){var b=a.length,c=-1;while(++c<b)if(!isFinite(a[c]))return!1;return!0}function c(a,b,c,d){var e=[],f=a+c,g=b.length,h=-1;while(++h<g)e[h]=(a*b[h]+c*d[h])/f;return e}function b(b,c){var d=c.length;if(b>d)return null;var e=[],f=[],g={},h=0,i=0,j,k,l;while(i<b){if(h===d)return null;var m=Math.floor(Math.random()*d);if(m in g)continue;g[m]=1,h++,k=c[m],l=!0;for(j=0;j<i;j++)if(a(k,e[j])){l=!1;break}l&&(e[i]=k,f[i]=m,i++)}return e}function a(a,b){if(!a||!b||a.length!==b.length)return!1;var c=a.length,d=-1;while(++d<c)if(a[d]!==b[d])return!1;return!0}science.stats={},science.stats.bandwidth={nrd0:function(a){var b=Math.sqrt(science.stats.variance(a));(lo=Math.min(b,science.stats.iqr(a)/1.34))||(lo=b)||(lo=Math.abs(a[1]))||(lo=1);return.9*lo*Math.pow(a.length,-0.2)},nrd:function(a){var b=science.stats.iqr(a)/1.34;return 1.06*Math.min(Math.sqrt(science.stats.variance(a)),b)*Math.pow(a.length,-0.2)}},science.stats.distance={euclidean:function(a,b){var c=a.length,d=-1,e=0,f;while(++d<c)f=a[d]-b[d],e+=f*f;return Math.sqrt(e)},manhattan:function(a,b){var c=a.length,d=-1,e=0;while(++d<c)e+=Math.abs(a[d]-b[d]);return e},minkowski:function(a){return function(b,c){var d=b.length,e=-1,f=0;while(++e<d)f+=Math.pow(Math.abs(b[e]-c[e]),a);return Math.pow(f,1/a)}},chebyshev:function(a,b){var c=a.length,d=-1,e=0,f;while(++d<c)f=Math.abs(a[d]-b[d]),f>e&&(e=f);return e},hamming:function(a,b){var c=a.length,d=-1,e=0;while(++d<c)a[d]!==b[d]&&e++;return e},jaccard:function(a,b){var c=a.length,d=-1,e=0;while(++d<c)a[d]===b[d]&&e++;return e/c},braycurtis:function(a,b){var c=a.length,d=-1,e=0,f=0,g,h;while(++d<c)g=a[d],h=b[d],e+=Math.abs(g-h),f+=Math.abs(g+h);return e/f}},science.stats.erf=function(a){var b=.254829592,c=-0.284496736,d=1.421413741,e=-1.453152027,f=1.061405429,g=.3275911,h=a<0?-1:1;a<0&&(h=-1,a=-a);var i=1/(1+g*a);return h*(1-((((f*i+e)*i+d)*i+c)*i+b)*i*Math.exp(-a*a))},science.stats.phi=function(a){return.5*(1+science.stats.erf(a/Math.SQRT2))},science.stats.kernel={uniform:function(a){return a<=1&&a>=-1?.5:0},triangular:function(a){return a<=1&&a>=-1?1-Math.abs(a):0},epanechnikov:function(a){return a<=1&&a>=-1?.75*(1-a*a):0},quartic:function(a){if(a<=1&&a>=-1){var b=1-a*a;return.9375*b*b}return 0},triweight:function(a){if(a<=1&&a>=-1){var b=1-a*a;return 35/32*b*b*b}return 0},gaussian:function(a){return 1/Math.sqrt(2*Math.PI)*Math.exp(-0.5*a*a)},cosine:function(a){return a<=1&&a>=-1?Math.PI/4*Math.cos(Math.PI/2*a):0}},science.stats.kde=function(){function d(d,e){var f=c.call(this,b);return d.map(function(c){var d=-1,e=0,g=b.length;while(++d<g)e+=a((c-b[d])/f);return[c,e/f/g]})}var a=science.stats.kernel.gaussian,b=[],c=science.stats.bandwidth.nrd;d.kernel=function(b){if(!arguments.length)return a;a=b;return d},d.sample=function(a){if(!arguments.length)return b;b=a;return d},d.bandwidth=function(a){if(!arguments.length)return c;c=science.functor(a);return d};return d},science.stats.kmeans=function(){function f(f){var g=f.length,h=[],i=[],j=1,l=0,m=b(e,f),n,o,p,q,r,s,t;while(j&&l<d){p=-1;while(++p<e)i[p]=0;o=-1;while(++o<g){q=f[o],s=Infinity,p=-1;while(++p<e)r=c.call(this,m[p],q),r<s&&(s=r,t=p);i[h[o]=t]++}n=[],o=-1;while(++o<g){q=h[o],r=n[q];if(r==null)n[q]=f[o].slice();else{p=-1;while(++p<r.length)r[p]+=f[o][p]}}p=-1;while(++p<e){q=n[p],r=1/i[p],o=-1;while(++o<q.length)q[o]*=r}j=0,p=-1;while(++p<e)if(!a(n[p],m[p])){j=1;break}m=n,l++}return{assignments:h,centroids:m}}var c=science.stats.distance.euclidean,d=1e3,e=1;f.k=function(a){if(!arguments.length)return e;e=a;return f},f.distance=function(a){if(!arguments.length)return c;c=a;return f};return f},science.stats.hcluster=function(){function d(d){var e=d.length,f=[],g=[],h=[],i=[],j,k,l,m,n,o,p,q;p=-1;while(++p<e){f[p]=0,h[p]=[],q=-1;while(++q<e)h[p][q]=p===q?Infinity:a(d[p],d[q]),h[p][f[p]]>h[p][q]&&(f[p]=q)}p=-1;while(++p<e)i[p]=[],i[p][0]={left:null,right:null,dist:0,centroid:d[p],size:1,depth:0},g[p]=1;for(n=0;n<e-1;n++){j=0;for(p=0;p<e;p++)h[p][f[p]]<h[j][f[j]]&&(j=p);k=f[j],l=i[j][0],m=i[k][0],newCluster={left:l,right:m,dist:h[j][k],centroid:c(l.size,l.centroid,m.size,m.centroid),size:l.size+m.size,depth:1+Math.max(l.depth,m.depth)},i[j].splice(0,0,newCluster),g[j]+=g[k];for(q=0;q<e;q++)switch(b){case"single":h[j][q]>h[k][q]&&(h[q][j]=h[j][q]=h[k][q]);break;case"complete":h[j][q]<h[k][q]&&(h[q][j]=h[j][q]=h[k][q]);break;case"average":h[q][j]=h[j][q]=(g[j]*h[j][q]+g[k]*h[k][q])/(g[j]+g[q])}h[j][j]=Infinity;for(p=0;p<e;p++)h[p][k]=h[k][p]=Infinity;for(q=0;q<e;q++)f[q]==k&&(f[q]=j),h[j][q]<h[j][f[j]]&&(f[j]=q);o=newCluster}return o}var a=science.stats.distance.euclidean,b="simple";d.distance=function(b){if(!arguments.length)return a;a=b;return d};return d},science.stats.iqr=function(a){var b=science.stats.quantiles(a,[.25,.75]);return b[1]-b[0]},science.stats.loess=function(){function h(h,i,j){var k=h.length,l;if(k!==i.length)throw{error:"Mismatched array lengths"};if(k==0)throw{error:"At least one point required."};if(arguments.length<3){j=[],l=-1;while(++l<k)j[l]=1}d(h),d(i),d(j),e(h);if(k==1)return[i[0]];if(k==2)return[i[0],i[1]];var m=Math.floor(a*k);if(m<2)throw{error:"Bandwidth too small."};var n=[],o=[],p=[];l=-1;while(++l<k)n[l]=0,o[l]=0,p[l]=1;var q=-1;while(++q<=b){var r=[0,m-1],s;l=-1;while(++l<k){s=h[l],l>0&&g(h,j,l,r);var t=r[0],u=r[1],v=h[l]-h[t]>h[u]-h[l]?t:u,w=0,x=0,y=0,z=0,A=0,B=Math.abs(1/(h[v]-s));for(var C=t;C<=u;++C){var D=h[C],E=i[C],F=C<l?s-D:D-s,G=f(F*B)*p[C]*j[C],H=D*G;w+=G,x+=H,y+=D*H,z+=E*G,A+=E*H}var I=x/w,J=z/w,K=A/w,L=y/w,M=Math.sqrt(Math.abs(L-I*I))<c?0:(K-I*J)/(L-I*I),N=J-M*I;n[l]=M*s+N,o[l]=Math.abs(i[l]-n[l])}if(q===b)break;var O=o.slice();O.sort();var P=O[Math.floor(k/2)];if(Math.abs(P)<c)break;var Q,G;l=-1;while(++l<k)Q=o[l]/(6*P),p[l]=Q>=1?0:(G=1-Q*Q)*G}return n}var a=.3,b=2,c=1e-12;h.bandwidth=function(b){if(!arguments.length)return b;a=b;return h},h.robustnessIterations=function(a){if(!arguments.length)return a;b=a;return h},h.accuracy=function(a){if(!arguments.length)return a;c=a;return h};return h},science.stats.mean=function(a){var b=a.length;if(b===0)return NaN;var c=0,d=-1;while(++d<b)c+=(a[d]-c)/(d+1);return c},science.stats.median=function(a){return science.stats.quantiles(a,[.5])[0]},science.stats.mode=function(a){a=a.slice().sort(science.ascending);var b,c=a.length,d=-1,e=d,f=null,g=0,h,i;while(++d<c)(i=a[d])!==f&&((h=d-e)>g&&(g=h,b=f),f=i,e=d);return b},science.stats.quantiles=function(a,b){a=a.slice().sort(science.ascending);var c=a.length-1;return b.map(function(b){if(b===0)return a[0];if(b===1)return a[c];var d=1+b*c,e=Math.floor(d),f=d-e,g=a[e-1];return f===0?g:g+f*(a[e]-g)})},science.stats.variance=function(a){var b=a.length;if(b<1)return NaN;if(b===1)return 0;var c=science.stats.mean(a),d=-1,e=0;while(++d<b){var f=a[d]-c;e+=f*f}return e/(b-1)}})()
@@ -1,24 +0,0 @@
1
- Copyright (c) 2009, John Resig
2
- All rights reserved.
3
-
4
- Redistribution and use in source and binary forms, with or without
5
- modification, are permitted provided that the following conditions are met:
6
- * Redistributions of source code must retain the above copyright
7
- notice, this list of conditions and the following disclaimer.
8
- * Redistributions in binary form must reproduce the above copyright
9
- notice, this list of conditions and the following disclaimer in the
10
- documentation and/or other materials provided with the distribution.
11
- * Neither the name of the <organization> nor the
12
- names of its contributors may be used to endorse or promote products
13
- derived from this software without specific prior written permission.
14
-
15
- THIS SOFTWARE IS PROVIDED BY John Resig ''AS IS'' AND ANY
16
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
- DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
19
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,1376 +0,0 @@
1
- /*!
2
- * Sizzle CSS Selector Engine
3
- * Copyright 2011, The Dojo Foundation
4
- * Released under the MIT, BSD, and GPL Licenses.
5
- * More information: http://sizzlejs.com/
6
- */
7
- (function(){
8
-
9
- var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
10
- done = 0,
11
- toString = Object.prototype.toString,
12
- hasDuplicate = false,
13
- baseHasDuplicate = true;
14
-
15
- // Here we check if the JavaScript engine is using some sort of
16
- // optimization where it does not always call our comparision
17
- // function. If that is the case, discard the hasDuplicate value.
18
- // Thus far that includes Google Chrome.
19
- [0, 0].sort(function() {
20
- baseHasDuplicate = false;
21
- return 0;
22
- });
23
-
24
- var Sizzle = function( selector, context, results, seed ) {
25
- results = results || [];
26
- context = context || document;
27
-
28
- var origContext = context;
29
-
30
- if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
31
- return [];
32
- }
33
-
34
- if ( !selector || typeof selector !== "string" ) {
35
- return results;
36
- }
37
-
38
- var m, set, checkSet, extra, ret, cur, pop, i,
39
- prune = true,
40
- contextXML = Sizzle.isXML( context ),
41
- parts = [],
42
- soFar = selector;
43
-
44
- // Reset the position of the chunker regexp (start from head)
45
- do {
46
- chunker.exec( "" );
47
- m = chunker.exec( soFar );
48
-
49
- if ( m ) {
50
- soFar = m[3];
51
-
52
- parts.push( m[1] );
53
-
54
- if ( m[2] ) {
55
- extra = m[3];
56
- break;
57
- }
58
- }
59
- } while ( m );
60
-
61
- if ( parts.length > 1 && origPOS.exec( selector ) ) {
62
-
63
- if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
64
- set = posProcess( parts[0] + parts[1], context );
65
-
66
- } else {
67
- set = Expr.relative[ parts[0] ] ?
68
- [ context ] :
69
- Sizzle( parts.shift(), context );
70
-
71
- while ( parts.length ) {
72
- selector = parts.shift();
73
-
74
- if ( Expr.relative[ selector ] ) {
75
- selector += parts.shift();
76
- }
77
-
78
- set = posProcess( selector, set );
79
- }
80
- }
81
-
82
- } else {
83
- // Take a shortcut and set the context if the root selector is an ID
84
- // (but not if it'll be faster if the inner selector is an ID)
85
- if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
86
- Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
87
-
88
- ret = Sizzle.find( parts.shift(), context, contextXML );
89
- context = ret.expr ?
90
- Sizzle.filter( ret.expr, ret.set )[0] :
91
- ret.set[0];
92
- }
93
-
94
- if ( context ) {
95
- ret = seed ?
96
- { expr: parts.pop(), set: makeArray(seed) } :
97
- Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
98
-
99
- set = ret.expr ?
100
- Sizzle.filter( ret.expr, ret.set ) :
101
- ret.set;
102
-
103
- if ( parts.length > 0 ) {
104
- checkSet = makeArray( set );
105
-
106
- } else {
107
- prune = false;
108
- }
109
-
110
- while ( parts.length ) {
111
- cur = parts.pop();
112
- pop = cur;
113
-
114
- if ( !Expr.relative[ cur ] ) {
115
- cur = "";
116
- } else {
117
- pop = parts.pop();
118
- }
119
-
120
- if ( pop == null ) {
121
- pop = context;
122
- }
123
-
124
- Expr.relative[ cur ]( checkSet, pop, contextXML );
125
- }
126
-
127
- } else {
128
- checkSet = parts = [];
129
- }
130
- }
131
-
132
- if ( !checkSet ) {
133
- checkSet = set;
134
- }
135
-
136
- if ( !checkSet ) {
137
- Sizzle.error( cur || selector );
138
- }
139
-
140
- if ( toString.call(checkSet) === "[object Array]" ) {
141
- if ( !prune ) {
142
- results.push.apply( results, checkSet );
143
-
144
- } else if ( context && context.nodeType === 1 ) {
145
- for ( i = 0; checkSet[i] != null; i++ ) {
146
- if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
147
- results.push( set[i] );
148
- }
149
- }
150
-
151
- } else {
152
- for ( i = 0; checkSet[i] != null; i++ ) {
153
- if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
154
- results.push( set[i] );
155
- }
156
- }
157
- }
158
-
159
- } else {
160
- makeArray( checkSet, results );
161
- }
162
-
163
- if ( extra ) {
164
- Sizzle( extra, origContext, results, seed );
165
- Sizzle.uniqueSort( results );
166
- }
167
-
168
- return results;
169
- };
170
-
171
- Sizzle.uniqueSort = function( results ) {
172
- if ( sortOrder ) {
173
- hasDuplicate = baseHasDuplicate;
174
- results.sort( sortOrder );
175
-
176
- if ( hasDuplicate ) {
177
- for ( var i = 1; i < results.length; i++ ) {
178
- if ( results[i] === results[ i - 1 ] ) {
179
- results.splice( i--, 1 );
180
- }
181
- }
182
- }
183
- }
184
-
185
- return results;
186
- };
187
-
188
- Sizzle.matches = function( expr, set ) {
189
- return Sizzle( expr, null, null, set );
190
- };
191
-
192
- Sizzle.matchesSelector = function( node, expr ) {
193
- return Sizzle( expr, null, null, [node] ).length > 0;
194
- };
195
-
196
- Sizzle.find = function( expr, context, isXML ) {
197
- var set;
198
-
199
- if ( !expr ) {
200
- return [];
201
- }
202
-
203
- for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
204
- var match,
205
- type = Expr.order[i];
206
-
207
- if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
208
- var left = match[1];
209
- match.splice( 1, 1 );
210
-
211
- if ( left.substr( left.length - 1 ) !== "\\" ) {
212
- match[1] = (match[1] || "").replace(/\\/g, "");
213
- set = Expr.find[ type ]( match, context, isXML );
214
-
215
- if ( set != null ) {
216
- expr = expr.replace( Expr.match[ type ], "" );
217
- break;
218
- }
219
- }
220
- }
221
- }
222
-
223
- if ( !set ) {
224
- set = typeof context.getElementsByTagName !== "undefined" ?
225
- context.getElementsByTagName( "*" ) :
226
- [];
227
- }
228
-
229
- return { set: set, expr: expr };
230
- };
231
-
232
- Sizzle.filter = function( expr, set, inplace, not ) {
233
- var match, anyFound,
234
- old = expr,
235
- result = [],
236
- curLoop = set,
237
- isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
238
-
239
- while ( expr && set.length ) {
240
- for ( var type in Expr.filter ) {
241
- if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
242
- var found, item,
243
- filter = Expr.filter[ type ],
244
- left = match[1];
245
-
246
- anyFound = false;
247
-
248
- match.splice(1,1);
249
-
250
- if ( left.substr( left.length - 1 ) === "\\" ) {
251
- continue;
252
- }
253
-
254
- if ( curLoop === result ) {
255
- result = [];
256
- }
257
-
258
- if ( Expr.preFilter[ type ] ) {
259
- match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
260
-
261
- if ( !match ) {
262
- anyFound = found = true;
263
-
264
- } else if ( match === true ) {
265
- continue;
266
- }
267
- }
268
-
269
- if ( match ) {
270
- for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
271
- if ( item ) {
272
- found = filter( item, match, i, curLoop );
273
- var pass = not ^ !!found;
274
-
275
- if ( inplace && found != null ) {
276
- if ( pass ) {
277
- anyFound = true;
278
-
279
- } else {
280
- curLoop[i] = false;
281
- }
282
-
283
- } else if ( pass ) {
284
- result.push( item );
285
- anyFound = true;
286
- }
287
- }
288
- }
289
- }
290
-
291
- if ( found !== undefined ) {
292
- if ( !inplace ) {
293
- curLoop = result;
294
- }
295
-
296
- expr = expr.replace( Expr.match[ type ], "" );
297
-
298
- if ( !anyFound ) {
299
- return [];
300
- }
301
-
302
- break;
303
- }
304
- }
305
- }
306
-
307
- // Improper expression
308
- if ( expr === old ) {
309
- if ( anyFound == null ) {
310
- Sizzle.error( expr );
311
-
312
- } else {
313
- break;
314
- }
315
- }
316
-
317
- old = expr;
318
- }
319
-
320
- return curLoop;
321
- };
322
-
323
- Sizzle.error = function( msg ) {
324
- throw "Syntax error, unrecognized expression: " + msg;
325
- };
326
-
327
- var Expr = Sizzle.selectors = {
328
- order: [ "ID", "NAME", "TAG" ],
329
-
330
- match: {
331
- ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
332
- CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
333
- NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
334
- ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
335
- TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
336
- CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
337
- POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
338
- PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
339
- },
340
-
341
- leftMatch: {},
342
-
343
- attrMap: {
344
- "class": "className",
345
- "for": "htmlFor"
346
- },
347
-
348
- attrHandle: {
349
- href: function( elem ) {
350
- return elem.getAttribute( "href" );
351
- }
352
- },
353
-
354
- relative: {
355
- "+": function(checkSet, part){
356
- var isPartStr = typeof part === "string",
357
- isTag = isPartStr && !/\W/.test( part ),
358
- isPartStrNotTag = isPartStr && !isTag;
359
-
360
- if ( isTag ) {
361
- part = part.toLowerCase();
362
- }
363
-
364
- for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
365
- if ( (elem = checkSet[i]) ) {
366
- while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
367
-
368
- checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
369
- elem || false :
370
- elem === part;
371
- }
372
- }
373
-
374
- if ( isPartStrNotTag ) {
375
- Sizzle.filter( part, checkSet, true );
376
- }
377
- },
378
-
379
- ">": function( checkSet, part ) {
380
- var elem,
381
- isPartStr = typeof part === "string",
382
- i = 0,
383
- l = checkSet.length;
384
-
385
- if ( isPartStr && !/\W/.test( part ) ) {
386
- part = part.toLowerCase();
387
-
388
- for ( ; i < l; i++ ) {
389
- elem = checkSet[i];
390
-
391
- if ( elem ) {
392
- var parent = elem.parentNode;
393
- checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
394
- }
395
- }
396
-
397
- } else {
398
- for ( ; i < l; i++ ) {
399
- elem = checkSet[i];
400
-
401
- if ( elem ) {
402
- checkSet[i] = isPartStr ?
403
- elem.parentNode :
404
- elem.parentNode === part;
405
- }
406
- }
407
-
408
- if ( isPartStr ) {
409
- Sizzle.filter( part, checkSet, true );
410
- }
411
- }
412
- },
413
-
414
- "": function(checkSet, part, isXML){
415
- var nodeCheck,
416
- doneName = done++,
417
- checkFn = dirCheck;
418
-
419
- if ( typeof part === "string" && !/\W/.test(part) ) {
420
- part = part.toLowerCase();
421
- nodeCheck = part;
422
- checkFn = dirNodeCheck;
423
- }
424
-
425
- checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
426
- },
427
-
428
- "~": function( checkSet, part, isXML ) {
429
- var nodeCheck,
430
- doneName = done++,
431
- checkFn = dirCheck;
432
-
433
- if ( typeof part === "string" && !/\W/.test( part ) ) {
434
- part = part.toLowerCase();
435
- nodeCheck = part;
436
- checkFn = dirNodeCheck;
437
- }
438
-
439
- checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
440
- }
441
- },
442
-
443
- find: {
444
- ID: function( match, context, isXML ) {
445
- if ( typeof context.getElementById !== "undefined" && !isXML ) {
446
- var m = context.getElementById(match[1]);
447
- // Check parentNode to catch when Blackberry 4.6 returns
448
- // nodes that are no longer in the document #6963
449
- return m && m.parentNode ? [m] : [];
450
- }
451
- },
452
-
453
- NAME: function( match, context ) {
454
- if ( typeof context.getElementsByName !== "undefined" ) {
455
- var ret = [],
456
- results = context.getElementsByName( match[1] );
457
-
458
- for ( var i = 0, l = results.length; i < l; i++ ) {
459
- if ( results[i].getAttribute("name") === match[1] ) {
460
- ret.push( results[i] );
461
- }
462
- }
463
-
464
- return ret.length === 0 ? null : ret;
465
- }
466
- },
467
-
468
- TAG: function( match, context ) {
469
- if ( typeof context.getElementsByTagName !== "undefined" ) {
470
- return context.getElementsByTagName( match[1] );
471
- }
472
- }
473
- },
474
- preFilter: {
475
- CLASS: function( match, curLoop, inplace, result, not, isXML ) {
476
- match = " " + match[1].replace(/\\/g, "") + " ";
477
-
478
- if ( isXML ) {
479
- return match;
480
- }
481
-
482
- for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
483
- if ( elem ) {
484
- if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
485
- if ( !inplace ) {
486
- result.push( elem );
487
- }
488
-
489
- } else if ( inplace ) {
490
- curLoop[i] = false;
491
- }
492
- }
493
- }
494
-
495
- return false;
496
- },
497
-
498
- ID: function( match ) {
499
- return match[1].replace(/\\/g, "");
500
- },
501
-
502
- TAG: function( match, curLoop ) {
503
- return match[1].toLowerCase();
504
- },
505
-
506
- CHILD: function( match ) {
507
- if ( match[1] === "nth" ) {
508
- if ( !match[2] ) {
509
- Sizzle.error( match[0] );
510
- }
511
-
512
- match[2] = match[2].replace(/^\+|\s*/g, '');
513
-
514
- // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
515
- var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
516
- match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
517
- !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
518
-
519
- // calculate the numbers (first)n+(last) including if they are negative
520
- match[2] = (test[1] + (test[2] || 1)) - 0;
521
- match[3] = test[3] - 0;
522
- }
523
- else if ( match[2] ) {
524
- Sizzle.error( match[0] );
525
- }
526
-
527
- // TODO: Move to normal caching system
528
- match[0] = done++;
529
-
530
- return match;
531
- },
532
-
533
- ATTR: function( match, curLoop, inplace, result, not, isXML ) {
534
- var name = match[1] = match[1].replace(/\\/g, "");
535
-
536
- if ( !isXML && Expr.attrMap[name] ) {
537
- match[1] = Expr.attrMap[name];
538
- }
539
-
540
- // Handle if an un-quoted value was used
541
- match[4] = ( match[4] || match[5] || "" ).replace(/\\/g, "");
542
-
543
- if ( match[2] === "~=" ) {
544
- match[4] = " " + match[4] + " ";
545
- }
546
-
547
- return match;
548
- },
549
-
550
- PSEUDO: function( match, curLoop, inplace, result, not ) {
551
- if ( match[1] === "not" ) {
552
- // If we're dealing with a complex expression, or a simple one
553
- if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
554
- match[3] = Sizzle(match[3], null, null, curLoop);
555
-
556
- } else {
557
- var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
558
-
559
- if ( !inplace ) {
560
- result.push.apply( result, ret );
561
- }
562
-
563
- return false;
564
- }
565
-
566
- } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
567
- return true;
568
- }
569
-
570
- return match;
571
- },
572
-
573
- POS: function( match ) {
574
- match.unshift( true );
575
-
576
- return match;
577
- }
578
- },
579
-
580
- filters: {
581
- enabled: function( elem ) {
582
- return elem.disabled === false && elem.type !== "hidden";
583
- },
584
-
585
- disabled: function( elem ) {
586
- return elem.disabled === true;
587
- },
588
-
589
- checked: function( elem ) {
590
- return elem.checked === true;
591
- },
592
-
593
- selected: function( elem ) {
594
- // Accessing this property makes selected-by-default
595
- // options in Safari work properly
596
- elem.parentNode.selectedIndex;
597
-
598
- return elem.selected === true;
599
- },
600
-
601
- parent: function( elem ) {
602
- return !!elem.firstChild;
603
- },
604
-
605
- empty: function( elem ) {
606
- return !elem.firstChild;
607
- },
608
-
609
- has: function( elem, i, match ) {
610
- return !!Sizzle( match[3], elem ).length;
611
- },
612
-
613
- header: function( elem ) {
614
- return (/h\d/i).test( elem.nodeName );
615
- },
616
-
617
- text: function( elem ) {
618
- return "text" === elem.type;
619
- },
620
- radio: function( elem ) {
621
- return "radio" === elem.type;
622
- },
623
-
624
- checkbox: function( elem ) {
625
- return "checkbox" === elem.type;
626
- },
627
-
628
- file: function( elem ) {
629
- return "file" === elem.type;
630
- },
631
- password: function( elem ) {
632
- return "password" === elem.type;
633
- },
634
-
635
- submit: function( elem ) {
636
- return "submit" === elem.type;
637
- },
638
-
639
- image: function( elem ) {
640
- return "image" === elem.type;
641
- },
642
-
643
- reset: function( elem ) {
644
- return "reset" === elem.type;
645
- },
646
-
647
- button: function( elem ) {
648
- return "button" === elem.type || elem.nodeName.toLowerCase() === "button";
649
- },
650
-
651
- input: function( elem ) {
652
- return (/input|select|textarea|button/i).test( elem.nodeName );
653
- }
654
- },
655
- setFilters: {
656
- first: function( elem, i ) {
657
- return i === 0;
658
- },
659
-
660
- last: function( elem, i, match, array ) {
661
- return i === array.length - 1;
662
- },
663
-
664
- even: function( elem, i ) {
665
- return i % 2 === 0;
666
- },
667
-
668
- odd: function( elem, i ) {
669
- return i % 2 === 1;
670
- },
671
-
672
- lt: function( elem, i, match ) {
673
- return i < match[3] - 0;
674
- },
675
-
676
- gt: function( elem, i, match ) {
677
- return i > match[3] - 0;
678
- },
679
-
680
- nth: function( elem, i, match ) {
681
- return match[3] - 0 === i;
682
- },
683
-
684
- eq: function( elem, i, match ) {
685
- return match[3] - 0 === i;
686
- }
687
- },
688
- filter: {
689
- PSEUDO: function( elem, match, i, array ) {
690
- var name = match[1],
691
- filter = Expr.filters[ name ];
692
-
693
- if ( filter ) {
694
- return filter( elem, i, match, array );
695
-
696
- } else if ( name === "contains" ) {
697
- return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0;
698
-
699
- } else if ( name === "not" ) {
700
- var not = match[3];
701
-
702
- for ( var j = 0, l = not.length; j < l; j++ ) {
703
- if ( not[j] === elem ) {
704
- return false;
705
- }
706
- }
707
-
708
- return true;
709
-
710
- } else {
711
- Sizzle.error( name );
712
- }
713
- },
714
-
715
- CHILD: function( elem, match ) {
716
- var type = match[1],
717
- node = elem;
718
-
719
- switch ( type ) {
720
- case "only":
721
- case "first":
722
- while ( (node = node.previousSibling) ) {
723
- if ( node.nodeType === 1 ) {
724
- return false;
725
- }
726
- }
727
-
728
- if ( type === "first" ) {
729
- return true;
730
- }
731
-
732
- node = elem;
733
-
734
- case "last":
735
- while ( (node = node.nextSibling) ) {
736
- if ( node.nodeType === 1 ) {
737
- return false;
738
- }
739
- }
740
-
741
- return true;
742
-
743
- case "nth":
744
- var first = match[2],
745
- last = match[3];
746
-
747
- if ( first === 1 && last === 0 ) {
748
- return true;
749
- }
750
-
751
- var doneName = match[0],
752
- parent = elem.parentNode;
753
-
754
- if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
755
- var count = 0;
756
-
757
- for ( node = parent.firstChild; node; node = node.nextSibling ) {
758
- if ( node.nodeType === 1 ) {
759
- node.nodeIndex = ++count;
760
- }
761
- }
762
-
763
- parent.sizcache = doneName;
764
- }
765
-
766
- var diff = elem.nodeIndex - last;
767
-
768
- if ( first === 0 ) {
769
- return diff === 0;
770
-
771
- } else {
772
- return ( diff % first === 0 && diff / first >= 0 );
773
- }
774
- }
775
- },
776
-
777
- ID: function( elem, match ) {
778
- return elem.nodeType === 1 && elem.getAttribute("id") === match;
779
- },
780
-
781
- TAG: function( elem, match ) {
782
- return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
783
- },
784
-
785
- CLASS: function( elem, match ) {
786
- return (" " + (elem.className || elem.getAttribute("class")) + " ")
787
- .indexOf( match ) > -1;
788
- },
789
-
790
- ATTR: function( elem, match ) {
791
- var name = match[1],
792
- result = Expr.attrHandle[ name ] ?
793
- Expr.attrHandle[ name ]( elem ) :
794
- elem[ name ] != null ?
795
- elem[ name ] :
796
- elem.getAttribute( name ),
797
- value = result + "",
798
- type = match[2],
799
- check = match[4];
800
-
801
- return result == null ?
802
- type === "!=" :
803
- type === "=" ?
804
- value === check :
805
- type === "*=" ?
806
- value.indexOf(check) >= 0 :
807
- type === "~=" ?
808
- (" " + value + " ").indexOf(check) >= 0 :
809
- !check ?
810
- value && result !== false :
811
- type === "!=" ?
812
- value !== check :
813
- type === "^=" ?
814
- value.indexOf(check) === 0 :
815
- type === "$=" ?
816
- value.substr(value.length - check.length) === check :
817
- type === "|=" ?
818
- value === check || value.substr(0, check.length + 1) === check + "-" :
819
- false;
820
- },
821
-
822
- POS: function( elem, match, i, array ) {
823
- var name = match[2],
824
- filter = Expr.setFilters[ name ];
825
-
826
- if ( filter ) {
827
- return filter( elem, i, match, array );
828
- }
829
- }
830
- }
831
- };
832
-
833
- var origPOS = Expr.match.POS,
834
- fescape = function(all, num){
835
- return "\\" + (num - 0 + 1);
836
- };
837
-
838
- for ( var type in Expr.match ) {
839
- Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
840
- Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
841
- }
842
-
843
- var makeArray = function( array, results ) {
844
- array = Array.prototype.slice.call( array, 0 );
845
-
846
- if ( results ) {
847
- results.push.apply( results, array );
848
- return results;
849
- }
850
-
851
- return array;
852
- };
853
-
854
- // Perform a simple check to determine if the browser is capable of
855
- // converting a NodeList to an array using builtin methods.
856
- // Also verifies that the returned array holds DOM nodes
857
- // (which is not the case in the Blackberry browser)
858
- try {
859
- Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
860
-
861
- // Provide a fallback method if it does not work
862
- } catch( e ) {
863
- makeArray = function( array, results ) {
864
- var i = 0,
865
- ret = results || [];
866
-
867
- if ( toString.call(array) === "[object Array]" ) {
868
- Array.prototype.push.apply( ret, array );
869
-
870
- } else {
871
- if ( typeof array.length === "number" ) {
872
- for ( var l = array.length; i < l; i++ ) {
873
- ret.push( array[i] );
874
- }
875
-
876
- } else {
877
- for ( ; array[i]; i++ ) {
878
- ret.push( array[i] );
879
- }
880
- }
881
- }
882
-
883
- return ret;
884
- };
885
- }
886
-
887
- var sortOrder, siblingCheck;
888
-
889
- if ( document.documentElement.compareDocumentPosition ) {
890
- sortOrder = function( a, b ) {
891
- if ( a === b ) {
892
- hasDuplicate = true;
893
- return 0;
894
- }
895
-
896
- if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
897
- return a.compareDocumentPosition ? -1 : 1;
898
- }
899
-
900
- return a.compareDocumentPosition(b) & 4 ? -1 : 1;
901
- };
902
-
903
- } else {
904
- sortOrder = function( a, b ) {
905
- var al, bl,
906
- ap = [],
907
- bp = [],
908
- aup = a.parentNode,
909
- bup = b.parentNode,
910
- cur = aup;
911
-
912
- // The nodes are identical, we can exit early
913
- if ( a === b ) {
914
- hasDuplicate = true;
915
- return 0;
916
-
917
- // If the nodes are siblings (or identical) we can do a quick check
918
- } else if ( aup === bup ) {
919
- return siblingCheck( a, b );
920
-
921
- // If no parents were found then the nodes are disconnected
922
- } else if ( !aup ) {
923
- return -1;
924
-
925
- } else if ( !bup ) {
926
- return 1;
927
- }
928
-
929
- // Otherwise they're somewhere else in the tree so we need
930
- // to build up a full list of the parentNodes for comparison
931
- while ( cur ) {
932
- ap.unshift( cur );
933
- cur = cur.parentNode;
934
- }
935
-
936
- cur = bup;
937
-
938
- while ( cur ) {
939
- bp.unshift( cur );
940
- cur = cur.parentNode;
941
- }
942
-
943
- al = ap.length;
944
- bl = bp.length;
945
-
946
- // Start walking down the tree looking for a discrepancy
947
- for ( var i = 0; i < al && i < bl; i++ ) {
948
- if ( ap[i] !== bp[i] ) {
949
- return siblingCheck( ap[i], bp[i] );
950
- }
951
- }
952
-
953
- // We ended someplace up the tree so do a sibling check
954
- return i === al ?
955
- siblingCheck( a, bp[i], -1 ) :
956
- siblingCheck( ap[i], b, 1 );
957
- };
958
-
959
- siblingCheck = function( a, b, ret ) {
960
- if ( a === b ) {
961
- return ret;
962
- }
963
-
964
- var cur = a.nextSibling;
965
-
966
- while ( cur ) {
967
- if ( cur === b ) {
968
- return -1;
969
- }
970
-
971
- cur = cur.nextSibling;
972
- }
973
-
974
- return 1;
975
- };
976
- }
977
-
978
- // Utility function for retreiving the text value of an array of DOM nodes
979
- Sizzle.getText = function( elems ) {
980
- var ret = "", elem;
981
-
982
- for ( var i = 0; elems[i]; i++ ) {
983
- elem = elems[i];
984
-
985
- // Get the text from text nodes and CDATA nodes
986
- if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
987
- ret += elem.nodeValue;
988
-
989
- // Traverse everything else, except comment nodes
990
- } else if ( elem.nodeType !== 8 ) {
991
- ret += Sizzle.getText( elem.childNodes );
992
- }
993
- }
994
-
995
- return ret;
996
- };
997
-
998
- // Check to see if the browser returns elements by name when
999
- // querying by getElementById (and provide a workaround)
1000
- (function(){
1001
- // We're going to inject a fake input element with a specified name
1002
- var form = document.createElement("div"),
1003
- id = "script" + (new Date()).getTime(),
1004
- root = document.documentElement;
1005
-
1006
- form.innerHTML = "<a name='" + id + "'/>";
1007
-
1008
- // Inject it into the root element, check its status, and remove it quickly
1009
- root.insertBefore( form, root.firstChild );
1010
-
1011
- // The workaround has to do additional checks after a getElementById
1012
- // Which slows things down for other browsers (hence the branching)
1013
- if ( document.getElementById( id ) ) {
1014
- Expr.find.ID = function( match, context, isXML ) {
1015
- if ( typeof context.getElementById !== "undefined" && !isXML ) {
1016
- var m = context.getElementById(match[1]);
1017
-
1018
- return m ?
1019
- m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
1020
- [m] :
1021
- undefined :
1022
- [];
1023
- }
1024
- };
1025
-
1026
- Expr.filter.ID = function( elem, match ) {
1027
- var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
1028
-
1029
- return elem.nodeType === 1 && node && node.nodeValue === match;
1030
- };
1031
- }
1032
-
1033
- root.removeChild( form );
1034
-
1035
- // release memory in IE
1036
- root = form = null;
1037
- })();
1038
-
1039
- (function(){
1040
- // Check to see if the browser returns only elements
1041
- // when doing getElementsByTagName("*")
1042
-
1043
- // Create a fake element
1044
- var div = document.createElement("div");
1045
- div.appendChild( document.createComment("") );
1046
-
1047
- // Make sure no comments are found
1048
- if ( div.getElementsByTagName("*").length > 0 ) {
1049
- Expr.find.TAG = function( match, context ) {
1050
- var results = context.getElementsByTagName( match[1] );
1051
-
1052
- // Filter out possible comments
1053
- if ( match[1] === "*" ) {
1054
- var tmp = [];
1055
-
1056
- for ( var i = 0; results[i]; i++ ) {
1057
- if ( results[i].nodeType === 1 ) {
1058
- tmp.push( results[i] );
1059
- }
1060
- }
1061
-
1062
- results = tmp;
1063
- }
1064
-
1065
- return results;
1066
- };
1067
- }
1068
-
1069
- // Check to see if an attribute returns normalized href attributes
1070
- div.innerHTML = "<a href='#'></a>";
1071
-
1072
- if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
1073
- div.firstChild.getAttribute("href") !== "#" ) {
1074
-
1075
- Expr.attrHandle.href = function( elem ) {
1076
- return elem.getAttribute( "href", 2 );
1077
- };
1078
- }
1079
-
1080
- // release memory in IE
1081
- div = null;
1082
- })();
1083
-
1084
- if ( document.querySelectorAll ) {
1085
- (function(){
1086
- var oldSizzle = Sizzle,
1087
- div = document.createElement("div"),
1088
- id = "__sizzle__";
1089
-
1090
- div.innerHTML = "<p class='TEST'></p>";
1091
-
1092
- // Safari can't handle uppercase or unicode characters when
1093
- // in quirks mode.
1094
- if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
1095
- return;
1096
- }
1097
-
1098
- Sizzle = function( query, context, extra, seed ) {
1099
- context = context || document;
1100
-
1101
- // Only use querySelectorAll on non-XML documents
1102
- // (ID selectors don't work in non-HTML documents)
1103
- if ( !seed && !Sizzle.isXML(context) ) {
1104
- // See if we find a selector to speed up
1105
- var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
1106
-
1107
- if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
1108
- // Speed-up: Sizzle("TAG")
1109
- if ( match[1] ) {
1110
- return makeArray( context.getElementsByTagName( query ), extra );
1111
-
1112
- // Speed-up: Sizzle(".CLASS")
1113
- } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
1114
- return makeArray( context.getElementsByClassName( match[2] ), extra );
1115
- }
1116
- }
1117
-
1118
- if ( context.nodeType === 9 ) {
1119
- // Speed-up: Sizzle("body")
1120
- // The body element only exists once, optimize finding it
1121
- if ( query === "body" && context.body ) {
1122
- return makeArray( [ context.body ], extra );
1123
-
1124
- // Speed-up: Sizzle("#ID")
1125
- } else if ( match && match[3] ) {
1126
- var elem = context.getElementById( match[3] );
1127
-
1128
- // Check parentNode to catch when Blackberry 4.6 returns
1129
- // nodes that are no longer in the document #6963
1130
- if ( elem && elem.parentNode ) {
1131
- // Handle the case where IE and Opera return items
1132
- // by name instead of ID
1133
- if ( elem.id === match[3] ) {
1134
- return makeArray( [ elem ], extra );
1135
- }
1136
-
1137
- } else {
1138
- return makeArray( [], extra );
1139
- }
1140
- }
1141
-
1142
- try {
1143
- return makeArray( context.querySelectorAll(query), extra );
1144
- } catch(qsaError) {}
1145
-
1146
- // qSA works strangely on Element-rooted queries
1147
- // We can work around this by specifying an extra ID on the root
1148
- // and working up from there (Thanks to Andrew Dupont for the technique)
1149
- // IE 8 doesn't work on object elements
1150
- } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
1151
- var old = context.getAttribute( "id" ),
1152
- nid = old || id,
1153
- hasParent = context.parentNode,
1154
- relativeHierarchySelector = /^\s*[+~]/.test( query );
1155
-
1156
- if ( !old ) {
1157
- context.setAttribute( "id", nid );
1158
- } else {
1159
- nid = nid.replace( /'/g, "\\$&" );
1160
- }
1161
- if ( relativeHierarchySelector && hasParent ) {
1162
- context = context.parentNode;
1163
- }
1164
-
1165
- try {
1166
- if ( !relativeHierarchySelector || hasParent ) {
1167
- return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
1168
- }
1169
-
1170
- } catch(pseudoError) {
1171
- } finally {
1172
- if ( !old ) {
1173
- context.removeAttribute( "id" );
1174
- }
1175
- }
1176
- }
1177
- }
1178
-
1179
- return oldSizzle(query, context, extra, seed);
1180
- };
1181
-
1182
- for ( var prop in oldSizzle ) {
1183
- Sizzle[ prop ] = oldSizzle[ prop ];
1184
- }
1185
-
1186
- // release memory in IE
1187
- div = null;
1188
- })();
1189
- }
1190
-
1191
- (function(){
1192
- var html = document.documentElement,
1193
- matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector,
1194
- pseudoWorks = false;
1195
-
1196
- try {
1197
- // This should fail with an exception
1198
- // Gecko does not error, returns false instead
1199
- matches.call( document.documentElement, "[test!='']:sizzle" );
1200
-
1201
- } catch( pseudoError ) {
1202
- pseudoWorks = true;
1203
- }
1204
-
1205
- if ( matches ) {
1206
- Sizzle.matchesSelector = function( node, expr ) {
1207
- // Make sure that attribute selectors are quoted
1208
- expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
1209
-
1210
- if ( !Sizzle.isXML( node ) ) {
1211
- try {
1212
- if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
1213
- return matches.call( node, expr );
1214
- }
1215
- } catch(e) {}
1216
- }
1217
-
1218
- return Sizzle(expr, null, null, [node]).length > 0;
1219
- };
1220
- }
1221
- })();
1222
-
1223
- (function(){
1224
- var div = document.createElement("div");
1225
-
1226
- div.innerHTML = "<div class='test e'></div><div class='test'></div>";
1227
-
1228
- // Opera can't find a second classname (in 9.6)
1229
- // Also, make sure that getElementsByClassName actually exists
1230
- if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
1231
- return;
1232
- }
1233
-
1234
- // Safari caches class attributes, doesn't catch changes (in 3.2)
1235
- div.lastChild.className = "e";
1236
-
1237
- if ( div.getElementsByClassName("e").length === 1 ) {
1238
- return;
1239
- }
1240
-
1241
- Expr.order.splice(1, 0, "CLASS");
1242
- Expr.find.CLASS = function( match, context, isXML ) {
1243
- if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
1244
- return context.getElementsByClassName(match[1]);
1245
- }
1246
- };
1247
-
1248
- // release memory in IE
1249
- div = null;
1250
- })();
1251
-
1252
- function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
1253
- for ( var i = 0, l = checkSet.length; i < l; i++ ) {
1254
- var elem = checkSet[i];
1255
-
1256
- if ( elem ) {
1257
- var match = false;
1258
-
1259
- elem = elem[dir];
1260
-
1261
- while ( elem ) {
1262
- if ( elem.sizcache === doneName ) {
1263
- match = checkSet[elem.sizset];
1264
- break;
1265
- }
1266
-
1267
- if ( elem.nodeType === 1 && !isXML ){
1268
- elem.sizcache = doneName;
1269
- elem.sizset = i;
1270
- }
1271
-
1272
- if ( elem.nodeName.toLowerCase() === cur ) {
1273
- match = elem;
1274
- break;
1275
- }
1276
-
1277
- elem = elem[dir];
1278
- }
1279
-
1280
- checkSet[i] = match;
1281
- }
1282
- }
1283
- }
1284
-
1285
- function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
1286
- for ( var i = 0, l = checkSet.length; i < l; i++ ) {
1287
- var elem = checkSet[i];
1288
-
1289
- if ( elem ) {
1290
- var match = false;
1291
-
1292
- elem = elem[dir];
1293
-
1294
- while ( elem ) {
1295
- if ( elem.sizcache === doneName ) {
1296
- match = checkSet[elem.sizset];
1297
- break;
1298
- }
1299
-
1300
- if ( elem.nodeType === 1 ) {
1301
- if ( !isXML ) {
1302
- elem.sizcache = doneName;
1303
- elem.sizset = i;
1304
- }
1305
-
1306
- if ( typeof cur !== "string" ) {
1307
- if ( elem === cur ) {
1308
- match = true;
1309
- break;
1310
- }
1311
-
1312
- } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
1313
- match = elem;
1314
- break;
1315
- }
1316
- }
1317
-
1318
- elem = elem[dir];
1319
- }
1320
-
1321
- checkSet[i] = match;
1322
- }
1323
- }
1324
- }
1325
-
1326
- if ( document.documentElement.contains ) {
1327
- Sizzle.contains = function( a, b ) {
1328
- return a !== b && (a.contains ? a.contains(b) : true);
1329
- };
1330
-
1331
- } else if ( document.documentElement.compareDocumentPosition ) {
1332
- Sizzle.contains = function( a, b ) {
1333
- return !!(a.compareDocumentPosition(b) & 16);
1334
- };
1335
-
1336
- } else {
1337
- Sizzle.contains = function() {
1338
- return false;
1339
- };
1340
- }
1341
-
1342
- Sizzle.isXML = function( elem ) {
1343
- // documentElement is verified for cases where it doesn't yet exist
1344
- // (such as loading iframes in IE - #4833)
1345
- var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
1346
-
1347
- return documentElement ? documentElement.nodeName !== "HTML" : false;
1348
- };
1349
-
1350
- var posProcess = function( selector, context ) {
1351
- var match,
1352
- tmpSet = [],
1353
- later = "",
1354
- root = context.nodeType ? [context] : context;
1355
-
1356
- // Position selectors must be done after the filter
1357
- // And so must :not(positional) so we move all PSEUDOs to the end
1358
- while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
1359
- later += match[0];
1360
- selector = selector.replace( Expr.match.PSEUDO, "" );
1361
- }
1362
-
1363
- selector = Expr.relative[selector] ? selector + "*" : selector;
1364
-
1365
- for ( var i = 0, l = root.length; i < l; i++ ) {
1366
- Sizzle( selector, root[i], tmpSet );
1367
- }
1368
-
1369
- return Sizzle.filter( later, tmpSet );
1370
- };
1371
-
1372
- // EXPOSE
1373
-
1374
- window.Sizzle = Sizzle;
1375
-
1376
- })();