postrunner 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1322) hide show
  1. checksums.yaml +4 -4
  2. data/lib/postrunner/ActivityView.rb +26 -0
  3. data/lib/postrunner/version.rb +1 -1
  4. data/misc/flot/API.md +1498 -0
  5. data/misc/flot/CONTRIBUTING.md +98 -0
  6. data/misc/flot/FAQ.md +75 -0
  7. data/misc/flot/LICENSE.txt +22 -0
  8. data/misc/flot/Makefile +12 -0
  9. data/misc/flot/NEWS.md +1026 -0
  10. data/misc/flot/PLUGINS.md +143 -0
  11. data/misc/flot/README.md +110 -0
  12. data/misc/flot/examples/.DS_Store +0 -0
  13. data/misc/flot/examples/ajax/data-eu-gdp-growth-1.json +4 -0
  14. data/misc/flot/examples/ajax/data-eu-gdp-growth-2.json +4 -0
  15. data/misc/flot/examples/ajax/data-eu-gdp-growth-3.json +4 -0
  16. data/misc/flot/examples/ajax/data-eu-gdp-growth-4.json +4 -0
  17. data/misc/flot/examples/ajax/data-eu-gdp-growth-5.json +4 -0
  18. data/misc/flot/examples/ajax/data-eu-gdp-growth.json +4 -0
  19. data/misc/flot/examples/ajax/data-japan-gdp-growth.json +4 -0
  20. data/misc/flot/examples/ajax/data-usa-gdp-growth.json +4 -0
  21. data/misc/flot/examples/ajax/index.html +173 -0
  22. data/misc/flot/examples/annotating/index.html +87 -0
  23. data/misc/flot/examples/axes-interacting/index.html +97 -0
  24. data/misc/flot/examples/axes-multiple/index.html +77 -0
  25. data/misc/flot/examples/axes-time/index.html +137 -0
  26. data/misc/flot/examples/axes-time-zones/date.js +893 -0
  27. data/misc/flot/examples/axes-time-zones/index.html +114 -0
  28. data/misc/flot/examples/axes-time-zones/tz/africa +1181 -0
  29. data/misc/flot/examples/axes-time-zones/tz/antarctica +413 -0
  30. data/misc/flot/examples/axes-time-zones/tz/asia +2717 -0
  31. data/misc/flot/examples/axes-time-zones/tz/australasia +1719 -0
  32. data/misc/flot/examples/axes-time-zones/tz/backward +117 -0
  33. data/misc/flot/examples/axes-time-zones/tz/etcetera +81 -0
  34. data/misc/flot/examples/axes-time-zones/tz/europe +2856 -0
  35. data/misc/flot/examples/axes-time-zones/tz/factory +10 -0
  36. data/misc/flot/examples/axes-time-zones/tz/iso3166.tab +276 -0
  37. data/misc/flot/examples/axes-time-zones/tz/leapseconds +100 -0
  38. data/misc/flot/examples/axes-time-zones/tz/northamerica +3235 -0
  39. data/misc/flot/examples/axes-time-zones/tz/pacificnew +28 -0
  40. data/misc/flot/examples/axes-time-zones/tz/solar87 +390 -0
  41. data/misc/flot/examples/axes-time-zones/tz/solar88 +390 -0
  42. data/misc/flot/examples/axes-time-zones/tz/solar89 +395 -0
  43. data/misc/flot/examples/axes-time-zones/tz/southamerica +1711 -0
  44. data/misc/flot/examples/axes-time-zones/tz/systemv +38 -0
  45. data/misc/flot/examples/axes-time-zones/tz/yearistype.sh +38 -0
  46. data/misc/flot/examples/axes-time-zones/tz/zone.tab +441 -0
  47. data/misc/flot/examples/background.png +0 -0
  48. data/misc/flot/examples/basic-options/index.html +91 -0
  49. data/misc/flot/examples/basic-usage/index.html +57 -0
  50. data/misc/flot/examples/canvas/index.html +75 -0
  51. data/misc/flot/examples/categories/index.html +64 -0
  52. data/misc/flot/examples/examples.css +97 -0
  53. data/misc/flot/examples/image/hs-2004-27-a-large-web.jpg +0 -0
  54. data/misc/flot/examples/image/index.html +69 -0
  55. data/misc/flot/examples/index.html +80 -0
  56. data/misc/flot/examples/interacting/index.html +118 -0
  57. data/misc/flot/examples/navigate/arrow-down.gif +0 -0
  58. data/misc/flot/examples/navigate/arrow-left.gif +0 -0
  59. data/misc/flot/examples/navigate/arrow-right.gif +0 -0
  60. data/misc/flot/examples/navigate/arrow-up.gif +0 -0
  61. data/misc/flot/examples/navigate/index.html +153 -0
  62. data/misc/flot/examples/percentiles/index.html +79 -0
  63. data/misc/flot/examples/realtime/index.html +122 -0
  64. data/misc/flot/examples/resize/index.html +76 -0
  65. data/misc/flot/examples/selection/index.html +152 -0
  66. data/misc/flot/examples/series-errorbars/index.html +150 -0
  67. data/misc/flot/examples/series-pie/index.html +818 -0
  68. data/misc/flot/examples/series-toggle/index.html +121 -0
  69. data/misc/flot/examples/series-types/index.html +90 -0
  70. data/misc/flot/examples/shared/jquery-ui/jquery-ui.min.css +6 -0
  71. data/misc/flot/examples/shared/jquery-ui/jquery-ui.min.js +6 -0
  72. data/misc/flot/examples/stacking/index.html +107 -0
  73. data/misc/flot/examples/symbols/index.html +76 -0
  74. data/misc/flot/examples/threshold/index.html +76 -0
  75. data/misc/flot/examples/tracking/index.html +135 -0
  76. data/misc/flot/examples/visitors/index.html +147 -0
  77. data/misc/flot/examples/zooming/index.html +144 -0
  78. data/misc/flot/excanvas.js +1428 -0
  79. data/misc/flot/excanvas.min.js +1 -0
  80. data/misc/flot/jquery.colorhelpers.js +180 -0
  81. data/misc/flot/jquery.colorhelpers.min.js +1 -0
  82. data/misc/flot/jquery.flot.canvas.js +345 -0
  83. data/misc/flot/jquery.flot.canvas.min.js +7 -0
  84. data/misc/flot/jquery.flot.categories.js +190 -0
  85. data/misc/flot/jquery.flot.categories.min.js +7 -0
  86. data/misc/flot/jquery.flot.crosshair.js +176 -0
  87. data/misc/flot/jquery.flot.crosshair.min.js +7 -0
  88. data/misc/flot/jquery.flot.errorbars.js +353 -0
  89. data/misc/flot/jquery.flot.errorbars.min.js +7 -0
  90. data/misc/flot/jquery.flot.fillbetween.js +226 -0
  91. data/misc/flot/jquery.flot.fillbetween.min.js +7 -0
  92. data/misc/flot/jquery.flot.image.js +241 -0
  93. data/misc/flot/jquery.flot.image.min.js +7 -0
  94. data/misc/flot/jquery.flot.js +3168 -0
  95. data/misc/flot/jquery.flot.min.js +8 -0
  96. data/misc/flot/jquery.flot.navigate.js +346 -0
  97. data/misc/flot/jquery.flot.navigate.min.js +7 -0
  98. data/misc/flot/jquery.flot.pie.js +820 -0
  99. data/misc/flot/jquery.flot.pie.min.js +7 -0
  100. data/misc/flot/jquery.flot.resize.js +59 -0
  101. data/misc/flot/jquery.flot.resize.min.js +7 -0
  102. data/misc/flot/jquery.flot.selection.js +360 -0
  103. data/misc/flot/jquery.flot.selection.min.js +7 -0
  104. data/misc/flot/jquery.flot.stack.js +188 -0
  105. data/misc/flot/jquery.flot.stack.min.js +7 -0
  106. data/misc/flot/jquery.flot.symbol.js +71 -0
  107. data/misc/flot/jquery.flot.symbol.min.js +7 -0
  108. data/misc/flot/jquery.flot.threshold.js +142 -0
  109. data/misc/flot/jquery.flot.threshold.min.js +7 -0
  110. data/misc/flot/jquery.flot.time.js +432 -0
  111. data/misc/flot/jquery.flot.time.min.js +7 -0
  112. data/misc/flot/jquery.js +9472 -0
  113. data/misc/flot/jquery.min.js +5 -0
  114. data/misc/jquery/jquery-2.1.1.min.js +4 -0
  115. data/misc/openlayers/.gitignore +7 -0
  116. data/misc/openlayers/OpenLayers.debug.js +85622 -0
  117. data/misc/openlayers/OpenLayers.js +1443 -0
  118. data/misc/openlayers/OpenLayers.light.debug.js +37230 -0
  119. data/misc/openlayers/OpenLayers.light.js +592 -0
  120. data/misc/openlayers/OpenLayers.mobile.debug.js +41831 -0
  121. data/misc/openlayers/OpenLayers.mobile.js +681 -0
  122. data/misc/openlayers/apidoc_config/Languages.txt +113 -0
  123. data/misc/openlayers/apidoc_config/Menu.txt +520 -0
  124. data/misc/openlayers/apidoc_config/OL.css +20 -0
  125. data/misc/openlayers/apidoc_config/Topics.txt +105 -0
  126. data/misc/openlayers/art/arrows.svg +127 -0
  127. data/misc/openlayers/art/layer-switcher-maximize.svg +128 -0
  128. data/misc/openlayers/art/layer-switcher-minimize.svg +142 -0
  129. data/misc/openlayers/art/marker.svg +25 -0
  130. data/misc/openlayers/art/measuring-stick-off.svg +36 -0
  131. data/misc/openlayers/art/measuring-stick-on.svg +36 -0
  132. data/misc/openlayers/art/panning-hand-off.svg +44 -0
  133. data/misc/openlayers/art/panning-hand-on.svg +44 -0
  134. data/misc/openlayers/art/slider.svg +71 -0
  135. data/misc/openlayers/art/zoom-world.svg +193 -0
  136. data/misc/openlayers/art/zoombar.svg +73 -0
  137. data/misc/openlayers/authors.txt +56 -0
  138. data/misc/openlayers/build/README.txt +46 -0
  139. data/misc/openlayers/build/build.py +158 -0
  140. data/misc/openlayers/build/buildUncompressed.py +25 -0
  141. data/misc/openlayers/build/closure-compiler/Externs.js +50 -0
  142. data/misc/openlayers/build/full.cfg +14 -0
  143. data/misc/openlayers/build/license.txt +57 -0
  144. data/misc/openlayers/build/light.cfg +32 -0
  145. data/misc/openlayers/build/lite.cfg +17 -0
  146. data/misc/openlayers/build/mobile.cfg +36 -0
  147. data/misc/openlayers/build/tests.cfg +11 -0
  148. data/misc/openlayers/doc_config/Data/ClassHierarchy.nd +0 -0
  149. data/misc/openlayers/doc_config/Data/ConfigFileInfo.nd +0 -0
  150. data/misc/openlayers/doc_config/Data/FileInfo.nd +323 -0
  151. data/misc/openlayers/doc_config/Data/ImageFileInfo.nd +0 -0
  152. data/misc/openlayers/doc_config/Data/ImageReferenceTable.nd +0 -0
  153. data/misc/openlayers/doc_config/Data/IndexInfo.nd +0 -0
  154. data/misc/openlayers/doc_config/Data/PreviousMenuState.nd +0 -0
  155. data/misc/openlayers/doc_config/Data/PreviousSettings.nd +0 -0
  156. data/misc/openlayers/doc_config/Data/SymbolTable.nd +0 -0
  157. data/misc/openlayers/doc_config/Languages.txt +113 -0
  158. data/misc/openlayers/doc_config/Menu.txt +520 -0
  159. data/misc/openlayers/doc_config/OL.css +20 -0
  160. data/misc/openlayers/doc_config/Topics.txt +102 -0
  161. data/misc/openlayers/examples/Jugl.js +8 -0
  162. data/misc/openlayers/examples/KMLParser.html +57 -0
  163. data/misc/openlayers/examples/SLDSelect.html +202 -0
  164. data/misc/openlayers/examples/WMSDescribeLayerParser.html +52 -0
  165. data/misc/openlayers/examples/accelerometer.html +100 -0
  166. data/misc/openlayers/examples/accessible-click-control.html +69 -0
  167. data/misc/openlayers/examples/accessible-click-control.js +199 -0
  168. data/misc/openlayers/examples/accessible-panel.html +130 -0
  169. data/misc/openlayers/examples/accessible-panel.js +64 -0
  170. data/misc/openlayers/examples/accessible.html +167 -0
  171. data/misc/openlayers/examples/all-overlays-google.html +34 -0
  172. data/misc/openlayers/examples/all-overlays-google.js +19 -0
  173. data/misc/openlayers/examples/all-overlays.html +76 -0
  174. data/misc/openlayers/examples/anchor-permalink.html +29 -0
  175. data/misc/openlayers/examples/anchor-permalink.js +13 -0
  176. data/misc/openlayers/examples/animated_panning.html +98 -0
  177. data/misc/openlayers/examples/animator.js +670 -0
  178. data/misc/openlayers/examples/arcgis93rest.html +69 -0
  179. data/misc/openlayers/examples/arcgiscache_ags.html +221 -0
  180. data/misc/openlayers/examples/arcgiscache_direct.html +108 -0
  181. data/misc/openlayers/examples/arcgiscache_jsonp.html +106 -0
  182. data/misc/openlayers/examples/arcims-thematic.html +82 -0
  183. data/misc/openlayers/examples/arcims.html +57 -0
  184. data/misc/openlayers/examples/attribution.html +60 -0
  185. data/misc/openlayers/examples/behavior-fixed-http-gml.html +56 -0
  186. data/misc/openlayers/examples/bing-tiles-restrictedzoom.html +43 -0
  187. data/misc/openlayers/examples/bing-tiles-restrictedzoom.js +37 -0
  188. data/misc/openlayers/examples/bing-tiles.html +39 -0
  189. data/misc/openlayers/examples/bing-tiles.js +31 -0
  190. data/misc/openlayers/examples/bing.html +64 -0
  191. data/misc/openlayers/examples/bootstrap.html +81 -0
  192. data/misc/openlayers/examples/bootstrap.js +31 -0
  193. data/misc/openlayers/examples/boxes-vector.html +59 -0
  194. data/misc/openlayers/examples/boxes.html +58 -0
  195. data/misc/openlayers/examples/browser.html +152 -0
  196. data/misc/openlayers/examples/browser.js +241 -0
  197. data/misc/openlayers/examples/buffer.html +54 -0
  198. data/misc/openlayers/examples/cache-read.html +36 -0
  199. data/misc/openlayers/examples/cache-read.js +36 -0
  200. data/misc/openlayers/examples/cache-write.html +37 -0
  201. data/misc/openlayers/examples/cache-write.js +46 -0
  202. data/misc/openlayers/examples/canvas-hit-detection.html +31 -0
  203. data/misc/openlayers/examples/canvas-hit-detection.js +88 -0
  204. data/misc/openlayers/examples/canvas-inspector.html +53 -0
  205. data/misc/openlayers/examples/canvas-inspector.js +91 -0
  206. data/misc/openlayers/examples/canvas.html +35 -0
  207. data/misc/openlayers/examples/canvas.js +57 -0
  208. data/misc/openlayers/examples/cartodb-geojson.html +71 -0
  209. data/misc/openlayers/examples/click-handler.html +232 -0
  210. data/misc/openlayers/examples/click.html +91 -0
  211. data/misc/openlayers/examples/clientzoom.html +72 -0
  212. data/misc/openlayers/examples/clientzoom.js +39 -0
  213. data/misc/openlayers/examples/controls.html +86 -0
  214. data/misc/openlayers/examples/cql-format.html +54 -0
  215. data/misc/openlayers/examples/cql-format.js +61 -0
  216. data/misc/openlayers/examples/cross-origin-xml.html +32 -0
  217. data/misc/openlayers/examples/cross-origin-xml.js +25 -0
  218. data/misc/openlayers/examples/cross-origin.html +36 -0
  219. data/misc/openlayers/examples/cross-origin.js +39 -0
  220. data/misc/openlayers/examples/custom-control.html +68 -0
  221. data/misc/openlayers/examples/custom-style.html +66 -0
  222. data/misc/openlayers/examples/data/4_m_citylights_lg.gif +0 -0
  223. data/misc/openlayers/examples/data/line.json +10 -0
  224. data/misc/openlayers/examples/data/point.json +8 -0
  225. data/misc/openlayers/examples/data/poly.json +9 -0
  226. data/misc/openlayers/examples/data/roads.json +349 -0
  227. data/misc/openlayers/examples/data/tazdem.tiff +0 -0
  228. data/misc/openlayers/examples/debug.html +77 -0
  229. data/misc/openlayers/examples/document-drag.html +43 -0
  230. data/misc/openlayers/examples/donut.html +62 -0
  231. data/misc/openlayers/examples/donut.js +44 -0
  232. data/misc/openlayers/examples/drag-feature.html +114 -0
  233. data/misc/openlayers/examples/draw-feature.html +143 -0
  234. data/misc/openlayers/examples/draw-undo-redo.html +38 -0
  235. data/misc/openlayers/examples/draw-undo-redo.js +45 -0
  236. data/misc/openlayers/examples/dynamic-text-layer.html +101 -0
  237. data/misc/openlayers/examples/editing-methods.html +58 -0
  238. data/misc/openlayers/examples/editing-methods.js +83 -0
  239. data/misc/openlayers/examples/editingtoolbar-outside.html +56 -0
  240. data/misc/openlayers/examples/editingtoolbar.html +55 -0
  241. data/misc/openlayers/examples/encoded-polyline.html +47 -0
  242. data/misc/openlayers/examples/events.html +155 -0
  243. data/misc/openlayers/examples/example-list.html +302 -0
  244. data/misc/openlayers/examples/example.html +25 -0
  245. data/misc/openlayers/examples/example.js +23 -0
  246. data/misc/openlayers/examples/feature-events.html +46 -0
  247. data/misc/openlayers/examples/feature-events.js +67 -0
  248. data/misc/openlayers/examples/filter-strategy.html +54 -0
  249. data/misc/openlayers/examples/filter-strategy.js +84 -0
  250. data/misc/openlayers/examples/filter.html +107 -0
  251. data/misc/openlayers/examples/fractional-zoom.html +72 -0
  252. data/misc/openlayers/examples/fullScreen.html +53 -0
  253. data/misc/openlayers/examples/fullScreen.js +20 -0
  254. data/misc/openlayers/examples/fusiontables.html +35 -0
  255. data/misc/openlayers/examples/fusiontables.js +51 -0
  256. data/misc/openlayers/examples/game-accel-ball.html +82 -0
  257. data/misc/openlayers/examples/geojson-reprojected.html +46 -0
  258. data/misc/openlayers/examples/geojson-reprojected.js +27 -0
  259. data/misc/openlayers/examples/geojson-reprojected.json +1 -0
  260. data/misc/openlayers/examples/geojson.html +77 -0
  261. data/misc/openlayers/examples/geolocation.html +41 -0
  262. data/misc/openlayers/examples/geolocation.js +112 -0
  263. data/misc/openlayers/examples/georss-flickr.html +119 -0
  264. data/misc/openlayers/examples/georss-markers.html +45 -0
  265. data/misc/openlayers/examples/georss.html +63 -0
  266. data/misc/openlayers/examples/georss.xml +378 -0
  267. data/misc/openlayers/examples/getfeature-wfs.html +84 -0
  268. data/misc/openlayers/examples/getfeatureinfo-control.html +221 -0
  269. data/misc/openlayers/examples/getfeatureinfo-popup.html +96 -0
  270. data/misc/openlayers/examples/gml/line.xml +42 -0
  271. data/misc/openlayers/examples/gml/multipoint.xml +70 -0
  272. data/misc/openlayers/examples/gml/multipolygon.xml +106 -0
  273. data/misc/openlayers/examples/gml/owls.xml +156 -0
  274. data/misc/openlayers/examples/gml/point.xml +42 -0
  275. data/misc/openlayers/examples/gml/polygon.xml +89 -0
  276. data/misc/openlayers/examples/gml-layer.html +48 -0
  277. data/misc/openlayers/examples/google-static.html +39 -0
  278. data/misc/openlayers/examples/google-static.js +61 -0
  279. data/misc/openlayers/examples/google-v3-alloverlays.html +33 -0
  280. data/misc/openlayers/examples/google-v3-alloverlays.js +35 -0
  281. data/misc/openlayers/examples/google-v3.html +35 -0
  282. data/misc/openlayers/examples/google-v3.js +39 -0
  283. data/misc/openlayers/examples/google.html +69 -0
  284. data/misc/openlayers/examples/graphic-name.html +42 -0
  285. data/misc/openlayers/examples/graphic-name.js +67 -0
  286. data/misc/openlayers/examples/graticule.html +116 -0
  287. data/misc/openlayers/examples/gutter.html +55 -0
  288. data/misc/openlayers/examples/highlight-feature.html +88 -0
  289. data/misc/openlayers/examples/hover-handler.html +216 -0
  290. data/misc/openlayers/examples/image-layer.html +76 -0
  291. data/misc/openlayers/examples/img/check-round-green.png +0 -0
  292. data/misc/openlayers/examples/img/check-round-grey.png +0 -0
  293. data/misc/openlayers/examples/img/list.png +0 -0
  294. data/misc/openlayers/examples/img/locate.png +0 -0
  295. data/misc/openlayers/examples/img/marker_shadow.png +0 -0
  296. data/misc/openlayers/examples/img/minus1.png +0 -0
  297. data/misc/openlayers/examples/img/mobile-layers.png +0 -0
  298. data/misc/openlayers/examples/img/mobile-loc.png +0 -0
  299. data/misc/openlayers/examples/img/mobile-zoombar.png +0 -0
  300. data/misc/openlayers/examples/img/openlayers.png +0 -0
  301. data/misc/openlayers/examples/img/popupMatrix.jpg +0 -0
  302. data/misc/openlayers/examples/img/small.jpg +0 -0
  303. data/misc/openlayers/examples/img/thinlong.jpg +0 -0
  304. data/misc/openlayers/examples/img/widelong.jpg +0 -0
  305. data/misc/openlayers/examples/img/wideshort.jpg +0 -0
  306. data/misc/openlayers/examples/intersects.html +193 -0
  307. data/misc/openlayers/examples/kamap.html +45 -0
  308. data/misc/openlayers/examples/kamap.txt +508 -0
  309. data/misc/openlayers/examples/kinetic.html +44 -0
  310. data/misc/openlayers/examples/kinetic.js +27 -0
  311. data/misc/openlayers/examples/kml/lines.kml +275 -0
  312. data/misc/openlayers/examples/kml/styles.kml +21 -0
  313. data/misc/openlayers/examples/kml/sundials.kml +2273 -0
  314. data/misc/openlayers/examples/kml-layer.html +36 -0
  315. data/misc/openlayers/examples/kml-layer.js +22 -0
  316. data/misc/openlayers/examples/kml-pointtrack.html +40 -0
  317. data/misc/openlayers/examples/kml-pointtrack.js +52 -0
  318. data/misc/openlayers/examples/kml-track.html +42 -0
  319. data/misc/openlayers/examples/kml-track.js +40 -0
  320. data/misc/openlayers/examples/kml-track.kml +3359 -0
  321. data/misc/openlayers/examples/label-scale.html +34 -0
  322. data/misc/openlayers/examples/label-scale.js +72 -0
  323. data/misc/openlayers/examples/late-render.html +48 -0
  324. data/misc/openlayers/examples/layer-opacity.html +95 -0
  325. data/misc/openlayers/examples/layerLoadMonitoring.html +135 -0
  326. data/misc/openlayers/examples/layerswitcher.html +60 -0
  327. data/misc/openlayers/examples/light-basic.html +35 -0
  328. data/misc/openlayers/examples/light-basic.js +67 -0
  329. data/misc/openlayers/examples/lite.html +39 -0
  330. data/misc/openlayers/examples/mapbox.html +30 -0
  331. data/misc/openlayers/examples/mapbox.js +21 -0
  332. data/misc/openlayers/examples/mapguide.html +155 -0
  333. data/misc/openlayers/examples/mapquest.html +28 -0
  334. data/misc/openlayers/examples/mapquest.js +36 -0
  335. data/misc/openlayers/examples/mapserver.html +41 -0
  336. data/misc/openlayers/examples/mapserver_untiled.html +43 -0
  337. data/misc/openlayers/examples/marker-shadow.html +152 -0
  338. data/misc/openlayers/examples/markerResize.html +60 -0
  339. data/misc/openlayers/examples/markers.html +59 -0
  340. data/misc/openlayers/examples/markersTextLayer.html +41 -0
  341. data/misc/openlayers/examples/measure.html +203 -0
  342. data/misc/openlayers/examples/mobile-base.js +167 -0
  343. data/misc/openlayers/examples/mobile-drawing.html +52 -0
  344. data/misc/openlayers/examples/mobile-drawing.js +71 -0
  345. data/misc/openlayers/examples/mobile-jq.html +76 -0
  346. data/misc/openlayers/examples/mobile-jq.js +159 -0
  347. data/misc/openlayers/examples/mobile-layers.html +62 -0
  348. data/misc/openlayers/examples/mobile-layers.js +71 -0
  349. data/misc/openlayers/examples/mobile-navigation.html +52 -0
  350. data/misc/openlayers/examples/mobile-navigation.js +24 -0
  351. data/misc/openlayers/examples/mobile-sencha.html +184 -0
  352. data/misc/openlayers/examples/mobile-sencha.js +198 -0
  353. data/misc/openlayers/examples/mobile-wmts-vienna.css +205 -0
  354. data/misc/openlayers/examples/mobile-wmts-vienna.html +27 -0
  355. data/misc/openlayers/examples/mobile-wmts-vienna.js +281 -0
  356. data/misc/openlayers/examples/mobile.html +56 -0
  357. data/misc/openlayers/examples/mobile.js +39 -0
  358. data/misc/openlayers/examples/modify-feature.html +193 -0
  359. data/misc/openlayers/examples/mouse-position.html +67 -0
  360. data/misc/openlayers/examples/mousewheel-interval.html +63 -0
  361. data/misc/openlayers/examples/multiserver.html +52 -0
  362. data/misc/openlayers/examples/multitouch.html +28 -0
  363. data/misc/openlayers/examples/mvs.html +129 -0
  364. data/misc/openlayers/examples/navigation-control.html +44 -0
  365. data/misc/openlayers/examples/navigation-history.html +62 -0
  366. data/misc/openlayers/examples/navtoolbar-alwaysZoom.html +85 -0
  367. data/misc/openlayers/examples/navtoolbar-outsidemap.html +47 -0
  368. data/misc/openlayers/examples/navtoolbar.html +46 -0
  369. data/misc/openlayers/examples/offline-storage.html +44 -0
  370. data/misc/openlayers/examples/offline-storage.js +199 -0
  371. data/misc/openlayers/examples/openls.html +88 -0
  372. data/misc/openlayers/examples/ordering.html +221 -0
  373. data/misc/openlayers/examples/osm/sutton_coldfield.osm +662 -0
  374. data/misc/openlayers/examples/osm-google.html +32 -0
  375. data/misc/openlayers/examples/osm-google.js +23 -0
  376. data/misc/openlayers/examples/osm-grayscale.html +77 -0
  377. data/misc/openlayers/examples/osm-marker-popup.html +32 -0
  378. data/misc/openlayers/examples/osm-marker-popup.js +39 -0
  379. data/misc/openlayers/examples/osm.html +41 -0
  380. data/misc/openlayers/examples/overviewmap.html +120 -0
  381. data/misc/openlayers/examples/pan-zoom-panels.html +97 -0
  382. data/misc/openlayers/examples/panel.html +99 -0
  383. data/misc/openlayers/examples/point-grid.html +75 -0
  384. data/misc/openlayers/examples/point-grid.js +33 -0
  385. data/misc/openlayers/examples/point-track-markers.html +72 -0
  386. data/misc/openlayers/examples/polar-projections.html +41 -0
  387. data/misc/openlayers/examples/polar-projections.js +84 -0
  388. data/misc/openlayers/examples/popupMatrix.html +652 -0
  389. data/misc/openlayers/examples/proxy.cgi +81 -0
  390. data/misc/openlayers/examples/regular-polygons.html +177 -0
  391. data/misc/openlayers/examples/resize-features.html +101 -0
  392. data/misc/openlayers/examples/restricted-extent.html +77 -0
  393. data/misc/openlayers/examples/rotate-features.html +113 -0
  394. data/misc/openlayers/examples/select-feature-multilayer.html +129 -0
  395. data/misc/openlayers/examples/select-feature-openpopup.html +106 -0
  396. data/misc/openlayers/examples/select-feature.html +170 -0
  397. data/misc/openlayers/examples/setextent.html +39 -0
  398. data/misc/openlayers/examples/simplify-linestring.html +103 -0
  399. data/misc/openlayers/examples/simplify-linestring.js +599 -0
  400. data/misc/openlayers/examples/single-tile.html +33 -0
  401. data/misc/openlayers/examples/single-tile.js +20 -0
  402. data/misc/openlayers/examples/sld-parser.html +70 -0
  403. data/misc/openlayers/examples/sld.html +31 -0
  404. data/misc/openlayers/examples/sld.js +102 -0
  405. data/misc/openlayers/examples/snap-grid.html +78 -0
  406. data/misc/openlayers/examples/snap-grid.js +81 -0
  407. data/misc/openlayers/examples/snap-split.html +281 -0
  408. data/misc/openlayers/examples/snapping.html +324 -0
  409. data/misc/openlayers/examples/sos.html +189 -0
  410. data/misc/openlayers/examples/spherical-mercator.html +120 -0
  411. data/misc/openlayers/examples/split-feature.html +116 -0
  412. data/misc/openlayers/examples/strategy-bbox.html +106 -0
  413. data/misc/openlayers/examples/strategy-cluster-extended.html +125 -0
  414. data/misc/openlayers/examples/strategy-cluster-extended.js +247 -0
  415. data/misc/openlayers/examples/strategy-cluster-threshold.html +149 -0
  416. data/misc/openlayers/examples/strategy-cluster.html +238 -0
  417. data/misc/openlayers/examples/strategy-paging.html +115 -0
  418. data/misc/openlayers/examples/style-rules.html +49 -0
  419. data/misc/openlayers/examples/style-rules.js +99 -0
  420. data/misc/openlayers/examples/style.css +143 -0
  421. data/misc/openlayers/examples/style.mobile-jq.css +62 -0
  422. data/misc/openlayers/examples/stylemap.html +100 -0
  423. data/misc/openlayers/examples/styles-context.html +117 -0
  424. data/misc/openlayers/examples/styles-rotation.html +93 -0
  425. data/misc/openlayers/examples/styles-unique.html +109 -0
  426. data/misc/openlayers/examples/sundials-spherical-mercator.html +111 -0
  427. data/misc/openlayers/examples/sundials.html +107 -0
  428. data/misc/openlayers/examples/symbolizers-fill-stroke-graphic.html +141 -0
  429. data/misc/openlayers/examples/tasmania/TasmaniaCities.xml +40 -0
  430. data/misc/openlayers/examples/tasmania/TasmaniaRoads.xml +204 -0
  431. data/misc/openlayers/examples/tasmania/TasmaniaStateBoundaries.xml +92 -0
  432. data/misc/openlayers/examples/tasmania/TasmaniaWaterBodies.xml +162 -0
  433. data/misc/openlayers/examples/tasmania/sld-tasmania.xml +594 -0
  434. data/misc/openlayers/examples/teleportation.html +76 -0
  435. data/misc/openlayers/examples/textfile.txt +4 -0
  436. data/misc/openlayers/examples/tile-origin.html +38 -0
  437. data/misc/openlayers/examples/tile-origin.js +16 -0
  438. data/misc/openlayers/examples/tilecache.html +58 -0
  439. data/misc/openlayers/examples/tms.html +62 -0
  440. data/misc/openlayers/examples/transform-feature.html +123 -0
  441. data/misc/openlayers/examples/transition.html +70 -0
  442. data/misc/openlayers/examples/using-proj4js.html +109 -0
  443. data/misc/openlayers/examples/using-proj4js.js +132 -0
  444. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/0.json +1 -0
  445. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/1.json +1 -0
  446. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/2.json +1 -0
  447. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/0.json +1 -0
  448. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/1.json +1 -0
  449. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/2.json +1 -0
  450. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/0.json +1 -0
  451. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/1.json +1 -0
  452. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/2.json +1 -0
  453. data/misc/openlayers/examples/utfgrid/geography-class/0/0/0.grid.json +1 -0
  454. data/misc/openlayers/examples/utfgrid/geography-class/1/0/0.grid.json +1 -0
  455. data/misc/openlayers/examples/utfgrid/geography-class/1/0/1.grid.json +1 -0
  456. data/misc/openlayers/examples/utfgrid/geography-class/1/1/0.grid.json +1 -0
  457. data/misc/openlayers/examples/utfgrid/geography-class/1/1/1.grid.json +1 -0
  458. data/misc/openlayers/examples/utfgrid/geography-class/2/0/0.grid.json +1 -0
  459. data/misc/openlayers/examples/utfgrid/geography-class/2/0/1.grid.json +1 -0
  460. data/misc/openlayers/examples/utfgrid/geography-class/2/0/2.grid.json +1 -0
  461. data/misc/openlayers/examples/utfgrid/geography-class/2/0/3.grid.json +1 -0
  462. data/misc/openlayers/examples/utfgrid/geography-class/2/1/0.grid.json +1 -0
  463. data/misc/openlayers/examples/utfgrid/geography-class/2/1/1.grid.json +1 -0
  464. data/misc/openlayers/examples/utfgrid/geography-class/2/1/2.grid.json +1 -0
  465. data/misc/openlayers/examples/utfgrid/geography-class/2/1/3.grid.json +1 -0
  466. data/misc/openlayers/examples/utfgrid/geography-class/2/2/0.grid.json +1 -0
  467. data/misc/openlayers/examples/utfgrid/geography-class/2/2/1.grid.json +1 -0
  468. data/misc/openlayers/examples/utfgrid/geography-class/2/2/2.grid.json +1 -0
  469. data/misc/openlayers/examples/utfgrid/geography-class/2/2/3.grid.json +1 -0
  470. data/misc/openlayers/examples/utfgrid/geography-class/2/3/0.grid.json +1 -0
  471. data/misc/openlayers/examples/utfgrid/geography-class/2/3/1.grid.json +1 -0
  472. data/misc/openlayers/examples/utfgrid/geography-class/2/3/2.grid.json +1 -0
  473. data/misc/openlayers/examples/utfgrid/geography-class/2/3/3.grid.json +1 -0
  474. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/0.json +1 -0
  475. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/1.json +1 -0
  476. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/2.json +1 -0
  477. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/0.json +1 -0
  478. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/1.json +1 -0
  479. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/2.json +1 -0
  480. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/0.json +1 -0
  481. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/1.json +1 -0
  482. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/2.json +1 -0
  483. data/misc/openlayers/examples/utfgrid-geography-class.html +51 -0
  484. data/misc/openlayers/examples/utfgrid-geography-class.js +62 -0
  485. data/misc/openlayers/examples/utfgrid.html +64 -0
  486. data/misc/openlayers/examples/utfgrid.js +61 -0
  487. data/misc/openlayers/examples/utfgrid_twogrids.html +51 -0
  488. data/misc/openlayers/examples/utfgrid_twogrids.js +70 -0
  489. data/misc/openlayers/examples/vector-features-with-text.html +138 -0
  490. data/misc/openlayers/examples/vector-features.html +149 -0
  491. data/misc/openlayers/examples/vector-formats.html +240 -0
  492. data/misc/openlayers/examples/web-mercator.html +50 -0
  493. data/misc/openlayers/examples/web-mercator.js +37 -0
  494. data/misc/openlayers/examples/wfs-filter.html +35 -0
  495. data/misc/openlayers/examples/wfs-filter.js +48 -0
  496. data/misc/openlayers/examples/wfs-protocol-transactions.html +104 -0
  497. data/misc/openlayers/examples/wfs-protocol-transactions.js +106 -0
  498. data/misc/openlayers/examples/wfs-protocol.html +55 -0
  499. data/misc/openlayers/examples/wfs-reprojection.html +42 -0
  500. data/misc/openlayers/examples/wfs-reprojection.js +60 -0
  501. data/misc/openlayers/examples/wfs-snap-split.html +292 -0
  502. data/misc/openlayers/examples/wfs-spatial-filter.html +37 -0
  503. data/misc/openlayers/examples/wfs-spatial-filter.js +36 -0
  504. data/misc/openlayers/examples/wfs-states.html +34 -0
  505. data/misc/openlayers/examples/wfs-states.js +35 -0
  506. data/misc/openlayers/examples/wmc.html +150 -0
  507. data/misc/openlayers/examples/wms-long-url.html +44 -0
  508. data/misc/openlayers/examples/wms-long-url.js +26 -0
  509. data/misc/openlayers/examples/wms-untiled.html +48 -0
  510. data/misc/openlayers/examples/wms-v13.html +57 -0
  511. data/misc/openlayers/examples/wms.html +49 -0
  512. data/misc/openlayers/examples/wmst.html +63 -0
  513. data/misc/openlayers/examples/wmts-capabilities.html +43 -0
  514. data/misc/openlayers/examples/wmts-capabilities.js +58 -0
  515. data/misc/openlayers/examples/wmts-getfeatureinfo.html +74 -0
  516. data/misc/openlayers/examples/wmts-getfeatureinfo.js +94 -0
  517. data/misc/openlayers/examples/wmts.html +41 -0
  518. data/misc/openlayers/examples/wmts.js +35 -0
  519. data/misc/openlayers/examples/wps-client.html +31 -0
  520. data/misc/openlayers/examples/wps-client.js +75 -0
  521. data/misc/openlayers/examples/wps.html +89 -0
  522. data/misc/openlayers/examples/wps.js +353 -0
  523. data/misc/openlayers/examples/wrapDateLine.html +73 -0
  524. data/misc/openlayers/examples/xhtml.html +42 -0
  525. data/misc/openlayers/examples/xml/features.xml +2 -0
  526. data/misc/openlayers/examples/xml/georss-flickr.xml +730 -0
  527. data/misc/openlayers/examples/xml/track1.xml +98 -0
  528. data/misc/openlayers/examples/xml/wmsdescribelayer.xml +5 -0
  529. data/misc/openlayers/examples/xml.html +161 -0
  530. data/misc/openlayers/examples/xyz-esri.html +45 -0
  531. data/misc/openlayers/examples/yelp-georss.xml +147 -0
  532. data/misc/openlayers/examples/zoom.html +68 -0
  533. data/misc/openlayers/examples/zoom.js +34 -0
  534. data/misc/openlayers/examples/zoomLevels.html +81 -0
  535. data/misc/openlayers/examples/zoomify.html +70 -0
  536. data/misc/openlayers/img/blank.gif +0 -0
  537. data/misc/openlayers/img/cloud-popup-relative.png +0 -0
  538. data/misc/openlayers/img/drag-rectangle-off.png +0 -0
  539. data/misc/openlayers/img/drag-rectangle-on.png +0 -0
  540. data/misc/openlayers/img/east-mini.png +0 -0
  541. data/misc/openlayers/img/layer-switcher-maximize.png +0 -0
  542. data/misc/openlayers/img/layer-switcher-minimize.png +0 -0
  543. data/misc/openlayers/img/marker-blue.png +0 -0
  544. data/misc/openlayers/img/marker-gold.png +0 -0
  545. data/misc/openlayers/img/marker-green.png +0 -0
  546. data/misc/openlayers/img/marker.png +0 -0
  547. data/misc/openlayers/img/measuring-stick-off.png +0 -0
  548. data/misc/openlayers/img/measuring-stick-on.png +0 -0
  549. data/misc/openlayers/img/north-mini.png +0 -0
  550. data/misc/openlayers/img/panning-hand-off.png +0 -0
  551. data/misc/openlayers/img/panning-hand-on.png +0 -0
  552. data/misc/openlayers/img/slider.png +0 -0
  553. data/misc/openlayers/img/south-mini.png +0 -0
  554. data/misc/openlayers/img/west-mini.png +0 -0
  555. data/misc/openlayers/img/zoom-minus-mini.png +0 -0
  556. data/misc/openlayers/img/zoom-plus-mini.png +0 -0
  557. data/misc/openlayers/img/zoom-world-mini.png +0 -0
  558. data/misc/openlayers/img/zoombar.png +0 -0
  559. data/misc/openlayers/lib/Firebug/errorIcon.png +0 -0
  560. data/misc/openlayers/lib/Firebug/firebug.css +209 -0
  561. data/misc/openlayers/lib/Firebug/firebug.html +23 -0
  562. data/misc/openlayers/lib/Firebug/firebug.js +674 -0
  563. data/misc/openlayers/lib/Firebug/firebugx.js +10 -0
  564. data/misc/openlayers/lib/Firebug/infoIcon.png +0 -0
  565. data/misc/openlayers/lib/Firebug/license.txt +30 -0
  566. data/misc/openlayers/lib/Firebug/readme.txt +13 -0
  567. data/misc/openlayers/lib/Firebug/warningIcon.png +0 -0
  568. data/misc/openlayers/lib/OpenLayers/Animation.js +102 -0
  569. data/misc/openlayers/lib/OpenLayers/BaseTypes/Bounds.js +837 -0
  570. data/misc/openlayers/lib/OpenLayers/BaseTypes/Class.js +121 -0
  571. data/misc/openlayers/lib/OpenLayers/BaseTypes/Date.js +123 -0
  572. data/misc/openlayers/lib/OpenLayers/BaseTypes/Element.js +189 -0
  573. data/misc/openlayers/lib/OpenLayers/BaseTypes/LonLat.js +215 -0
  574. data/misc/openlayers/lib/OpenLayers/BaseTypes/Pixel.js +143 -0
  575. data/misc/openlayers/lib/OpenLayers/BaseTypes/Size.js +89 -0
  576. data/misc/openlayers/lib/OpenLayers/BaseTypes.js +463 -0
  577. data/misc/openlayers/lib/OpenLayers/Console.js +250 -0
  578. data/misc/openlayers/lib/OpenLayers/Control/ArgParser.js +182 -0
  579. data/misc/openlayers/lib/OpenLayers/Control/Attribution.js +104 -0
  580. data/misc/openlayers/lib/OpenLayers/Control/Button.js +44 -0
  581. data/misc/openlayers/lib/OpenLayers/Control/CacheRead.js +156 -0
  582. data/misc/openlayers/lib/OpenLayers/Control/CacheWrite.js +257 -0
  583. data/misc/openlayers/lib/OpenLayers/Control/DragFeature.js +366 -0
  584. data/misc/openlayers/lib/OpenLayers/Control/DragPan.js +156 -0
  585. data/misc/openlayers/lib/OpenLayers/Control/DrawFeature.js +229 -0
  586. data/misc/openlayers/lib/OpenLayers/Control/EditingToolbar.js +81 -0
  587. data/misc/openlayers/lib/OpenLayers/Control/Geolocate.js +192 -0
  588. data/misc/openlayers/lib/OpenLayers/Control/GetFeature.js +597 -0
  589. data/misc/openlayers/lib/OpenLayers/Control/Graticule.js +377 -0
  590. data/misc/openlayers/lib/OpenLayers/Control/KeyboardDefaults.js +142 -0
  591. data/misc/openlayers/lib/OpenLayers/Control/LayerSwitcher.js +521 -0
  592. data/misc/openlayers/lib/OpenLayers/Control/Measure.js +379 -0
  593. data/misc/openlayers/lib/OpenLayers/Control/ModifyFeature.js +835 -0
  594. data/misc/openlayers/lib/OpenLayers/Control/MousePosition.js +227 -0
  595. data/misc/openlayers/lib/OpenLayers/Control/NavToolbar.js +57 -0
  596. data/misc/openlayers/lib/OpenLayers/Control/Navigation.js +345 -0
  597. data/misc/openlayers/lib/OpenLayers/Control/NavigationHistory.js +423 -0
  598. data/misc/openlayers/lib/OpenLayers/Control/OverviewMap.js +750 -0
  599. data/misc/openlayers/lib/OpenLayers/Control/Pan.js +95 -0
  600. data/misc/openlayers/lib/OpenLayers/Control/PanPanel.js +73 -0
  601. data/misc/openlayers/lib/OpenLayers/Control/PanZoom.js +233 -0
  602. data/misc/openlayers/lib/OpenLayers/Control/PanZoomBar.js +408 -0
  603. data/misc/openlayers/lib/OpenLayers/Control/Panel.js +431 -0
  604. data/misc/openlayers/lib/OpenLayers/Control/Permalink.js +257 -0
  605. data/misc/openlayers/lib/OpenLayers/Control/PinchZoom.js +157 -0
  606. data/misc/openlayers/lib/OpenLayers/Control/SLDSelect.js +567 -0
  607. data/misc/openlayers/lib/OpenLayers/Control/Scale.js +100 -0
  608. data/misc/openlayers/lib/OpenLayers/Control/ScaleLine.js +220 -0
  609. data/misc/openlayers/lib/OpenLayers/Control/SelectFeature.js +643 -0
  610. data/misc/openlayers/lib/OpenLayers/Control/Snapping.js +560 -0
  611. data/misc/openlayers/lib/OpenLayers/Control/Split.js +494 -0
  612. data/misc/openlayers/lib/OpenLayers/Control/TouchNavigation.js +182 -0
  613. data/misc/openlayers/lib/OpenLayers/Control/TransformFeature.js +624 -0
  614. data/misc/openlayers/lib/OpenLayers/Control/UTFGrid.js +240 -0
  615. data/misc/openlayers/lib/OpenLayers/Control/WMSGetFeatureInfo.js +532 -0
  616. data/misc/openlayers/lib/OpenLayers/Control/WMTSGetFeatureInfo.js +400 -0
  617. data/misc/openlayers/lib/OpenLayers/Control/Zoom.js +138 -0
  618. data/misc/openlayers/lib/OpenLayers/Control/ZoomBox.js +129 -0
  619. data/misc/openlayers/lib/OpenLayers/Control/ZoomIn.js +29 -0
  620. data/misc/openlayers/lib/OpenLayers/Control/ZoomOut.js +29 -0
  621. data/misc/openlayers/lib/OpenLayers/Control/ZoomPanel.js +54 -0
  622. data/misc/openlayers/lib/OpenLayers/Control/ZoomToMaxExtent.js +35 -0
  623. data/misc/openlayers/lib/OpenLayers/Control.js +371 -0
  624. data/misc/openlayers/lib/OpenLayers/Events/buttonclick.js +206 -0
  625. data/misc/openlayers/lib/OpenLayers/Events/featureclick.js +321 -0
  626. data/misc/openlayers/lib/OpenLayers/Events.js +1170 -0
  627. data/misc/openlayers/lib/OpenLayers/Feature/Vector.js +510 -0
  628. data/misc/openlayers/lib/OpenLayers/Feature.js +225 -0
  629. data/misc/openlayers/lib/OpenLayers/Filter/Comparison.js +267 -0
  630. data/misc/openlayers/lib/OpenLayers/Filter/FeatureId.js +87 -0
  631. data/misc/openlayers/lib/OpenLayers/Filter/Function.js +49 -0
  632. data/misc/openlayers/lib/OpenLayers/Filter/Logical.js +121 -0
  633. data/misc/openlayers/lib/OpenLayers/Filter/Spatial.js +122 -0
  634. data/misc/openlayers/lib/OpenLayers/Filter.js +87 -0
  635. data/misc/openlayers/lib/OpenLayers/Format/ArcXML/Features.js +46 -0
  636. data/misc/openlayers/lib/OpenLayers/Format/ArcXML.js +1028 -0
  637. data/misc/openlayers/lib/OpenLayers/Format/Atom.js +712 -0
  638. data/misc/openlayers/lib/OpenLayers/Format/CQL.js +452 -0
  639. data/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js +240 -0
  640. data/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain.js +34 -0
  641. data/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js +457 -0
  642. data/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords.js +34 -0
  643. data/misc/openlayers/lib/OpenLayers/Format/Context.js +334 -0
  644. data/misc/openlayers/lib/OpenLayers/Format/EncodedPolyline.js +557 -0
  645. data/misc/openlayers/lib/OpenLayers/Format/Filter/v1.js +504 -0
  646. data/misc/openlayers/lib/OpenLayers/Format/Filter/v1_0_0.js +184 -0
  647. data/misc/openlayers/lib/OpenLayers/Format/Filter/v1_1_0.js +222 -0
  648. data/misc/openlayers/lib/OpenLayers/Format/Filter.js +53 -0
  649. data/misc/openlayers/lib/OpenLayers/Format/GML/Base.js +645 -0
  650. data/misc/openlayers/lib/OpenLayers/Format/GML/v2.js +193 -0
  651. data/misc/openlayers/lib/OpenLayers/Format/GML/v3.js +477 -0
  652. data/misc/openlayers/lib/OpenLayers/Format/GML.js +923 -0
  653. data/misc/openlayers/lib/OpenLayers/Format/GPX.js +385 -0
  654. data/misc/openlayers/lib/OpenLayers/Format/GeoJSON.js +716 -0
  655. data/misc/openlayers/lib/OpenLayers/Format/GeoRSS.js +409 -0
  656. data/misc/openlayers/lib/OpenLayers/Format/JSON.js +398 -0
  657. data/misc/openlayers/lib/OpenLayers/Format/KML.js +1517 -0
  658. data/misc/openlayers/lib/OpenLayers/Format/OGCExceptionReport.js +108 -0
  659. data/misc/openlayers/lib/OpenLayers/Format/OSM.js +465 -0
  660. data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1.js +318 -0
  661. data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_0_0.js +62 -0
  662. data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_1_0.js +116 -0
  663. data/misc/openlayers/lib/OpenLayers/Format/OWSCommon.js +78 -0
  664. data/misc/openlayers/lib/OpenLayers/Format/OWSContext/v0_3_1.js +595 -0
  665. data/misc/openlayers/lib/OpenLayers/Format/OWSContext.js +86 -0
  666. data/misc/openlayers/lib/OpenLayers/Format/QueryStringFilter.js +183 -0
  667. data/misc/openlayers/lib/OpenLayers/Format/SLD/v1.js +1309 -0
  668. data/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0.js +46 -0
  669. data/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js +149 -0
  670. data/misc/openlayers/lib/OpenLayers/Format/SLD.js +81 -0
  671. data/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js +158 -0
  672. data/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities.js +48 -0
  673. data/misc/openlayers/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js +190 -0
  674. data/misc/openlayers/lib/OpenLayers/Format/SOSGetObservation.js +302 -0
  675. data/misc/openlayers/lib/OpenLayers/Format/Text.js +151 -0
  676. data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1.js +55 -0
  677. data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_0_0.js +170 -0
  678. data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_1_0.js +109 -0
  679. data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities.js +47 -0
  680. data/misc/openlayers/lib/OpenLayers/Format/WCSGetCoverage.js +199 -0
  681. data/misc/openlayers/lib/OpenLayers/Format/WFS.js +223 -0
  682. data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1.js +129 -0
  683. data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js +115 -0
  684. data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js +63 -0
  685. data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities.js +47 -0
  686. data/misc/openlayers/lib/OpenLayers/Format/WFSDescribeFeatureType.js +234 -0
  687. data/misc/openlayers/lib/OpenLayers/Format/WFST/v1.js +446 -0
  688. data/misc/openlayers/lib/OpenLayers/Format/WFST/v1_0_0.js +174 -0
  689. data/misc/openlayers/lib/OpenLayers/Format/WFST/v1_1_0.js +189 -0
  690. data/misc/openlayers/lib/OpenLayers/Format/WFST.js +34 -0
  691. data/misc/openlayers/lib/OpenLayers/Format/WKT.js +392 -0
  692. data/misc/openlayers/lib/OpenLayers/Format/WMC/v1.js +1267 -0
  693. data/misc/openlayers/lib/OpenLayers/Format/WMC/v1_0_0.js +104 -0
  694. data/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js +149 -0
  695. data/misc/openlayers/lib/OpenLayers/Format/WMC.js +182 -0
  696. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1.js +368 -0
  697. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js +122 -0
  698. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js +57 -0
  699. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js +60 -0
  700. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js +85 -0
  701. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3.js +128 -0
  702. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js +30 -0
  703. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities.js +56 -0
  704. data/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js +122 -0
  705. data/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer.js +53 -0
  706. data/misc/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js +296 -0
  707. data/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js +251 -0
  708. data/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities.js +230 -0
  709. data/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js +119 -0
  710. data/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities.js +48 -0
  711. data/misc/openlayers/lib/OpenLayers/Format/WPSDescribeProcess.js +185 -0
  712. data/misc/openlayers/lib/OpenLayers/Format/WPSExecute.js +395 -0
  713. data/misc/openlayers/lib/OpenLayers/Format/XLS/v1.js +304 -0
  714. data/misc/openlayers/lib/OpenLayers/Format/XLS/v1_1_0.js +48 -0
  715. data/misc/openlayers/lib/OpenLayers/Format/XLS.js +68 -0
  716. data/misc/openlayers/lib/OpenLayers/Format/XML/VersionedOGC.js +212 -0
  717. data/misc/openlayers/lib/OpenLayers/Format/XML.js +897 -0
  718. data/misc/openlayers/lib/OpenLayers/Format.js +123 -0
  719. data/misc/openlayers/lib/OpenLayers/Geometry/Collection.js +563 -0
  720. data/misc/openlayers/lib/OpenLayers/Geometry/Curve.js +89 -0
  721. data/misc/openlayers/lib/OpenLayers/Geometry/LineString.js +646 -0
  722. data/misc/openlayers/lib/OpenLayers/Geometry/LinearRing.js +433 -0
  723. data/misc/openlayers/lib/OpenLayers/Geometry/MultiLineString.js +258 -0
  724. data/misc/openlayers/lib/OpenLayers/Geometry/MultiPoint.js +66 -0
  725. data/misc/openlayers/lib/OpenLayers/Geometry/MultiPolygon.js +42 -0
  726. data/misc/openlayers/lib/OpenLayers/Geometry/Point.js +283 -0
  727. data/misc/openlayers/lib/OpenLayers/Geometry/Polygon.js +255 -0
  728. data/misc/openlayers/lib/OpenLayers/Geometry.js +500 -0
  729. data/misc/openlayers/lib/OpenLayers/Handler/Box.js +244 -0
  730. data/misc/openlayers/lib/OpenLayers/Handler/Click.js +505 -0
  731. data/misc/openlayers/lib/OpenLayers/Handler/Drag.js +547 -0
  732. data/misc/openlayers/lib/OpenLayers/Handler/Feature.js +434 -0
  733. data/misc/openlayers/lib/OpenLayers/Handler/Hover.js +180 -0
  734. data/misc/openlayers/lib/OpenLayers/Handler/Keyboard.js +117 -0
  735. data/misc/openlayers/lib/OpenLayers/Handler/MouseWheel.js +264 -0
  736. data/misc/openlayers/lib/OpenLayers/Handler/Path.js +543 -0
  737. data/misc/openlayers/lib/OpenLayers/Handler/Pinch.js +239 -0
  738. data/misc/openlayers/lib/OpenLayers/Handler/Point.js +556 -0
  739. data/misc/openlayers/lib/OpenLayers/Handler/Polygon.js +305 -0
  740. data/misc/openlayers/lib/OpenLayers/Handler/RegularPolygon.js +429 -0
  741. data/misc/openlayers/lib/OpenLayers/Handler.js +325 -0
  742. data/misc/openlayers/lib/OpenLayers/Icon.js +243 -0
  743. data/misc/openlayers/lib/OpenLayers/Kinetic.js +178 -0
  744. data/misc/openlayers/lib/OpenLayers/Lang/ar.js +32 -0
  745. data/misc/openlayers/lib/OpenLayers/Lang/be-tarask.js +54 -0
  746. data/misc/openlayers/lib/OpenLayers/Lang/bg.js +25 -0
  747. data/misc/openlayers/lib/OpenLayers/Lang/br.js +53 -0
  748. data/misc/openlayers/lib/OpenLayers/Lang/ca.js +89 -0
  749. data/misc/openlayers/lib/OpenLayers/Lang/cs-CZ.js +45 -0
  750. data/misc/openlayers/lib/OpenLayers/Lang/da-DK.js +80 -0
  751. data/misc/openlayers/lib/OpenLayers/Lang/de.js +55 -0
  752. data/misc/openlayers/lib/OpenLayers/Lang/el.js +19 -0
  753. data/misc/openlayers/lib/OpenLayers/Lang/en-CA.js +21 -0
  754. data/misc/openlayers/lib/OpenLayers/Lang/en.js +89 -0
  755. data/misc/openlayers/lib/OpenLayers/Lang/es.js +90 -0
  756. data/misc/openlayers/lib/OpenLayers/Lang/fi.js +32 -0
  757. data/misc/openlayers/lib/OpenLayers/Lang/fr.js +53 -0
  758. data/misc/openlayers/lib/OpenLayers/Lang/fur.js +35 -0
  759. data/misc/openlayers/lib/OpenLayers/Lang/gl.js +53 -0
  760. data/misc/openlayers/lib/OpenLayers/Lang/gsw.js +53 -0
  761. data/misc/openlayers/lib/OpenLayers/Lang/hr.js +37 -0
  762. data/misc/openlayers/lib/OpenLayers/Lang/hsb.js +53 -0
  763. data/misc/openlayers/lib/OpenLayers/Lang/hu.js +54 -0
  764. data/misc/openlayers/lib/OpenLayers/Lang/ia.js +53 -0
  765. data/misc/openlayers/lib/OpenLayers/Lang/id.js +54 -0
  766. data/misc/openlayers/lib/OpenLayers/Lang/io.js +19 -0
  767. data/misc/openlayers/lib/OpenLayers/Lang/is.js +27 -0
  768. data/misc/openlayers/lib/OpenLayers/Lang/it.js +80 -0
  769. data/misc/openlayers/lib/OpenLayers/Lang/ja.js +54 -0
  770. data/misc/openlayers/lib/OpenLayers/Lang/km.js +23 -0
  771. data/misc/openlayers/lib/OpenLayers/Lang/ksh.js +53 -0
  772. data/misc/openlayers/lib/OpenLayers/Lang/lt.js +47 -0
  773. data/misc/openlayers/lib/OpenLayers/Lang/nb.js +82 -0
  774. data/misc/openlayers/lib/OpenLayers/Lang/nds.js +37 -0
  775. data/misc/openlayers/lib/OpenLayers/Lang/nl.js +53 -0
  776. data/misc/openlayers/lib/OpenLayers/Lang/nn.js +19 -0
  777. data/misc/openlayers/lib/OpenLayers/Lang/oc.js +53 -0
  778. data/misc/openlayers/lib/OpenLayers/Lang/pl.js +89 -0
  779. data/misc/openlayers/lib/OpenLayers/Lang/pt-BR.js +54 -0
  780. data/misc/openlayers/lib/OpenLayers/Lang/pt.js +55 -0
  781. data/misc/openlayers/lib/OpenLayers/Lang/ro.js +69 -0
  782. data/misc/openlayers/lib/OpenLayers/Lang/ru.js +56 -0
  783. data/misc/openlayers/lib/OpenLayers/Lang/sk.js +44 -0
  784. data/misc/openlayers/lib/OpenLayers/Lang/sv-SE.js +45 -0
  785. data/misc/openlayers/lib/OpenLayers/Lang/te.js +27 -0
  786. data/misc/openlayers/lib/OpenLayers/Lang/vi.js +53 -0
  787. data/misc/openlayers/lib/OpenLayers/Lang/zh-CN.js +80 -0
  788. data/misc/openlayers/lib/OpenLayers/Lang/zh-TW.js +81 -0
  789. data/misc/openlayers/lib/OpenLayers/Lang.js +134 -0
  790. data/misc/openlayers/lib/OpenLayers/Layer/ArcGIS93Rest.js +225 -0
  791. data/misc/openlayers/lib/OpenLayers/Layer/ArcGISCache.js +480 -0
  792. data/misc/openlayers/lib/OpenLayers/Layer/ArcIMS.js +425 -0
  793. data/misc/openlayers/lib/OpenLayers/Layer/Bing.js +333 -0
  794. data/misc/openlayers/lib/OpenLayers/Layer/Boxes.js +76 -0
  795. data/misc/openlayers/lib/OpenLayers/Layer/EventPane.js +441 -0
  796. data/misc/openlayers/lib/OpenLayers/Layer/FixedZoomLevels.js +319 -0
  797. data/misc/openlayers/lib/OpenLayers/Layer/GeoRSS.js +265 -0
  798. data/misc/openlayers/lib/OpenLayers/Layer/Google/v3.js +351 -0
  799. data/misc/openlayers/lib/OpenLayers/Layer/Google.js +809 -0
  800. data/misc/openlayers/lib/OpenLayers/Layer/Grid.js +1343 -0
  801. data/misc/openlayers/lib/OpenLayers/Layer/HTTPRequest.js +230 -0
  802. data/misc/openlayers/lib/OpenLayers/Layer/Image.js +259 -0
  803. data/misc/openlayers/lib/OpenLayers/Layer/KaMap.js +192 -0
  804. data/misc/openlayers/lib/OpenLayers/Layer/KaMapCache.js +143 -0
  805. data/misc/openlayers/lib/OpenLayers/Layer/MapGuide.js +443 -0
  806. data/misc/openlayers/lib/OpenLayers/Layer/MapServer.js +181 -0
  807. data/misc/openlayers/lib/OpenLayers/Layer/Markers.js +187 -0
  808. data/misc/openlayers/lib/OpenLayers/Layer/OSM.js +123 -0
  809. data/misc/openlayers/lib/OpenLayers/Layer/PointGrid.js +299 -0
  810. data/misc/openlayers/lib/OpenLayers/Layer/PointTrack.js +125 -0
  811. data/misc/openlayers/lib/OpenLayers/Layer/SphericalMercator.js +146 -0
  812. data/misc/openlayers/lib/OpenLayers/Layer/TMS.js +202 -0
  813. data/misc/openlayers/lib/OpenLayers/Layer/Text.js +267 -0
  814. data/misc/openlayers/lib/OpenLayers/Layer/TileCache.js +140 -0
  815. data/misc/openlayers/lib/OpenLayers/Layer/UTFGrid.js +184 -0
  816. data/misc/openlayers/lib/OpenLayers/Layer/Vector/RootContainer.js +154 -0
  817. data/misc/openlayers/lib/OpenLayers/Layer/Vector.js +1007 -0
  818. data/misc/openlayers/lib/OpenLayers/Layer/WMS.js +267 -0
  819. data/misc/openlayers/lib/OpenLayers/Layer/WMTS.js +510 -0
  820. data/misc/openlayers/lib/OpenLayers/Layer/WorldWind.js +105 -0
  821. data/misc/openlayers/lib/OpenLayers/Layer/XYZ.js +172 -0
  822. data/misc/openlayers/lib/OpenLayers/Layer/Zoomify.js +260 -0
  823. data/misc/openlayers/lib/OpenLayers/Layer.js +1377 -0
  824. data/misc/openlayers/lib/OpenLayers/Map.js +2867 -0
  825. data/misc/openlayers/lib/OpenLayers/Marker/Box.js +120 -0
  826. data/misc/openlayers/lib/OpenLayers/Marker.js +241 -0
  827. data/misc/openlayers/lib/OpenLayers/Popup/Anchored.js +195 -0
  828. data/misc/openlayers/lib/OpenLayers/Popup/Framed.js +343 -0
  829. data/misc/openlayers/lib/OpenLayers/Popup/FramedCloud.js +227 -0
  830. data/misc/openlayers/lib/OpenLayers/Popup.js +1065 -0
  831. data/misc/openlayers/lib/OpenLayers/Projection.js +322 -0
  832. data/misc/openlayers/lib/OpenLayers/Protocol/CSW/v2_0_2.js +127 -0
  833. data/misc/openlayers/lib/OpenLayers/Protocol/CSW.js +30 -0
  834. data/misc/openlayers/lib/OpenLayers/Protocol/HTTP.js +580 -0
  835. data/misc/openlayers/lib/OpenLayers/Protocol/SOS/v1_0_0.js +133 -0
  836. data/misc/openlayers/lib/OpenLayers/Protocol/SOS.js +33 -0
  837. data/misc/openlayers/lib/OpenLayers/Protocol/Script.js +377 -0
  838. data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1.js +453 -0
  839. data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1_0_0.js +44 -0
  840. data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1_1_0.js +68 -0
  841. data/misc/openlayers/lib/OpenLayers/Protocol/WFS.js +86 -0
  842. data/misc/openlayers/lib/OpenLayers/Protocol.js +291 -0
  843. data/misc/openlayers/lib/OpenLayers/Renderer/Canvas.js +906 -0
  844. data/misc/openlayers/lib/OpenLayers/Renderer/Elements.js +1053 -0
  845. data/misc/openlayers/lib/OpenLayers/Renderer/SVG.js +1012 -0
  846. data/misc/openlayers/lib/OpenLayers/Renderer/VML.js +985 -0
  847. data/misc/openlayers/lib/OpenLayers/Renderer.js +432 -0
  848. data/misc/openlayers/lib/OpenLayers/Request/XMLHttpRequest.js +458 -0
  849. data/misc/openlayers/lib/OpenLayers/Request.js +429 -0
  850. data/misc/openlayers/lib/OpenLayers/Rule.js +236 -0
  851. data/misc/openlayers/lib/OpenLayers/SingleFile.js +78 -0
  852. data/misc/openlayers/lib/OpenLayers/Spherical.js +67 -0
  853. data/misc/openlayers/lib/OpenLayers/Strategy/BBOX.js +290 -0
  854. data/misc/openlayers/lib/OpenLayers/Strategy/Cluster.js +283 -0
  855. data/misc/openlayers/lib/OpenLayers/Strategy/Filter.js +159 -0
  856. data/misc/openlayers/lib/OpenLayers/Strategy/Fixed.js +135 -0
  857. data/misc/openlayers/lib/OpenLayers/Strategy/Paging.js +233 -0
  858. data/misc/openlayers/lib/OpenLayers/Strategy/Refresh.js +141 -0
  859. data/misc/openlayers/lib/OpenLayers/Strategy/Save.js +231 -0
  860. data/misc/openlayers/lib/OpenLayers/Strategy.js +121 -0
  861. data/misc/openlayers/lib/OpenLayers/Style.js +448 -0
  862. data/misc/openlayers/lib/OpenLayers/Style2.js +112 -0
  863. data/misc/openlayers/lib/OpenLayers/StyleMap.js +161 -0
  864. data/misc/openlayers/lib/OpenLayers/Symbolizer/Line.js +74 -0
  865. data/misc/openlayers/lib/OpenLayers/Symbolizer/Point.js +157 -0
  866. data/misc/openlayers/lib/OpenLayers/Symbolizer/Polygon.js +88 -0
  867. data/misc/openlayers/lib/OpenLayers/Symbolizer/Raster.js +34 -0
  868. data/misc/openlayers/lib/OpenLayers/Symbolizer/Text.js +70 -0
  869. data/misc/openlayers/lib/OpenLayers/Symbolizer.js +55 -0
  870. data/misc/openlayers/lib/OpenLayers/Tile/Image/IFrame.js +233 -0
  871. data/misc/openlayers/lib/OpenLayers/Tile/Image.js +510 -0
  872. data/misc/openlayers/lib/OpenLayers/Tile/UTFGrid.js +252 -0
  873. data/misc/openlayers/lib/OpenLayers/Tile.js +292 -0
  874. data/misc/openlayers/lib/OpenLayers/TileManager.js +462 -0
  875. data/misc/openlayers/lib/OpenLayers/Tween.js +361 -0
  876. data/misc/openlayers/lib/OpenLayers/Util/vendorPrefix.js +131 -0
  877. data/misc/openlayers/lib/OpenLayers/Util.js +1773 -0
  878. data/misc/openlayers/lib/OpenLayers/WPSClient.js +223 -0
  879. data/misc/openlayers/lib/OpenLayers/WPSProcess.js +501 -0
  880. data/misc/openlayers/lib/OpenLayers.js +429 -0
  881. data/misc/openlayers/lib/Rico/Color.js +253 -0
  882. data/misc/openlayers/lib/Rico/Corner.js +339 -0
  883. data/misc/openlayers/lib/Rico/license.js +19 -0
  884. data/misc/openlayers/lib/deprecated.js +5842 -0
  885. data/misc/openlayers/license.txt +27 -0
  886. data/misc/openlayers/licenses/APACHE-2.0.txt +202 -0
  887. data/misc/openlayers/licenses/BSD-LICENSE.txt +28 -0
  888. data/misc/openlayers/licenses/MIT-LICENSE.txt +18 -0
  889. data/misc/openlayers/notes/2.12.md +391 -0
  890. data/misc/openlayers/notes/2.13.md +159 -0
  891. data/misc/openlayers/readme.md +79 -0
  892. data/misc/openlayers/tests/Animation.html +96 -0
  893. data/misc/openlayers/tests/BaseTypes/Bounds.html +738 -0
  894. data/misc/openlayers/tests/BaseTypes/Class.html +350 -0
  895. data/misc/openlayers/tests/BaseTypes/Date.html +191 -0
  896. data/misc/openlayers/tests/BaseTypes/Element.html +195 -0
  897. data/misc/openlayers/tests/BaseTypes/LonLat.html +241 -0
  898. data/misc/openlayers/tests/BaseTypes/Pixel.html +123 -0
  899. data/misc/openlayers/tests/BaseTypes/Size.html +67 -0
  900. data/misc/openlayers/tests/BaseTypes.html +387 -0
  901. data/misc/openlayers/tests/Console.html +39 -0
  902. data/misc/openlayers/tests/Control/ArgParser.html +26 -0
  903. data/misc/openlayers/tests/Control/Attribution.html +60 -0
  904. data/misc/openlayers/tests/Control/Button.html +17 -0
  905. data/misc/openlayers/tests/Control/CacheRead.html +108 -0
  906. data/misc/openlayers/tests/Control/CacheWrite.html +90 -0
  907. data/misc/openlayers/tests/Control/DragFeature.html +383 -0
  908. data/misc/openlayers/tests/Control/DragPan.html +104 -0
  909. data/misc/openlayers/tests/Control/DrawFeature.html +160 -0
  910. data/misc/openlayers/tests/Control/EditingToolbar.html +33 -0
  911. data/misc/openlayers/tests/Control/Geolocate.html +129 -0
  912. data/misc/openlayers/tests/Control/GetFeature.html +177 -0
  913. data/misc/openlayers/tests/Control/Graticule.html +66 -0
  914. data/misc/openlayers/tests/Control/KeyboardDefaults.html +173 -0
  915. data/misc/openlayers/tests/Control/LayerSwitcher.html +249 -0
  916. data/misc/openlayers/tests/Control/Measure.html +386 -0
  917. data/misc/openlayers/tests/Control/ModifyFeature.html +828 -0
  918. data/misc/openlayers/tests/Control/MousePosition.html +109 -0
  919. data/misc/openlayers/tests/Control/NavToolbar.html +45 -0
  920. data/misc/openlayers/tests/Control/Navigation.html +200 -0
  921. data/misc/openlayers/tests/Control/NavigationHistory.html +245 -0
  922. data/misc/openlayers/tests/Control/OverviewMap.html +266 -0
  923. data/misc/openlayers/tests/Control/Pan.html +201 -0
  924. data/misc/openlayers/tests/Control/PanPanel.html +61 -0
  925. data/misc/openlayers/tests/Control/PanZoom.html +244 -0
  926. data/misc/openlayers/tests/Control/PanZoomBar.html +245 -0
  927. data/misc/openlayers/tests/Control/Panel.html +382 -0
  928. data/misc/openlayers/tests/Control/Permalink.html +453 -0
  929. data/misc/openlayers/tests/Control/PinchZoom.html +134 -0
  930. data/misc/openlayers/tests/Control/SLDSelect.html +239 -0
  931. data/misc/openlayers/tests/Control/Scale.html +54 -0
  932. data/misc/openlayers/tests/Control/ScaleLine.html +187 -0
  933. data/misc/openlayers/tests/Control/SelectFeature.html +632 -0
  934. data/misc/openlayers/tests/Control/Snapping.html +448 -0
  935. data/misc/openlayers/tests/Control/Split.html +319 -0
  936. data/misc/openlayers/tests/Control/TouchNavigation.html +155 -0
  937. data/misc/openlayers/tests/Control/TransformFeature.html +129 -0
  938. data/misc/openlayers/tests/Control/UTFGrid.html +120 -0
  939. data/misc/openlayers/tests/Control/WMSGetFeatureInfo.html +644 -0
  940. data/misc/openlayers/tests/Control/WMTSGetFeatureInfo.html +334 -0
  941. data/misc/openlayers/tests/Control/Zoom.html +83 -0
  942. data/misc/openlayers/tests/Control/ZoomBox.html +54 -0
  943. data/misc/openlayers/tests/Control/ZoomIn.html +101 -0
  944. data/misc/openlayers/tests/Control/ZoomOut.html +100 -0
  945. data/misc/openlayers/tests/Control/ZoomToMaxExtent.html +102 -0
  946. data/misc/openlayers/tests/Control.html +107 -0
  947. data/misc/openlayers/tests/Events/buttonclick.html +214 -0
  948. data/misc/openlayers/tests/Events/featureclick.html +91 -0
  949. data/misc/openlayers/tests/Events.html +487 -0
  950. data/misc/openlayers/tests/Extras.html +21 -0
  951. data/misc/openlayers/tests/Feature/Vector.html +170 -0
  952. data/misc/openlayers/tests/Feature.html +205 -0
  953. data/misc/openlayers/tests/Filter/Comparison.html +373 -0
  954. data/misc/openlayers/tests/Filter/FeatureId.html +67 -0
  955. data/misc/openlayers/tests/Filter/Logical.html +144 -0
  956. data/misc/openlayers/tests/Filter/Spatial.html +112 -0
  957. data/misc/openlayers/tests/Filter.html +31 -0
  958. data/misc/openlayers/tests/Format/ArcXML/Features.html +69 -0
  959. data/misc/openlayers/tests/Format/ArcXML.html +277 -0
  960. data/misc/openlayers/tests/Format/Atom.html +450 -0
  961. data/misc/openlayers/tests/Format/CQL.html +364 -0
  962. data/misc/openlayers/tests/Format/CSWGetDomain/v2_0_2.html +56 -0
  963. data/misc/openlayers/tests/Format/CSWGetDomain/v2_0_2.js +18 -0
  964. data/misc/openlayers/tests/Format/CSWGetDomain.html +23 -0
  965. data/misc/openlayers/tests/Format/CSWGetRecords/v2_0_2.html +88 -0
  966. data/misc/openlayers/tests/Format/CSWGetRecords/v2_0_2.js +50 -0
  967. data/misc/openlayers/tests/Format/CSWGetRecords.html +23 -0
  968. data/misc/openlayers/tests/Format/EncodedPolyline.html +372 -0
  969. data/misc/openlayers/tests/Format/Filter/v1.html +404 -0
  970. data/misc/openlayers/tests/Format/Filter/v1_0_0.html +295 -0
  971. data/misc/openlayers/tests/Format/Filter/v1_1_0.html +402 -0
  972. data/misc/openlayers/tests/Format/Filter.html +21 -0
  973. data/misc/openlayers/tests/Format/GML/cases.js +232 -0
  974. data/misc/openlayers/tests/Format/GML/v2.html +684 -0
  975. data/misc/openlayers/tests/Format/GML/v3.html +828 -0
  976. data/misc/openlayers/tests/Format/GML.html +462 -0
  977. data/misc/openlayers/tests/Format/GPX.html +179 -0
  978. data/misc/openlayers/tests/Format/GeoJSON.html +468 -0
  979. data/misc/openlayers/tests/Format/GeoRSS.html +122 -0
  980. data/misc/openlayers/tests/Format/JSON.html +53 -0
  981. data/misc/openlayers/tests/Format/KML.html +1437 -0
  982. data/misc/openlayers/tests/Format/OGCExceptionReport.html +100 -0
  983. data/misc/openlayers/tests/Format/OSM.html +115 -0
  984. data/misc/openlayers/tests/Format/OWSCommon/v1_0_0.html +34 -0
  985. data/misc/openlayers/tests/Format/OWSCommon/v1_1_0.html +34 -0
  986. data/misc/openlayers/tests/Format/OWSContext/v0_3_1.html +278 -0
  987. data/misc/openlayers/tests/Format/QueryStringFilter.html +306 -0
  988. data/misc/openlayers/tests/Format/SLD/v1_0_0.html +1028 -0
  989. data/misc/openlayers/tests/Format/SLD/v1_0_0_GeoServer.html +228 -0
  990. data/misc/openlayers/tests/Format/SLD.html +36 -0
  991. data/misc/openlayers/tests/Format/SOSCapabilities/v1_0_0.html +80 -0
  992. data/misc/openlayers/tests/Format/SOSCapabilities/v1_0_0.js +484 -0
  993. data/misc/openlayers/tests/Format/SOSGetFeatureOfInterest.html +80 -0
  994. data/misc/openlayers/tests/Format/SOSGetObservation.html +183 -0
  995. data/misc/openlayers/tests/Format/Text.html +49 -0
  996. data/misc/openlayers/tests/Format/WCSCapabilities/v1.html +87 -0
  997. data/misc/openlayers/tests/Format/WCSCapabilities.html +43 -0
  998. data/misc/openlayers/tests/Format/WCSGetCoverage.html +80 -0
  999. data/misc/openlayers/tests/Format/WFS.html +81 -0
  1000. data/misc/openlayers/tests/Format/WFSCapabilities/v1.html +179 -0
  1001. data/misc/openlayers/tests/Format/WFSCapabilities.html +43 -0
  1002. data/misc/openlayers/tests/Format/WFSDescribeFeatureType.html +436 -0
  1003. data/misc/openlayers/tests/Format/WFST/v1.html +455 -0
  1004. data/misc/openlayers/tests/Format/WFST/v1_0_0.html +135 -0
  1005. data/misc/openlayers/tests/Format/WFST/v1_1_0.html +236 -0
  1006. data/misc/openlayers/tests/Format/WFST.html +23 -0
  1007. data/misc/openlayers/tests/Format/WKT.html +297 -0
  1008. data/misc/openlayers/tests/Format/WMC/v1.html +266 -0
  1009. data/misc/openlayers/tests/Format/WMC/v1_1_0.html +86 -0
  1010. data/misc/openlayers/tests/Format/WMC.html +315 -0
  1011. data/misc/openlayers/tests/Format/WMSCapabilities/v1_1_1.html +5209 -0
  1012. data/misc/openlayers/tests/Format/WMSCapabilities/v1_1_1_WMSC.html +348 -0
  1013. data/misc/openlayers/tests/Format/WMSCapabilities/v1_3_0.html +614 -0
  1014. data/misc/openlayers/tests/Format/WMSCapabilities.html +20 -0
  1015. data/misc/openlayers/tests/Format/WMSDescribeLayer.html +65 -0
  1016. data/misc/openlayers/tests/Format/WMSGetFeatureInfo.html +319 -0
  1017. data/misc/openlayers/tests/Format/WMTSCapabilities/v1_0_0.html +1042 -0
  1018. data/misc/openlayers/tests/Format/WMTSCapabilities.html +20 -0
  1019. data/misc/openlayers/tests/Format/WPSCapabilities/v1_0_0.html +30 -0
  1020. data/misc/openlayers/tests/Format/WPSCapabilities/v1_0_0.js +112 -0
  1021. data/misc/openlayers/tests/Format/WPSDescribeProcess.html +206 -0
  1022. data/misc/openlayers/tests/Format/WPSExecute.html +549 -0
  1023. data/misc/openlayers/tests/Format/XLS/v1_1_0.html +98 -0
  1024. data/misc/openlayers/tests/Format/XML/VersionedOGC.html +51 -0
  1025. data/misc/openlayers/tests/Format/XML.html +900 -0
  1026. data/misc/openlayers/tests/Format.html +23 -0
  1027. data/misc/openlayers/tests/Geometry/Collection.html +431 -0
  1028. data/misc/openlayers/tests/Geometry/Curve.html +157 -0
  1029. data/misc/openlayers/tests/Geometry/LineString.html +443 -0
  1030. data/misc/openlayers/tests/Geometry/LinearRing.html +362 -0
  1031. data/misc/openlayers/tests/Geometry/MultiLineString.html +267 -0
  1032. data/misc/openlayers/tests/Geometry/MultiPoint.html +130 -0
  1033. data/misc/openlayers/tests/Geometry/MultiPolygon.html +34 -0
  1034. data/misc/openlayers/tests/Geometry/Point.html +244 -0
  1035. data/misc/openlayers/tests/Geometry/Polygon.html +420 -0
  1036. data/misc/openlayers/tests/Geometry.html +356 -0
  1037. data/misc/openlayers/tests/Handler/Box.html +106 -0
  1038. data/misc/openlayers/tests/Handler/Click.html +735 -0
  1039. data/misc/openlayers/tests/Handler/Drag.html +603 -0
  1040. data/misc/openlayers/tests/Handler/Feature.html +698 -0
  1041. data/misc/openlayers/tests/Handler/Hover.html +136 -0
  1042. data/misc/openlayers/tests/Handler/Keyboard.html +150 -0
  1043. data/misc/openlayers/tests/Handler/MouseWheel.html +182 -0
  1044. data/misc/openlayers/tests/Handler/Path.html +1464 -0
  1045. data/misc/openlayers/tests/Handler/Pinch.html +285 -0
  1046. data/misc/openlayers/tests/Handler/Point.html +600 -0
  1047. data/misc/openlayers/tests/Handler/Polygon.html +1161 -0
  1048. data/misc/openlayers/tests/Handler/RegularPolygon.html +235 -0
  1049. data/misc/openlayers/tests/Handler.html +265 -0
  1050. data/misc/openlayers/tests/Icon.html +68 -0
  1051. data/misc/openlayers/tests/Kinetic.html +132 -0
  1052. data/misc/openlayers/tests/Lang.html +106 -0
  1053. data/misc/openlayers/tests/Layer/ArcGIS93Rest.html +324 -0
  1054. data/misc/openlayers/tests/Layer/ArcGISCache.html +256 -0
  1055. data/misc/openlayers/tests/Layer/ArcGISCache.json +334 -0
  1056. data/misc/openlayers/tests/Layer/ArcIMS.html +123 -0
  1057. data/misc/openlayers/tests/Layer/Bing.html +200 -0
  1058. data/misc/openlayers/tests/Layer/EventPane.html +172 -0
  1059. data/misc/openlayers/tests/Layer/FixedZoomLevels.html +137 -0
  1060. data/misc/openlayers/tests/Layer/GeoRSS.html +210 -0
  1061. data/misc/openlayers/tests/Layer/Google/v3.html +337 -0
  1062. data/misc/openlayers/tests/Layer/Google.html +369 -0
  1063. data/misc/openlayers/tests/Layer/Grid.html +1593 -0
  1064. data/misc/openlayers/tests/Layer/HTTPRequest.html +229 -0
  1065. data/misc/openlayers/tests/Layer/Image.html +164 -0
  1066. data/misc/openlayers/tests/Layer/KaMap.html +287 -0
  1067. data/misc/openlayers/tests/Layer/MapGuide.html +177 -0
  1068. data/misc/openlayers/tests/Layer/MapServer.html +238 -0
  1069. data/misc/openlayers/tests/Layer/Markers.html +156 -0
  1070. data/misc/openlayers/tests/Layer/OSM.html +16 -0
  1071. data/misc/openlayers/tests/Layer/PointGrid.html +232 -0
  1072. data/misc/openlayers/tests/Layer/PointTrack.html +79 -0
  1073. data/misc/openlayers/tests/Layer/SphericalMercator.html +126 -0
  1074. data/misc/openlayers/tests/Layer/TMS.html +262 -0
  1075. data/misc/openlayers/tests/Layer/Text.html +211 -0
  1076. data/misc/openlayers/tests/Layer/TileCache.html +203 -0
  1077. data/misc/openlayers/tests/Layer/UTFGrid.html +131 -0
  1078. data/misc/openlayers/tests/Layer/Vector/RootContainer.html +63 -0
  1079. data/misc/openlayers/tests/Layer/Vector.html +879 -0
  1080. data/misc/openlayers/tests/Layer/WMS.html +583 -0
  1081. data/misc/openlayers/tests/Layer/WMTS.html +1491 -0
  1082. data/misc/openlayers/tests/Layer/WrapDateLine.html +188 -0
  1083. data/misc/openlayers/tests/Layer/XYZ.html +266 -0
  1084. data/misc/openlayers/tests/Layer/atom-1.0.xml +34 -0
  1085. data/misc/openlayers/tests/Layer/data_Layer_Text_textfile.txt +3 -0
  1086. data/misc/openlayers/tests/Layer/data_Layer_Text_textfile_2.txt +3 -0
  1087. data/misc/openlayers/tests/Layer/data_Layer_Text_textfile_overflow.txt +3 -0
  1088. data/misc/openlayers/tests/Layer/georss.txt +378 -0
  1089. data/misc/openlayers/tests/Layer.html +910 -0
  1090. data/misc/openlayers/tests/Map.html +2255 -0
  1091. data/misc/openlayers/tests/Marker/Box.html +183 -0
  1092. data/misc/openlayers/tests/Marker.html +163 -0
  1093. data/misc/openlayers/tests/OLLoader.js +26 -0
  1094. data/misc/openlayers/tests/OpenLayers1.html +18 -0
  1095. data/misc/openlayers/tests/OpenLayers2.html +19 -0
  1096. data/misc/openlayers/tests/OpenLayers3.html +19 -0
  1097. data/misc/openlayers/tests/OpenLayers4.html +18 -0
  1098. data/misc/openlayers/tests/OpenLayersJsFiles.html +27 -0
  1099. data/misc/openlayers/tests/Popup/Anchored.html +37 -0
  1100. data/misc/openlayers/tests/Popup/FramedCloud.html +18 -0
  1101. data/misc/openlayers/tests/Popup.html +219 -0
  1102. data/misc/openlayers/tests/Projection.html +87 -0
  1103. data/misc/openlayers/tests/Protocol/CSW.html +90 -0
  1104. data/misc/openlayers/tests/Protocol/HTTP.html +842 -0
  1105. data/misc/openlayers/tests/Protocol/SOS.html +57 -0
  1106. data/misc/openlayers/tests/Protocol/Script.html +282 -0
  1107. data/misc/openlayers/tests/Protocol/WFS.html +471 -0
  1108. data/misc/openlayers/tests/Protocol.html +63 -0
  1109. data/misc/openlayers/tests/README.txt +16 -0
  1110. data/misc/openlayers/tests/Renderer/Canvas.html +501 -0
  1111. data/misc/openlayers/tests/Renderer/Elements.html +651 -0
  1112. data/misc/openlayers/tests/Renderer/SVG.html +441 -0
  1113. data/misc/openlayers/tests/Renderer/VML.html +454 -0
  1114. data/misc/openlayers/tests/Renderer.html +96 -0
  1115. data/misc/openlayers/tests/Request/XMLHttpRequest.html +59 -0
  1116. data/misc/openlayers/tests/Request.html +524 -0
  1117. data/misc/openlayers/tests/Rule.html +123 -0
  1118. data/misc/openlayers/tests/SingleFile1.html +15 -0
  1119. data/misc/openlayers/tests/SingleFile2.html +15 -0
  1120. data/misc/openlayers/tests/SingleFile3.html +15 -0
  1121. data/misc/openlayers/tests/Strategy/BBOX.html +361 -0
  1122. data/misc/openlayers/tests/Strategy/Cluster.html +148 -0
  1123. data/misc/openlayers/tests/Strategy/Filter.html +135 -0
  1124. data/misc/openlayers/tests/Strategy/Fixed.html +253 -0
  1125. data/misc/openlayers/tests/Strategy/Paging.html +113 -0
  1126. data/misc/openlayers/tests/Strategy/Refresh.html +177 -0
  1127. data/misc/openlayers/tests/Strategy/Save.html +127 -0
  1128. data/misc/openlayers/tests/Strategy.html +94 -0
  1129. data/misc/openlayers/tests/Style.html +426 -0
  1130. data/misc/openlayers/tests/Style2.html +56 -0
  1131. data/misc/openlayers/tests/StyleMap.html +44 -0
  1132. data/misc/openlayers/tests/Symbolizer/Line.html +42 -0
  1133. data/misc/openlayers/tests/Symbolizer/Point.html +52 -0
  1134. data/misc/openlayers/tests/Symbolizer/Polygon.html +44 -0
  1135. data/misc/openlayers/tests/Symbolizer/Raster.html +32 -0
  1136. data/misc/openlayers/tests/Symbolizer/Text.html +42 -0
  1137. data/misc/openlayers/tests/Symbolizer.html +31 -0
  1138. data/misc/openlayers/tests/Test.AnotherWay.baseadditions.js +191 -0
  1139. data/misc/openlayers/tests/Test.AnotherWay.css +243 -0
  1140. data/misc/openlayers/tests/Test.AnotherWay.geom_eq.js +139 -0
  1141. data/misc/openlayers/tests/Test.AnotherWay.js +2498 -0
  1142. data/misc/openlayers/tests/Test.AnotherWay.xml_eq.js +311 -0
  1143. data/misc/openlayers/tests/Tile/Image/IFrame.html +183 -0
  1144. data/misc/openlayers/tests/Tile/Image.html +490 -0
  1145. data/misc/openlayers/tests/Tile/UTFGrid.html +306 -0
  1146. data/misc/openlayers/tests/Tile.html +130 -0
  1147. data/misc/openlayers/tests/TileManager.html +137 -0
  1148. data/misc/openlayers/tests/Tween.html +116 -0
  1149. data/misc/openlayers/tests/Util/vendorPrefix.html +117 -0
  1150. data/misc/openlayers/tests/Util.html +1180 -0
  1151. data/misc/openlayers/tests/Util_common.js +64 -0
  1152. data/misc/openlayers/tests/Util_w3c.html +35 -0
  1153. data/misc/openlayers/tests/WPSClient.html +108 -0
  1154. data/misc/openlayers/tests/WPSProcess.html +188 -0
  1155. data/misc/openlayers/tests/atom-1.0.xml +34 -0
  1156. data/misc/openlayers/tests/auto-tests.html +2447 -0
  1157. data/misc/openlayers/tests/data/geos_wkt_intersects.js +495 -0
  1158. data/misc/openlayers/tests/data/osm.js +14 -0
  1159. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/0.json +1 -0
  1160. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/1.json +1 -0
  1161. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/2.json +1 -0
  1162. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/0.json +1 -0
  1163. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/1.json +1 -0
  1164. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/2.json +1 -0
  1165. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/0.json +1 -0
  1166. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/1.json +1 -0
  1167. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/2.json +1 -0
  1168. data/misc/openlayers/tests/data/utfgrid/demo-1.1.json +1 -0
  1169. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/0.json +1 -0
  1170. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/1.json +1 -0
  1171. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/2.json +1 -0
  1172. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/0.json +1 -0
  1173. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/1.json +1 -0
  1174. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/2.json +1 -0
  1175. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/0.json +1 -0
  1176. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/1.json +1 -0
  1177. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/2.json +1 -0
  1178. data/misc/openlayers/tests/data_Layer_Text_textfile.txt +3 -0
  1179. data/misc/openlayers/tests/data_Layer_Text_textfile_2.txt +3 -0
  1180. data/misc/openlayers/tests/data_Layer_Text_textfile_overflow.txt +3 -0
  1181. data/misc/openlayers/tests/deprecated/Ajax.html +28 -0
  1182. data/misc/openlayers/tests/deprecated/BaseTypes/Class.html +142 -0
  1183. data/misc/openlayers/tests/deprecated/BaseTypes/Element.html +56 -0
  1184. data/misc/openlayers/tests/deprecated/Control/MouseToolbar.html +60 -0
  1185. data/misc/openlayers/tests/deprecated/Geometry/Rectangle.html +77 -0
  1186. data/misc/openlayers/tests/deprecated/Layer/GML.html +61 -0
  1187. data/misc/openlayers/tests/deprecated/Layer/MapServer/Untiled.html +158 -0
  1188. data/misc/openlayers/tests/deprecated/Layer/MapServer.html +59 -0
  1189. data/misc/openlayers/tests/deprecated/Layer/WFS.html +178 -0
  1190. data/misc/openlayers/tests/deprecated/Layer/WMS/Post.html +89 -0
  1191. data/misc/openlayers/tests/deprecated/Layer/WMS.html +60 -0
  1192. data/misc/openlayers/tests/deprecated/Layer/Yahoo.html +121 -0
  1193. data/misc/openlayers/tests/deprecated/Layer/mice.xml +156 -0
  1194. data/misc/openlayers/tests/deprecated/Layer/owls.xml +156 -0
  1195. data/misc/openlayers/tests/deprecated/Popup/AnchoredBubble.html +61 -0
  1196. data/misc/openlayers/tests/deprecated/Protocol/SQL/Gears.html +474 -0
  1197. data/misc/openlayers/tests/deprecated/Protocol/SQL.html +24 -0
  1198. data/misc/openlayers/tests/deprecated/Renderer/SVG2.html +399 -0
  1199. data/misc/openlayers/tests/deprecated/Tile/WFS.html +215 -0
  1200. data/misc/openlayers/tests/deprecated/Util.html +20 -0
  1201. data/misc/openlayers/tests/georss.txt +378 -0
  1202. data/misc/openlayers/tests/grid_inittiles.html +30 -0
  1203. data/misc/openlayers/tests/index.html +6 -0
  1204. data/misc/openlayers/tests/list-tests.html +260 -0
  1205. data/misc/openlayers/tests/manual/ajax.html +49 -0
  1206. data/misc/openlayers/tests/manual/ajax.txt +1 -0
  1207. data/misc/openlayers/tests/manual/alloverlays-mixed.html +55 -0
  1208. data/misc/openlayers/tests/manual/arcims-2117.html +103 -0
  1209. data/misc/openlayers/tests/manual/arkansas.rss +9 -0
  1210. data/misc/openlayers/tests/manual/big-georss.html +33 -0
  1211. data/misc/openlayers/tests/manual/box-quirks.html +52 -0
  1212. data/misc/openlayers/tests/manual/box-strict.html +46 -0
  1213. data/misc/openlayers/tests/manual/clip-features-svg.html +128 -0
  1214. data/misc/openlayers/tests/manual/dateline-sketch.html +66 -0
  1215. data/misc/openlayers/tests/manual/dateline-smallextent.html +61 -0
  1216. data/misc/openlayers/tests/manual/draw-feature.html +73 -0
  1217. data/misc/openlayers/tests/manual/feature-handler.html +126 -0
  1218. data/misc/openlayers/tests/manual/geodesic.html +160 -0
  1219. data/misc/openlayers/tests/manual/geojson-geomcoll-reprojection.html +74 -0
  1220. data/misc/openlayers/tests/manual/google-fullscreen-overlay.html +54 -0
  1221. data/misc/openlayers/tests/manual/google-panning.html +122 -0
  1222. data/misc/openlayers/tests/manual/google-resize.html +55 -0
  1223. data/misc/openlayers/tests/manual/google-tilt.html +37 -0
  1224. data/misc/openlayers/tests/manual/google-v3-resize.html +54 -0
  1225. data/misc/openlayers/tests/manual/loadend.html +73 -0
  1226. data/misc/openlayers/tests/manual/map-events.html +38 -0
  1227. data/misc/openlayers/tests/manual/memory/Marker-2258.html +60 -0
  1228. data/misc/openlayers/tests/manual/memory/PanZoom-2323.html +41 -0
  1229. data/misc/openlayers/tests/manual/memory/RemoveChild-2170.html +56 -0
  1230. data/misc/openlayers/tests/manual/memory/VML-2170.html +49 -0
  1231. data/misc/openlayers/tests/manual/multiple-google-layers.html +135 -0
  1232. data/misc/openlayers/tests/manual/overviewmap-projection.html +70 -0
  1233. data/misc/openlayers/tests/manual/page-position.html +103 -0
  1234. data/misc/openlayers/tests/manual/pan-redraw-svg.html +58 -0
  1235. data/misc/openlayers/tests/manual/popup-keepInMap.html +100 -0
  1236. data/misc/openlayers/tests/manual/reflow.html +59 -0
  1237. data/misc/openlayers/tests/manual/renderedDimensions.html +113 -0
  1238. data/misc/openlayers/tests/manual/select-feature-right-click.html +86 -0
  1239. data/misc/openlayers/tests/manual/select-feature.html +75 -0
  1240. data/misc/openlayers/tests/manual/tiles-loading.html +122 -0
  1241. data/misc/openlayers/tests/manual/tween.html +82 -0
  1242. data/misc/openlayers/tests/manual/vector-features-performance.html +149 -0
  1243. data/misc/openlayers/tests/manual/vector-layer-zindex.html +143 -0
  1244. data/misc/openlayers/tests/mice.xml +156 -0
  1245. data/misc/openlayers/tests/node.js/mockdom.js +104 -0
  1246. data/misc/openlayers/tests/node.js/node-tests.cfg +12 -0
  1247. data/misc/openlayers/tests/node.js/node.js +1 -0
  1248. data/misc/openlayers/tests/node.js/run-test.js +26 -0
  1249. data/misc/openlayers/tests/node.js/run.sh +10 -0
  1250. data/misc/openlayers/tests/owls.xml +156 -0
  1251. data/misc/openlayers/tests/run-tests.html +155 -0
  1252. data/misc/openlayers/tests/selenium/remotecontrol/config.cfg +48 -0
  1253. data/misc/openlayers/tests/selenium/remotecontrol/selenium.py +1846 -0
  1254. data/misc/openlayers/tests/selenium/remotecontrol/setup.txt +8 -0
  1255. data/misc/openlayers/tests/selenium/remotecontrol/test_ol.py +95 -0
  1256. data/misc/openlayers/tests/speed/geometry.html +43 -0
  1257. data/misc/openlayers/tests/speed/string_format.html +29 -0
  1258. data/misc/openlayers/tests/speed/vector-renderers.html +25 -0
  1259. data/misc/openlayers/tests/speed/vector-renderers.js +70 -0
  1260. data/misc/openlayers/tests/speed/wmc_speed.html +30 -0
  1261. data/misc/openlayers/tests/speed/wmscaps.html +52 -0
  1262. data/misc/openlayers/tests/speed/wmscaps.js +4956 -0
  1263. data/misc/openlayers/tests/speed/wmscaps.xml +4954 -0
  1264. data/misc/openlayers/tests/throws.js +82 -0
  1265. data/misc/openlayers/theme/default/google.css +9 -0
  1266. data/misc/openlayers/theme/default/google.tidy.css +1 -0
  1267. data/misc/openlayers/theme/default/ie6-style.css +10 -0
  1268. data/misc/openlayers/theme/default/ie6-style.tidy.css +1 -0
  1269. data/misc/openlayers/theme/default/img/add_point_off.png +0 -0
  1270. data/misc/openlayers/theme/default/img/add_point_on.png +0 -0
  1271. data/misc/openlayers/theme/default/img/blank.gif +0 -0
  1272. data/misc/openlayers/theme/default/img/close.gif +0 -0
  1273. data/misc/openlayers/theme/default/img/drag-rectangle-off.png +0 -0
  1274. data/misc/openlayers/theme/default/img/drag-rectangle-on.png +0 -0
  1275. data/misc/openlayers/theme/default/img/draw_line_off.png +0 -0
  1276. data/misc/openlayers/theme/default/img/draw_line_on.png +0 -0
  1277. data/misc/openlayers/theme/default/img/draw_point_off.png +0 -0
  1278. data/misc/openlayers/theme/default/img/draw_point_on.png +0 -0
  1279. data/misc/openlayers/theme/default/img/draw_polygon_off.png +0 -0
  1280. data/misc/openlayers/theme/default/img/draw_polygon_on.png +0 -0
  1281. data/misc/openlayers/theme/default/img/editing_tool_bar.png +0 -0
  1282. data/misc/openlayers/theme/default/img/move_feature_off.png +0 -0
  1283. data/misc/openlayers/theme/default/img/move_feature_on.png +0 -0
  1284. data/misc/openlayers/theme/default/img/navigation_history.png +0 -0
  1285. data/misc/openlayers/theme/default/img/overview_replacement.gif +0 -0
  1286. data/misc/openlayers/theme/default/img/pan-panel-NOALPHA.png +0 -0
  1287. data/misc/openlayers/theme/default/img/pan-panel.png +0 -0
  1288. data/misc/openlayers/theme/default/img/pan_off.png +0 -0
  1289. data/misc/openlayers/theme/default/img/pan_on.png +0 -0
  1290. data/misc/openlayers/theme/default/img/panning-hand-off.png +0 -0
  1291. data/misc/openlayers/theme/default/img/panning-hand-on.png +0 -0
  1292. data/misc/openlayers/theme/default/img/remove_point_off.png +0 -0
  1293. data/misc/openlayers/theme/default/img/remove_point_on.png +0 -0
  1294. data/misc/openlayers/theme/default/img/ruler.png +0 -0
  1295. data/misc/openlayers/theme/default/img/save_features_off.png +0 -0
  1296. data/misc/openlayers/theme/default/img/save_features_on.png +0 -0
  1297. data/misc/openlayers/theme/default/img/view_next_off.png +0 -0
  1298. data/misc/openlayers/theme/default/img/view_next_on.png +0 -0
  1299. data/misc/openlayers/theme/default/img/view_previous_off.png +0 -0
  1300. data/misc/openlayers/theme/default/img/view_previous_on.png +0 -0
  1301. data/misc/openlayers/theme/default/img/zoom-panel-NOALPHA.png +0 -0
  1302. data/misc/openlayers/theme/default/img/zoom-panel.png +0 -0
  1303. data/misc/openlayers/theme/default/style.css +516 -0
  1304. data/misc/openlayers/theme/default/style.mobile.css +70 -0
  1305. data/misc/openlayers/theme/default/style.mobile.tidy.css +1 -0
  1306. data/misc/openlayers/theme/default/style.tidy.css +1 -0
  1307. data/misc/openlayers/tools/BeautifulSoup.py +1767 -0
  1308. data/misc/openlayers/tools/README.txt +14 -0
  1309. data/misc/openlayers/tools/closure_library_jscompiler.py +71 -0
  1310. data/misc/openlayers/tools/closure_ws.py +28 -0
  1311. data/misc/openlayers/tools/exampleparser.py +251 -0
  1312. data/misc/openlayers/tools/jsmin.c +272 -0
  1313. data/misc/openlayers/tools/jsmin.py +216 -0
  1314. data/misc/openlayers/tools/mergejs.py +287 -0
  1315. data/misc/openlayers/tools/minimize.py +47 -0
  1316. data/misc/openlayers/tools/oldot.py +43 -0
  1317. data/misc/openlayers/tools/release.sh +71 -0
  1318. data/misc/openlayers/tools/shrinksafe.py +54 -0
  1319. data/misc/openlayers/tools/toposort.py +35 -0
  1320. data/misc/openlayers/tools/uglify_js.py +35 -0
  1321. data/misc/openlayers/tools/update_dev_dir.sh +103 -0
  1322. metadata +1320 -2
@@ -0,0 +1,8 @@
1
+ /* Javascript plotting library for jQuery, version 0.8.3.
2
+
3
+ Copyright (c) 2007-2014 IOLA and Ole Laursen.
4
+ Licensed under the MIT license.
5
+
6
+ */
7
+ (function($){$.color={};$.color.make=function(r,g,b,a){var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d){for(var i=0;i<c.length;++i)o[c.charAt(i)]+=d;return o.normalize()};o.scale=function(c,f){for(var i=0;i<c.length;++i)o[c.charAt(i)]*=f;return o.normalize()};o.toString=function(){if(o.a>=1){return"rgb("+[o.r,o.g,o.b].join(",")+")"}else{return"rgba("+[o.r,o.g,o.b,o.a].join(",")+")"}};o.normalize=function(){function clamp(min,value,max){return value<min?min:value>max?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=""&&c!="transparent")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),"body"));if(c=="rgba(0, 0, 0, 0)")c="transparent";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);(function($){var hasOwnProperty=Object.prototype.hasOwnProperty;if(!$.fn.detach){$.fn.detach=function(){return this.each(function(){if(this.parentNode){this.parentNode.removeChild(this)}})}}function Canvas(cls,container){var element=container.children("."+cls)[0];if(element==null){element=document.createElement("canvas");element.className=cls;$(element).css({direction:"ltr",position:"absolute",left:0,top:0}).appendTo(container);if(!element.getContext){if(window.G_vmlCanvasManager){element=window.G_vmlCanvasManager.initElement(element)}else{throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.")}}}this.element=element;var context=this.context=element.getContext("2d");var devicePixelRatio=window.devicePixelRatio||1,backingStoreRatio=context.webkitBackingStorePixelRatio||context.mozBackingStorePixelRatio||context.msBackingStorePixelRatio||context.oBackingStorePixelRatio||context.backingStorePixelRatio||1;this.pixelRatio=devicePixelRatio/backingStoreRatio;this.resize(container.width(),container.height());this.textContainer=null;this.text={};this._textCache={}}Canvas.prototype.resize=function(width,height){if(width<=0||height<=0){throw new Error("Invalid dimensions for plot, width = "+width+", height = "+height)}var element=this.element,context=this.context,pixelRatio=this.pixelRatio;if(this.width!=width){element.width=width*pixelRatio;element.style.width=width+"px";this.width=width}if(this.height!=height){element.height=height*pixelRatio;element.style.height=height+"px";this.height=height}context.restore();context.save();context.scale(pixelRatio,pixelRatio)};Canvas.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)};Canvas.prototype.render=function(){var cache=this._textCache;for(var layerKey in cache){if(hasOwnProperty.call(cache,layerKey)){var layer=this.getTextLayer(layerKey),layerCache=cache[layerKey];layer.hide();for(var styleKey in layerCache){if(hasOwnProperty.call(layerCache,styleKey)){var styleCache=layerCache[styleKey];for(var key in styleCache){if(hasOwnProperty.call(styleCache,key)){var positions=styleCache[key].positions;for(var i=0,position;position=positions[i];i++){if(position.active){if(!position.rendered){layer.append(position.element);position.rendered=true}}else{positions.splice(i--,1);if(position.rendered){position.element.detach()}}}if(positions.length==0){delete styleCache[key]}}}}}layer.show()}}};Canvas.prototype.getTextLayer=function(classes){var layer=this.text[classes];if(layer==null){if(this.textContainer==null){this.textContainer=$("<div class='flot-text'></div>").css({position:"absolute",top:0,left:0,bottom:0,right:0,"font-size":"smaller",color:"#545454"}).insertAfter(this.element)}layer=this.text[classes]=$("<div></div>").addClass(classes).css({position:"absolute",top:0,left:0,bottom:0,right:0}).appendTo(this.textContainer)}return layer};Canvas.prototype.getTextInfo=function(layer,text,font,angle,width){var textStyle,layerCache,styleCache,info;text=""+text;if(typeof font==="object"){textStyle=font.style+" "+font.variant+" "+font.weight+" "+font.size+"px/"+font.lineHeight+"px "+font.family}else{textStyle=font}layerCache=this._textCache[layer];if(layerCache==null){layerCache=this._textCache[layer]={}}styleCache=layerCache[textStyle];if(styleCache==null){styleCache=layerCache[textStyle]={}}info=styleCache[text];if(info==null){var element=$("<div></div>").html(text).css({position:"absolute","max-width":width,top:-9999}).appendTo(this.getTextLayer(layer));if(typeof font==="object"){element.css({font:textStyle,color:font.color})}else if(typeof font==="string"){element.addClass(font)}info=styleCache[text]={width:element.outerWidth(true),height:element.outerHeight(true),element:element,positions:[]};element.detach()}return info};Canvas.prototype.addText=function(layer,x,y,text,font,angle,width,halign,valign){var info=this.getTextInfo(layer,text,font,angle,width),positions=info.positions;if(halign=="center"){x-=info.width/2}else if(halign=="right"){x-=info.width}if(valign=="middle"){y-=info.height/2}else if(valign=="bottom"){y-=info.height}for(var i=0,position;position=positions[i];i++){if(position.x==x&&position.y==y){position.active=true;return}}position={active:true,rendered:false,element:positions.length?info.element.clone():info.element,x:x,y:y};positions.push(position);position.element.css({top:Math.round(y),left:Math.round(x),"text-align":halign})};Canvas.prototype.removeText=function(layer,x,y,text,font,angle){if(text==null){var layerCache=this._textCache[layer];if(layerCache!=null){for(var styleKey in layerCache){if(hasOwnProperty.call(layerCache,styleKey)){var styleCache=layerCache[styleKey];for(var key in styleCache){if(hasOwnProperty.call(styleCache,key)){var positions=styleCache[key].positions;for(var i=0,position;position=positions[i];i++){position.active=false}}}}}}}else{var positions=this.getTextInfo(layer,text,font,angle).positions;for(var i=0,position;position=positions[i];i++){if(position.x==x&&position.y==y){position.active=false}}}};function Plot(placeholder,data_,options_,plugins){var series=[],options={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:.85,sorted:null},xaxis:{show:null,position:"bottom",mode:null,font:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null},yaxis:{autoscaleMargin:.02,position:"left"},xaxes:[],yaxes:[],series:{points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left",horizontal:false,zero:true},shadowSize:3,highlightColor:null},grid:{show:true,aboveData:false,color:"#545454",backgroundColor:null,borderColor:null,tickColor:null,margin:0,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},interaction:{redrawOverlayInterval:1e3/60},hooks:{}},surface=null,overlay=null,eventHolder=null,ctx=null,octx=null,xaxes=[],yaxes=[],plotOffset={left:0,right:0,top:0,bottom:0},plotWidth=0,plotHeight=0,hooks={processOptions:[],processRawData:[],processDatapoints:[],processOffset:[],drawBackground:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},plot=this;plot.setData=setData;plot.setupGrid=setupGrid;plot.draw=draw;plot.getPlaceholder=function(){return placeholder};plot.getCanvas=function(){return surface.element};plot.getPlotOffset=function(){return plotOffset};plot.width=function(){return plotWidth};plot.height=function(){return plotHeight};plot.offset=function(){var o=eventHolder.offset();o.left+=plotOffset.left;o.top+=plotOffset.top;return o};plot.getData=function(){return series};plot.getAxes=function(){var res={},i;$.each(xaxes.concat(yaxes),function(_,axis){if(axis)res[axis.direction+(axis.n!=1?axis.n:"")+"axis"]=axis});return res};plot.getXAxes=function(){return xaxes};plot.getYAxes=function(){return yaxes};plot.c2p=canvasToAxisCoords;plot.p2c=axisToCanvasCoords;plot.getOptions=function(){return options};plot.highlight=highlight;plot.unhighlight=unhighlight;plot.triggerRedrawOverlay=triggerRedrawOverlay;plot.pointOffset=function(point){return{left:parseInt(xaxes[axisNumber(point,"x")-1].p2c(+point.x)+plotOffset.left,10),top:parseInt(yaxes[axisNumber(point,"y")-1].p2c(+point.y)+plotOffset.top,10)}};plot.shutdown=shutdown;plot.destroy=function(){shutdown();placeholder.removeData("plot").empty();series=[];options=null;surface=null;overlay=null;eventHolder=null;ctx=null;octx=null;xaxes=[];yaxes=[];hooks=null;highlights=[];plot=null};plot.resize=function(){var width=placeholder.width(),height=placeholder.height();surface.resize(width,height);overlay.resize(width,height)};plot.hooks=hooks;initPlugins(plot);parseOptions(options_);setupCanvases();setData(data_);setupGrid();draw();bindEvents();function executeHooks(hook,args){args=[plot].concat(args);for(var i=0;i<hook.length;++i)hook[i].apply(this,args)}function initPlugins(){var classes={Canvas:Canvas};for(var i=0;i<plugins.length;++i){var p=plugins[i];p.init(plot,classes);if(p.options)$.extend(true,options,p.options)}}function parseOptions(opts){$.extend(true,options,opts);if(opts&&opts.colors){options.colors=opts.colors}if(options.xaxis.color==null)options.xaxis.color=$.color.parse(options.grid.color).scale("a",.22).toString();if(options.yaxis.color==null)options.yaxis.color=$.color.parse(options.grid.color).scale("a",.22).toString();if(options.xaxis.tickColor==null)options.xaxis.tickColor=options.grid.tickColor||options.xaxis.color;if(options.yaxis.tickColor==null)options.yaxis.tickColor=options.grid.tickColor||options.yaxis.color;if(options.grid.borderColor==null)options.grid.borderColor=options.grid.color;if(options.grid.tickColor==null)options.grid.tickColor=$.color.parse(options.grid.color).scale("a",.22).toString();var i,axisOptions,axisCount,fontSize=placeholder.css("font-size"),fontSizeDefault=fontSize?+fontSize.replace("px",""):13,fontDefaults={style:placeholder.css("font-style"),size:Math.round(.8*fontSizeDefault),variant:placeholder.css("font-variant"),weight:placeholder.css("font-weight"),family:placeholder.css("font-family")};axisCount=options.xaxes.length||1;for(i=0;i<axisCount;++i){axisOptions=options.xaxes[i];if(axisOptions&&!axisOptions.tickColor){axisOptions.tickColor=axisOptions.color}axisOptions=$.extend(true,{},options.xaxis,axisOptions);options.xaxes[i]=axisOptions;if(axisOptions.font){axisOptions.font=$.extend({},fontDefaults,axisOptions.font);if(!axisOptions.font.color){axisOptions.font.color=axisOptions.color}if(!axisOptions.font.lineHeight){axisOptions.font.lineHeight=Math.round(axisOptions.font.size*1.15)}}}axisCount=options.yaxes.length||1;for(i=0;i<axisCount;++i){axisOptions=options.yaxes[i];if(axisOptions&&!axisOptions.tickColor){axisOptions.tickColor=axisOptions.color}axisOptions=$.extend(true,{},options.yaxis,axisOptions);options.yaxes[i]=axisOptions;if(axisOptions.font){axisOptions.font=$.extend({},fontDefaults,axisOptions.font);if(!axisOptions.font.color){axisOptions.font.color=axisOptions.color}if(!axisOptions.font.lineHeight){axisOptions.font.lineHeight=Math.round(axisOptions.font.size*1.15)}}}if(options.xaxis.noTicks&&options.xaxis.ticks==null)options.xaxis.ticks=options.xaxis.noTicks;if(options.yaxis.noTicks&&options.yaxis.ticks==null)options.yaxis.ticks=options.yaxis.noTicks;if(options.x2axis){options.xaxes[1]=$.extend(true,{},options.xaxis,options.x2axis);options.xaxes[1].position="top";if(options.x2axis.min==null){options.xaxes[1].min=null}if(options.x2axis.max==null){options.xaxes[1].max=null}}if(options.y2axis){options.yaxes[1]=$.extend(true,{},options.yaxis,options.y2axis);options.yaxes[1].position="right";if(options.y2axis.min==null){options.yaxes[1].min=null}if(options.y2axis.max==null){options.yaxes[1].max=null}}if(options.grid.coloredAreas)options.grid.markings=options.grid.coloredAreas;if(options.grid.coloredAreasColor)options.grid.markingsColor=options.grid.coloredAreasColor;if(options.lines)$.extend(true,options.series.lines,options.lines);if(options.points)$.extend(true,options.series.points,options.points);if(options.bars)$.extend(true,options.series.bars,options.bars);if(options.shadowSize!=null)options.series.shadowSize=options.shadowSize;if(options.highlightColor!=null)options.series.highlightColor=options.highlightColor;for(i=0;i<options.xaxes.length;++i)getOrCreateAxis(xaxes,i+1).options=options.xaxes[i];for(i=0;i<options.yaxes.length;++i)getOrCreateAxis(yaxes,i+1).options=options.yaxes[i];for(var n in hooks)if(options.hooks[n]&&options.hooks[n].length)hooks[n]=hooks[n].concat(options.hooks[n]);executeHooks(hooks.processOptions,[options])}function setData(d){series=parseData(d);fillInSeriesOptions();processData()}function parseData(d){var res=[];for(var i=0;i<d.length;++i){var s=$.extend(true,{},options.series);if(d[i].data!=null){s.data=d[i].data;delete d[i].data;$.extend(true,s,d[i]);d[i].data=s.data}else s.data=d[i];res.push(s)}return res}function axisNumber(obj,coord){var a=obj[coord+"axis"];if(typeof a=="object")a=a.n;if(typeof a!="number")a=1;return a}function allAxes(){return $.grep(xaxes.concat(yaxes),function(a){return a})}function canvasToAxisCoords(pos){var res={},i,axis;for(i=0;i<xaxes.length;++i){axis=xaxes[i];if(axis&&axis.used)res["x"+axis.n]=axis.c2p(pos.left)}for(i=0;i<yaxes.length;++i){axis=yaxes[i];if(axis&&axis.used)res["y"+axis.n]=axis.c2p(pos.top)}if(res.x1!==undefined)res.x=res.x1;if(res.y1!==undefined)res.y=res.y1;return res}function axisToCanvasCoords(pos){var res={},i,axis,key;for(i=0;i<xaxes.length;++i){axis=xaxes[i];if(axis&&axis.used){key="x"+axis.n;if(pos[key]==null&&axis.n==1)key="x";if(pos[key]!=null){res.left=axis.p2c(pos[key]);break}}}for(i=0;i<yaxes.length;++i){axis=yaxes[i];if(axis&&axis.used){key="y"+axis.n;if(pos[key]==null&&axis.n==1)key="y";if(pos[key]!=null){res.top=axis.p2c(pos[key]);break}}}return res}function getOrCreateAxis(axes,number){if(!axes[number-1])axes[number-1]={n:number,direction:axes==xaxes?"x":"y",options:$.extend(true,{},axes==xaxes?options.xaxis:options.yaxis)};return axes[number-1]}function fillInSeriesOptions(){var neededColors=series.length,maxIndex=-1,i;for(i=0;i<series.length;++i){var sc=series[i].color;if(sc!=null){neededColors--;if(typeof sc=="number"&&sc>maxIndex){maxIndex=sc}}}if(neededColors<=maxIndex){neededColors=maxIndex+1}var c,colors=[],colorPool=options.colors,colorPoolSize=colorPool.length,variation=0;for(i=0;i<neededColors;i++){c=$.color.parse(colorPool[i%colorPoolSize]||"#666");if(i%colorPoolSize==0&&i){if(variation>=0){if(variation<.5){variation=-variation-.2}else variation=0}else variation=-variation}colors[i]=c.scale("rgb",1+variation)}var colori=0,s;for(i=0;i<series.length;++i){s=series[i];if(s.color==null){s.color=colors[colori].toString();++colori}else if(typeof s.color=="number")s.color=colors[s.color].toString();if(s.lines.show==null){var v,show=true;for(v in s)if(s[v]&&s[v].show){show=false;break}if(show)s.lines.show=true}if(s.lines.zero==null){s.lines.zero=!!s.lines.fill}s.xaxis=getOrCreateAxis(xaxes,axisNumber(s,"x"));s.yaxis=getOrCreateAxis(yaxes,axisNumber(s,"y"))}}function processData(){var topSentry=Number.POSITIVE_INFINITY,bottomSentry=Number.NEGATIVE_INFINITY,fakeInfinity=Number.MAX_VALUE,i,j,k,m,length,s,points,ps,x,y,axis,val,f,p,data,format;function updateAxis(axis,min,max){if(min<axis.datamin&&min!=-fakeInfinity)axis.datamin=min;if(max>axis.datamax&&max!=fakeInfinity)axis.datamax=max}$.each(allAxes(),function(_,axis){axis.datamin=topSentry;axis.datamax=bottomSentry;axis.used=false});for(i=0;i<series.length;++i){s=series[i];s.datapoints={points:[]};executeHooks(hooks.processRawData,[s,s.data,s.datapoints])}for(i=0;i<series.length;++i){s=series[i];data=s.data;format=s.datapoints.format;if(!format){format=[];format.push({x:true,number:true,required:true});format.push({y:true,number:true,required:true});if(s.bars.show||s.lines.show&&s.lines.fill){var autoscale=!!(s.bars.show&&s.bars.zero||s.lines.show&&s.lines.zero);format.push({y:true,number:true,required:false,defaultValue:0,autoscale:autoscale});if(s.bars.horizontal){delete format[format.length-1].y;format[format.length-1].x=true}}s.datapoints.format=format}if(s.datapoints.pointsize!=null)continue;s.datapoints.pointsize=format.length;ps=s.datapoints.pointsize;points=s.datapoints.points;var insertSteps=s.lines.show&&s.lines.steps;s.xaxis.used=s.yaxis.used=true;for(j=k=0;j<data.length;++j,k+=ps){p=data[j];var nullify=p==null;if(!nullify){for(m=0;m<ps;++m){val=p[m];f=format[m];if(f){if(f.number&&val!=null){val=+val;if(isNaN(val))val=null;else if(val==Infinity)val=fakeInfinity;else if(val==-Infinity)val=-fakeInfinity}if(val==null){if(f.required)nullify=true;if(f.defaultValue!=null)val=f.defaultValue}}points[k+m]=val}}if(nullify){for(m=0;m<ps;++m){val=points[k+m];if(val!=null){f=format[m];if(f.autoscale!==false){if(f.x){updateAxis(s.xaxis,val,val)}if(f.y){updateAxis(s.yaxis,val,val)}}}points[k+m]=null}}else{if(insertSteps&&k>0&&points[k-ps]!=null&&points[k-ps]!=points[k]&&points[k-ps+1]!=points[k+1]){for(m=0;m<ps;++m)points[k+ps+m]=points[k+m];points[k+1]=points[k-ps+1];k+=ps}}}}for(i=0;i<series.length;++i){s=series[i];executeHooks(hooks.processDatapoints,[s,s.datapoints])}for(i=0;i<series.length;++i){s=series[i];points=s.datapoints.points;ps=s.datapoints.pointsize;format=s.datapoints.format;var xmin=topSentry,ymin=topSentry,xmax=bottomSentry,ymax=bottomSentry;for(j=0;j<points.length;j+=ps){if(points[j]==null)continue;for(m=0;m<ps;++m){val=points[j+m];f=format[m];if(!f||f.autoscale===false||val==fakeInfinity||val==-fakeInfinity)continue;if(f.x){if(val<xmin)xmin=val;if(val>xmax)xmax=val}if(f.y){if(val<ymin)ymin=val;if(val>ymax)ymax=val}}}if(s.bars.show){var delta;switch(s.bars.align){case"left":delta=0;break;case"right":delta=-s.bars.barWidth;break;default:delta=-s.bars.barWidth/2}if(s.bars.horizontal){ymin+=delta;ymax+=delta+s.bars.barWidth}else{xmin+=delta;xmax+=delta+s.bars.barWidth}}updateAxis(s.xaxis,xmin,xmax);updateAxis(s.yaxis,ymin,ymax)}$.each(allAxes(),function(_,axis){if(axis.datamin==topSentry)axis.datamin=null;if(axis.datamax==bottomSentry)axis.datamax=null})}function setupCanvases(){placeholder.css("padding",0).children().filter(function(){return!$(this).hasClass("flot-overlay")&&!$(this).hasClass("flot-base")}).remove();if(placeholder.css("position")=="static")placeholder.css("position","relative");surface=new Canvas("flot-base",placeholder);overlay=new Canvas("flot-overlay",placeholder);ctx=surface.context;octx=overlay.context;eventHolder=$(overlay.element).unbind();var existing=placeholder.data("plot");if(existing){existing.shutdown();overlay.clear()}placeholder.data("plot",plot)}function bindEvents(){if(options.grid.hoverable){eventHolder.mousemove(onMouseMove);eventHolder.bind("mouseleave",onMouseLeave)}if(options.grid.clickable)eventHolder.click(onClick);executeHooks(hooks.bindEvents,[eventHolder])}function shutdown(){if(redrawTimeout)clearTimeout(redrawTimeout);eventHolder.unbind("mousemove",onMouseMove);eventHolder.unbind("mouseleave",onMouseLeave);eventHolder.unbind("click",onClick);executeHooks(hooks.shutdown,[eventHolder])}function setTransformationHelpers(axis){function identity(x){return x}var s,m,t=axis.options.transform||identity,it=axis.options.inverseTransform;if(axis.direction=="x"){s=axis.scale=plotWidth/Math.abs(t(axis.max)-t(axis.min));m=Math.min(t(axis.max),t(axis.min))}else{s=axis.scale=plotHeight/Math.abs(t(axis.max)-t(axis.min));s=-s;m=Math.max(t(axis.max),t(axis.min))}if(t==identity)axis.p2c=function(p){return(p-m)*s};else axis.p2c=function(p){return(t(p)-m)*s};if(!it)axis.c2p=function(c){return m+c/s};else axis.c2p=function(c){return it(m+c/s)}}function measureTickLabels(axis){var opts=axis.options,ticks=axis.ticks||[],labelWidth=opts.labelWidth||0,labelHeight=opts.labelHeight||0,maxWidth=labelWidth||(axis.direction=="x"?Math.floor(surface.width/(ticks.length||1)):null),legacyStyles=axis.direction+"Axis "+axis.direction+axis.n+"Axis",layer="flot-"+axis.direction+"-axis flot-"+axis.direction+axis.n+"-axis "+legacyStyles,font=opts.font||"flot-tick-label tickLabel";for(var i=0;i<ticks.length;++i){var t=ticks[i];if(!t.label)continue;var info=surface.getTextInfo(layer,t.label,font,null,maxWidth);labelWidth=Math.max(labelWidth,info.width);labelHeight=Math.max(labelHeight,info.height)}axis.labelWidth=opts.labelWidth||labelWidth;axis.labelHeight=opts.labelHeight||labelHeight}function allocateAxisBoxFirstPhase(axis){var lw=axis.labelWidth,lh=axis.labelHeight,pos=axis.options.position,isXAxis=axis.direction==="x",tickLength=axis.options.tickLength,axisMargin=options.grid.axisMargin,padding=options.grid.labelMargin,innermost=true,outermost=true,first=true,found=false;$.each(isXAxis?xaxes:yaxes,function(i,a){if(a&&(a.show||a.reserveSpace)){if(a===axis){found=true}else if(a.options.position===pos){if(found){outermost=false}else{innermost=false}}if(!found){first=false}}});if(outermost){axisMargin=0}if(tickLength==null){tickLength=first?"full":5}if(!isNaN(+tickLength))padding+=+tickLength;if(isXAxis){lh+=padding;if(pos=="bottom"){plotOffset.bottom+=lh+axisMargin;axis.box={top:surface.height-plotOffset.bottom,height:lh}}else{axis.box={top:plotOffset.top+axisMargin,height:lh};plotOffset.top+=lh+axisMargin}}else{lw+=padding;if(pos=="left"){axis.box={left:plotOffset.left+axisMargin,width:lw};plotOffset.left+=lw+axisMargin}else{plotOffset.right+=lw+axisMargin;axis.box={left:surface.width-plotOffset.right,width:lw}}}axis.position=pos;axis.tickLength=tickLength;axis.box.padding=padding;axis.innermost=innermost}function allocateAxisBoxSecondPhase(axis){if(axis.direction=="x"){axis.box.left=plotOffset.left-axis.labelWidth/2;axis.box.width=surface.width-plotOffset.left-plotOffset.right+axis.labelWidth}else{axis.box.top=plotOffset.top-axis.labelHeight/2;axis.box.height=surface.height-plotOffset.bottom-plotOffset.top+axis.labelHeight}}function adjustLayoutForThingsStickingOut(){var minMargin=options.grid.minBorderMargin,axis,i;if(minMargin==null){minMargin=0;for(i=0;i<series.length;++i)minMargin=Math.max(minMargin,2*(series[i].points.radius+series[i].points.lineWidth/2))}var margins={left:minMargin,right:minMargin,top:minMargin,bottom:minMargin};$.each(allAxes(),function(_,axis){if(axis.reserveSpace&&axis.ticks&&axis.ticks.length){if(axis.direction==="x"){margins.left=Math.max(margins.left,axis.labelWidth/2);margins.right=Math.max(margins.right,axis.labelWidth/2)}else{margins.bottom=Math.max(margins.bottom,axis.labelHeight/2);margins.top=Math.max(margins.top,axis.labelHeight/2)}}});plotOffset.left=Math.ceil(Math.max(margins.left,plotOffset.left));plotOffset.right=Math.ceil(Math.max(margins.right,plotOffset.right));plotOffset.top=Math.ceil(Math.max(margins.top,plotOffset.top));plotOffset.bottom=Math.ceil(Math.max(margins.bottom,plotOffset.bottom))}function setupGrid(){var i,axes=allAxes(),showGrid=options.grid.show;for(var a in plotOffset){var margin=options.grid.margin||0;plotOffset[a]=typeof margin=="number"?margin:margin[a]||0}executeHooks(hooks.processOffset,[plotOffset]);for(var a in plotOffset){if(typeof options.grid.borderWidth=="object"){plotOffset[a]+=showGrid?options.grid.borderWidth[a]:0}else{plotOffset[a]+=showGrid?options.grid.borderWidth:0}}$.each(axes,function(_,axis){var axisOpts=axis.options;axis.show=axisOpts.show==null?axis.used:axisOpts.show;axis.reserveSpace=axisOpts.reserveSpace==null?axis.show:axisOpts.reserveSpace;setRange(axis)});if(showGrid){var allocatedAxes=$.grep(axes,function(axis){return axis.show||axis.reserveSpace});$.each(allocatedAxes,function(_,axis){setupTickGeneration(axis);setTicks(axis);snapRangeToTicks(axis,axis.ticks);measureTickLabels(axis)});for(i=allocatedAxes.length-1;i>=0;--i)allocateAxisBoxFirstPhase(allocatedAxes[i]);adjustLayoutForThingsStickingOut();$.each(allocatedAxes,function(_,axis){allocateAxisBoxSecondPhase(axis)})}plotWidth=surface.width-plotOffset.left-plotOffset.right;plotHeight=surface.height-plotOffset.bottom-plotOffset.top;$.each(axes,function(_,axis){setTransformationHelpers(axis)});if(showGrid){drawAxisLabels()}insertLegend()}function setRange(axis){var opts=axis.options,min=+(opts.min!=null?opts.min:axis.datamin),max=+(opts.max!=null?opts.max:axis.datamax),delta=max-min;if(delta==0){var widen=max==0?1:.01;if(opts.min==null)min-=widen;if(opts.max==null||opts.min!=null)max+=widen}else{var margin=opts.autoscaleMargin;if(margin!=null){if(opts.min==null){min-=delta*margin;if(min<0&&axis.datamin!=null&&axis.datamin>=0)min=0}if(opts.max==null){max+=delta*margin;if(max>0&&axis.datamax!=null&&axis.datamax<=0)max=0}}}axis.min=min;axis.max=max}function setupTickGeneration(axis){var opts=axis.options;var noTicks;if(typeof opts.ticks=="number"&&opts.ticks>0)noTicks=opts.ticks;else noTicks=.3*Math.sqrt(axis.direction=="x"?surface.width:surface.height);var delta=(axis.max-axis.min)/noTicks,dec=-Math.floor(Math.log(delta)/Math.LN10),maxDec=opts.tickDecimals;if(maxDec!=null&&dec>maxDec){dec=maxDec}var magn=Math.pow(10,-dec),norm=delta/magn,size;if(norm<1.5){size=1}else if(norm<3){size=2;if(norm>2.25&&(maxDec==null||dec+1<=maxDec)){size=2.5;++dec}}else if(norm<7.5){size=5}else{size=10}size*=magn;if(opts.minTickSize!=null&&size<opts.minTickSize){size=opts.minTickSize}axis.delta=delta;axis.tickDecimals=Math.max(0,maxDec!=null?maxDec:dec);axis.tickSize=opts.tickSize||size;if(opts.mode=="time"&&!axis.tickGenerator){throw new Error("Time mode requires the flot.time plugin.")}if(!axis.tickGenerator){axis.tickGenerator=function(axis){var ticks=[],start=floorInBase(axis.min,axis.tickSize),i=0,v=Number.NaN,prev;do{prev=v;v=start+i*axis.tickSize;ticks.push(v);++i}while(v<axis.max&&v!=prev);return ticks};axis.tickFormatter=function(value,axis){var factor=axis.tickDecimals?Math.pow(10,axis.tickDecimals):1;var formatted=""+Math.round(value*factor)/factor;if(axis.tickDecimals!=null){var decimal=formatted.indexOf(".");var precision=decimal==-1?0:formatted.length-decimal-1;if(precision<axis.tickDecimals){return(precision?formatted:formatted+".")+(""+factor).substr(1,axis.tickDecimals-precision)}}return formatted}}if($.isFunction(opts.tickFormatter))axis.tickFormatter=function(v,axis){return""+opts.tickFormatter(v,axis)};if(opts.alignTicksWithAxis!=null){var otherAxis=(axis.direction=="x"?xaxes:yaxes)[opts.alignTicksWithAxis-1];if(otherAxis&&otherAxis.used&&otherAxis!=axis){var niceTicks=axis.tickGenerator(axis);if(niceTicks.length>0){if(opts.min==null)axis.min=Math.min(axis.min,niceTicks[0]);if(opts.max==null&&niceTicks.length>1)axis.max=Math.max(axis.max,niceTicks[niceTicks.length-1])}axis.tickGenerator=function(axis){var ticks=[],v,i;for(i=0;i<otherAxis.ticks.length;++i){v=(otherAxis.ticks[i].v-otherAxis.min)/(otherAxis.max-otherAxis.min);v=axis.min+v*(axis.max-axis.min);ticks.push(v)}return ticks};if(!axis.mode&&opts.tickDecimals==null){var extraDec=Math.max(0,-Math.floor(Math.log(axis.delta)/Math.LN10)+1),ts=axis.tickGenerator(axis);if(!(ts.length>1&&/\..*0$/.test((ts[1]-ts[0]).toFixed(extraDec))))axis.tickDecimals=extraDec}}}}function setTicks(axis){var oticks=axis.options.ticks,ticks=[];if(oticks==null||typeof oticks=="number"&&oticks>0)ticks=axis.tickGenerator(axis);else if(oticks){if($.isFunction(oticks))ticks=oticks(axis);else ticks=oticks}var i,v;axis.ticks=[];for(i=0;i<ticks.length;++i){var label=null;var t=ticks[i];if(typeof t=="object"){v=+t[0];if(t.length>1)label=t[1]}else v=+t;if(label==null)label=axis.tickFormatter(v,axis);if(!isNaN(v))axis.ticks.push({v:v,label:label})}}function snapRangeToTicks(axis,ticks){if(axis.options.autoscaleMargin&&ticks.length>0){if(axis.options.min==null)axis.min=Math.min(axis.min,ticks[0].v);if(axis.options.max==null&&ticks.length>1)axis.max=Math.max(axis.max,ticks[ticks.length-1].v)}}function draw(){surface.clear();executeHooks(hooks.drawBackground,[ctx]);var grid=options.grid;if(grid.show&&grid.backgroundColor)drawBackground();if(grid.show&&!grid.aboveData){drawGrid()}for(var i=0;i<series.length;++i){executeHooks(hooks.drawSeries,[ctx,series[i]]);drawSeries(series[i])}executeHooks(hooks.draw,[ctx]);if(grid.show&&grid.aboveData){drawGrid()}surface.render();triggerRedrawOverlay()}function extractRange(ranges,coord){var axis,from,to,key,axes=allAxes();for(var i=0;i<axes.length;++i){axis=axes[i];if(axis.direction==coord){key=coord+axis.n+"axis";if(!ranges[key]&&axis.n==1)key=coord+"axis";if(ranges[key]){from=ranges[key].from;to=ranges[key].to;break}}}if(!ranges[key]){axis=coord=="x"?xaxes[0]:yaxes[0];from=ranges[coord+"1"];to=ranges[coord+"2"]}if(from!=null&&to!=null&&from>to){var tmp=from;from=to;to=tmp}return{from:from,to:to,axis:axis}}function drawBackground(){ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.fillStyle=getColorOrGradient(options.grid.backgroundColor,plotHeight,0,"rgba(255, 255, 255, 0)");ctx.fillRect(0,0,plotWidth,plotHeight);ctx.restore()}function drawGrid(){var i,axes,bw,bc;ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var markings=options.grid.markings;if(markings){if($.isFunction(markings)){axes=plot.getAxes();axes.xmin=axes.xaxis.min;axes.xmax=axes.xaxis.max;axes.ymin=axes.yaxis.min;axes.ymax=axes.yaxis.max;markings=markings(axes)}for(i=0;i<markings.length;++i){var m=markings[i],xrange=extractRange(m,"x"),yrange=extractRange(m,"y");if(xrange.from==null)xrange.from=xrange.axis.min;if(xrange.to==null)xrange.to=xrange.axis.max;
8
+ if(yrange.from==null)yrange.from=yrange.axis.min;if(yrange.to==null)yrange.to=yrange.axis.max;if(xrange.to<xrange.axis.min||xrange.from>xrange.axis.max||yrange.to<yrange.axis.min||yrange.from>yrange.axis.max)continue;xrange.from=Math.max(xrange.from,xrange.axis.min);xrange.to=Math.min(xrange.to,xrange.axis.max);yrange.from=Math.max(yrange.from,yrange.axis.min);yrange.to=Math.min(yrange.to,yrange.axis.max);var xequal=xrange.from===xrange.to,yequal=yrange.from===yrange.to;if(xequal&&yequal){continue}xrange.from=Math.floor(xrange.axis.p2c(xrange.from));xrange.to=Math.floor(xrange.axis.p2c(xrange.to));yrange.from=Math.floor(yrange.axis.p2c(yrange.from));yrange.to=Math.floor(yrange.axis.p2c(yrange.to));if(xequal||yequal){var lineWidth=m.lineWidth||options.grid.markingsLineWidth,subPixel=lineWidth%2?.5:0;ctx.beginPath();ctx.strokeStyle=m.color||options.grid.markingsColor;ctx.lineWidth=lineWidth;if(xequal){ctx.moveTo(xrange.to+subPixel,yrange.from);ctx.lineTo(xrange.to+subPixel,yrange.to)}else{ctx.moveTo(xrange.from,yrange.to+subPixel);ctx.lineTo(xrange.to,yrange.to+subPixel)}ctx.stroke()}else{ctx.fillStyle=m.color||options.grid.markingsColor;ctx.fillRect(xrange.from,yrange.to,xrange.to-xrange.from,yrange.from-yrange.to)}}}axes=allAxes();bw=options.grid.borderWidth;for(var j=0;j<axes.length;++j){var axis=axes[j],box=axis.box,t=axis.tickLength,x,y,xoff,yoff;if(!axis.show||axis.ticks.length==0)continue;ctx.lineWidth=1;if(axis.direction=="x"){x=0;if(t=="full")y=axis.position=="top"?0:plotHeight;else y=box.top-plotOffset.top+(axis.position=="top"?box.height:0)}else{y=0;if(t=="full")x=axis.position=="left"?0:plotWidth;else x=box.left-plotOffset.left+(axis.position=="left"?box.width:0)}if(!axis.innermost){ctx.strokeStyle=axis.options.color;ctx.beginPath();xoff=yoff=0;if(axis.direction=="x")xoff=plotWidth+1;else yoff=plotHeight+1;if(ctx.lineWidth==1){if(axis.direction=="x"){y=Math.floor(y)+.5}else{x=Math.floor(x)+.5}}ctx.moveTo(x,y);ctx.lineTo(x+xoff,y+yoff);ctx.stroke()}ctx.strokeStyle=axis.options.tickColor;ctx.beginPath();for(i=0;i<axis.ticks.length;++i){var v=axis.ticks[i].v;xoff=yoff=0;if(isNaN(v)||v<axis.min||v>axis.max||t=="full"&&(typeof bw=="object"&&bw[axis.position]>0||bw>0)&&(v==axis.min||v==axis.max))continue;if(axis.direction=="x"){x=axis.p2c(v);yoff=t=="full"?-plotHeight:t;if(axis.position=="top")yoff=-yoff}else{y=axis.p2c(v);xoff=t=="full"?-plotWidth:t;if(axis.position=="left")xoff=-xoff}if(ctx.lineWidth==1){if(axis.direction=="x")x=Math.floor(x)+.5;else y=Math.floor(y)+.5}ctx.moveTo(x,y);ctx.lineTo(x+xoff,y+yoff)}ctx.stroke()}if(bw){bc=options.grid.borderColor;if(typeof bw=="object"||typeof bc=="object"){if(typeof bw!=="object"){bw={top:bw,right:bw,bottom:bw,left:bw}}if(typeof bc!=="object"){bc={top:bc,right:bc,bottom:bc,left:bc}}if(bw.top>0){ctx.strokeStyle=bc.top;ctx.lineWidth=bw.top;ctx.beginPath();ctx.moveTo(0-bw.left,0-bw.top/2);ctx.lineTo(plotWidth,0-bw.top/2);ctx.stroke()}if(bw.right>0){ctx.strokeStyle=bc.right;ctx.lineWidth=bw.right;ctx.beginPath();ctx.moveTo(plotWidth+bw.right/2,0-bw.top);ctx.lineTo(plotWidth+bw.right/2,plotHeight);ctx.stroke()}if(bw.bottom>0){ctx.strokeStyle=bc.bottom;ctx.lineWidth=bw.bottom;ctx.beginPath();ctx.moveTo(plotWidth+bw.right,plotHeight+bw.bottom/2);ctx.lineTo(0,plotHeight+bw.bottom/2);ctx.stroke()}if(bw.left>0){ctx.strokeStyle=bc.left;ctx.lineWidth=bw.left;ctx.beginPath();ctx.moveTo(0-bw.left/2,plotHeight+bw.bottom);ctx.lineTo(0-bw.left/2,0);ctx.stroke()}}else{ctx.lineWidth=bw;ctx.strokeStyle=options.grid.borderColor;ctx.strokeRect(-bw/2,-bw/2,plotWidth+bw,plotHeight+bw)}}ctx.restore()}function drawAxisLabels(){$.each(allAxes(),function(_,axis){var box=axis.box,legacyStyles=axis.direction+"Axis "+axis.direction+axis.n+"Axis",layer="flot-"+axis.direction+"-axis flot-"+axis.direction+axis.n+"-axis "+legacyStyles,font=axis.options.font||"flot-tick-label tickLabel",tick,x,y,halign,valign;surface.removeText(layer);if(!axis.show||axis.ticks.length==0)return;for(var i=0;i<axis.ticks.length;++i){tick=axis.ticks[i];if(!tick.label||tick.v<axis.min||tick.v>axis.max)continue;if(axis.direction=="x"){halign="center";x=plotOffset.left+axis.p2c(tick.v);if(axis.position=="bottom"){y=box.top+box.padding}else{y=box.top+box.height-box.padding;valign="bottom"}}else{valign="middle";y=plotOffset.top+axis.p2c(tick.v);if(axis.position=="left"){x=box.left+box.width-box.padding;halign="right"}else{x=box.left+box.padding}}surface.addText(layer,x,y,tick.label,font,null,null,halign,valign)}})}function drawSeries(series){if(series.lines.show)drawSeriesLines(series);if(series.bars.show)drawSeriesBars(series);if(series.points.show)drawSeriesPoints(series)}function drawSeriesLines(series){function plotLine(datapoints,xoffset,yoffset,axisx,axisy){var points=datapoints.points,ps=datapoints.pointsize,prevx=null,prevy=null;ctx.beginPath();for(var i=ps;i<points.length;i+=ps){var x1=points[i-ps],y1=points[i-ps+1],x2=points[i],y2=points[i+1];if(x1==null||x2==null)continue;if(y1<=y2&&y1<axisy.min){if(y2<axisy.min)continue;x1=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.min}else if(y2<=y1&&y2<axisy.min){if(y1<axisy.min)continue;x2=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.min}if(y1>=y2&&y1>axisy.max){if(y2>axisy.max)continue;x1=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.max}else if(y2>=y1&&y2>axisy.max){if(y1>axisy.max)continue;x2=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.max}if(x1<=x2&&x1<axisx.min){if(x2<axisx.min)continue;y1=(axisx.min-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.min}else if(x2<=x1&&x2<axisx.min){if(x1<axisx.min)continue;y2=(axisx.min-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.min}if(x1>=x2&&x1>axisx.max){if(x2>axisx.max)continue;y1=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.max}else if(x2>=x1&&x2>axisx.max){if(x1>axisx.max)continue;y2=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.max}if(x1!=prevx||y1!=prevy)ctx.moveTo(axisx.p2c(x1)+xoffset,axisy.p2c(y1)+yoffset);prevx=x2;prevy=y2;ctx.lineTo(axisx.p2c(x2)+xoffset,axisy.p2c(y2)+yoffset)}ctx.stroke()}function plotLineArea(datapoints,axisx,axisy){var points=datapoints.points,ps=datapoints.pointsize,bottom=Math.min(Math.max(0,axisy.min),axisy.max),i=0,top,areaOpen=false,ypos=1,segmentStart=0,segmentEnd=0;while(true){if(ps>0&&i>points.length+ps)break;i+=ps;var x1=points[i-ps],y1=points[i-ps+ypos],x2=points[i],y2=points[i+ypos];if(areaOpen){if(ps>0&&x1!=null&&x2==null){segmentEnd=i;ps=-ps;ypos=2;continue}if(ps<0&&i==segmentStart+ps){ctx.fill();areaOpen=false;ps=-ps;ypos=1;i=segmentStart=segmentEnd+ps;continue}}if(x1==null||x2==null)continue;if(x1<=x2&&x1<axisx.min){if(x2<axisx.min)continue;y1=(axisx.min-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.min}else if(x2<=x1&&x2<axisx.min){if(x1<axisx.min)continue;y2=(axisx.min-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.min}if(x1>=x2&&x1>axisx.max){if(x2>axisx.max)continue;y1=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.max}else if(x2>=x1&&x2>axisx.max){if(x1>axisx.max)continue;y2=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.max}if(!areaOpen){ctx.beginPath();ctx.moveTo(axisx.p2c(x1),axisy.p2c(bottom));areaOpen=true}if(y1>=axisy.max&&y2>=axisy.max){ctx.lineTo(axisx.p2c(x1),axisy.p2c(axisy.max));ctx.lineTo(axisx.p2c(x2),axisy.p2c(axisy.max));continue}else if(y1<=axisy.min&&y2<=axisy.min){ctx.lineTo(axisx.p2c(x1),axisy.p2c(axisy.min));ctx.lineTo(axisx.p2c(x2),axisy.p2c(axisy.min));continue}var x1old=x1,x2old=x2;if(y1<=y2&&y1<axisy.min&&y2>=axisy.min){x1=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.min}else if(y2<=y1&&y2<axisy.min&&y1>=axisy.min){x2=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.min}if(y1>=y2&&y1>axisy.max&&y2<=axisy.max){x1=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.max}else if(y2>=y1&&y2>axisy.max&&y1<=axisy.max){x2=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.max}if(x1!=x1old){ctx.lineTo(axisx.p2c(x1old),axisy.p2c(y1))}ctx.lineTo(axisx.p2c(x1),axisy.p2c(y1));ctx.lineTo(axisx.p2c(x2),axisy.p2c(y2));if(x2!=x2old){ctx.lineTo(axisx.p2c(x2),axisy.p2c(y2));ctx.lineTo(axisx.p2c(x2old),axisy.p2c(y2))}}}ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.lineJoin="round";var lw=series.lines.lineWidth,sw=series.shadowSize;if(lw>0&&sw>0){ctx.lineWidth=sw;ctx.strokeStyle="rgba(0,0,0,0.1)";var angle=Math.PI/18;plotLine(series.datapoints,Math.sin(angle)*(lw/2+sw/2),Math.cos(angle)*(lw/2+sw/2),series.xaxis,series.yaxis);ctx.lineWidth=sw/2;plotLine(series.datapoints,Math.sin(angle)*(lw/2+sw/4),Math.cos(angle)*(lw/2+sw/4),series.xaxis,series.yaxis)}ctx.lineWidth=lw;ctx.strokeStyle=series.color;var fillStyle=getFillStyle(series.lines,series.color,0,plotHeight);if(fillStyle){ctx.fillStyle=fillStyle;plotLineArea(series.datapoints,series.xaxis,series.yaxis)}if(lw>0)plotLine(series.datapoints,0,0,series.xaxis,series.yaxis);ctx.restore()}function drawSeriesPoints(series){function plotPoints(datapoints,radius,fillStyle,offset,shadow,axisx,axisy,symbol){var points=datapoints.points,ps=datapoints.pointsize;for(var i=0;i<points.length;i+=ps){var x=points[i],y=points[i+1];if(x==null||x<axisx.min||x>axisx.max||y<axisy.min||y>axisy.max)continue;ctx.beginPath();x=axisx.p2c(x);y=axisy.p2c(y)+offset;if(symbol=="circle")ctx.arc(x,y,radius,0,shadow?Math.PI:Math.PI*2,false);else symbol(ctx,x,y,radius,shadow);ctx.closePath();if(fillStyle){ctx.fillStyle=fillStyle;ctx.fill()}ctx.stroke()}}ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var lw=series.points.lineWidth,sw=series.shadowSize,radius=series.points.radius,symbol=series.points.symbol;if(lw==0)lw=1e-4;if(lw>0&&sw>0){var w=sw/2;ctx.lineWidth=w;ctx.strokeStyle="rgba(0,0,0,0.1)";plotPoints(series.datapoints,radius,null,w+w/2,true,series.xaxis,series.yaxis,symbol);ctx.strokeStyle="rgba(0,0,0,0.2)";plotPoints(series.datapoints,radius,null,w/2,true,series.xaxis,series.yaxis,symbol)}ctx.lineWidth=lw;ctx.strokeStyle=series.color;plotPoints(series.datapoints,radius,getFillStyle(series.points,series.color),0,false,series.xaxis,series.yaxis,symbol);ctx.restore()}function drawBar(x,y,b,barLeft,barRight,fillStyleCallback,axisx,axisy,c,horizontal,lineWidth){var left,right,bottom,top,drawLeft,drawRight,drawTop,drawBottom,tmp;if(horizontal){drawBottom=drawRight=drawTop=true;drawLeft=false;left=b;right=x;top=y+barLeft;bottom=y+barRight;if(right<left){tmp=right;right=left;left=tmp;drawLeft=true;drawRight=false}}else{drawLeft=drawRight=drawTop=true;drawBottom=false;left=x+barLeft;right=x+barRight;bottom=b;top=y;if(top<bottom){tmp=top;top=bottom;bottom=tmp;drawBottom=true;drawTop=false}}if(right<axisx.min||left>axisx.max||top<axisy.min||bottom>axisy.max)return;if(left<axisx.min){left=axisx.min;drawLeft=false}if(right>axisx.max){right=axisx.max;drawRight=false}if(bottom<axisy.min){bottom=axisy.min;drawBottom=false}if(top>axisy.max){top=axisy.max;drawTop=false}left=axisx.p2c(left);bottom=axisy.p2c(bottom);right=axisx.p2c(right);top=axisy.p2c(top);if(fillStyleCallback){c.fillStyle=fillStyleCallback(bottom,top);c.fillRect(left,top,right-left,bottom-top)}if(lineWidth>0&&(drawLeft||drawRight||drawTop||drawBottom)){c.beginPath();c.moveTo(left,bottom);if(drawLeft)c.lineTo(left,top);else c.moveTo(left,top);if(drawTop)c.lineTo(right,top);else c.moveTo(right,top);if(drawRight)c.lineTo(right,bottom);else c.moveTo(right,bottom);if(drawBottom)c.lineTo(left,bottom);else c.moveTo(left,bottom);c.stroke()}}function drawSeriesBars(series){function plotBars(datapoints,barLeft,barRight,fillStyleCallback,axisx,axisy){var points=datapoints.points,ps=datapoints.pointsize;for(var i=0;i<points.length;i+=ps){if(points[i]==null)continue;drawBar(points[i],points[i+1],points[i+2],barLeft,barRight,fillStyleCallback,axisx,axisy,ctx,series.bars.horizontal,series.bars.lineWidth)}}ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.lineWidth=series.bars.lineWidth;ctx.strokeStyle=series.color;var barLeft;switch(series.bars.align){case"left":barLeft=0;break;case"right":barLeft=-series.bars.barWidth;break;default:barLeft=-series.bars.barWidth/2}var fillStyleCallback=series.bars.fill?function(bottom,top){return getFillStyle(series.bars,series.color,bottom,top)}:null;plotBars(series.datapoints,barLeft,barLeft+series.bars.barWidth,fillStyleCallback,series.xaxis,series.yaxis);ctx.restore()}function getFillStyle(filloptions,seriesColor,bottom,top){var fill=filloptions.fill;if(!fill)return null;if(filloptions.fillColor)return getColorOrGradient(filloptions.fillColor,bottom,top,seriesColor);var c=$.color.parse(seriesColor);c.a=typeof fill=="number"?fill:.4;c.normalize();return c.toString()}function insertLegend(){if(options.legend.container!=null){$(options.legend.container).html("")}else{placeholder.find(".legend").remove()}if(!options.legend.show){return}var fragments=[],entries=[],rowStarted=false,lf=options.legend.labelFormatter,s,label;for(var i=0;i<series.length;++i){s=series[i];if(s.label){label=lf?lf(s.label,s):s.label;if(label){entries.push({label:label,color:s.color})}}}if(options.legend.sorted){if($.isFunction(options.legend.sorted)){entries.sort(options.legend.sorted)}else if(options.legend.sorted=="reverse"){entries.reverse()}else{var ascending=options.legend.sorted!="descending";entries.sort(function(a,b){return a.label==b.label?0:a.label<b.label!=ascending?1:-1})}}for(var i=0;i<entries.length;++i){var entry=entries[i];if(i%options.legend.noColumns==0){if(rowStarted)fragments.push("</tr>");fragments.push("<tr>");rowStarted=true}fragments.push('<td class="legendColorBox"><div style="border:1px solid '+options.legend.labelBoxBorderColor+';padding:1px"><div style="width:4px;height:0;border:5px solid '+entry.color+';overflow:hidden"></div></div></td>'+'<td class="legendLabel">'+entry.label+"</td>")}if(rowStarted)fragments.push("</tr>");if(fragments.length==0)return;var table='<table style="font-size:smaller;color:'+options.grid.color+'">'+fragments.join("")+"</table>";if(options.legend.container!=null)$(options.legend.container).html(table);else{var pos="",p=options.legend.position,m=options.legend.margin;if(m[0]==null)m=[m,m];if(p.charAt(0)=="n")pos+="top:"+(m[1]+plotOffset.top)+"px;";else if(p.charAt(0)=="s")pos+="bottom:"+(m[1]+plotOffset.bottom)+"px;";if(p.charAt(1)=="e")pos+="right:"+(m[0]+plotOffset.right)+"px;";else if(p.charAt(1)=="w")pos+="left:"+(m[0]+plotOffset.left)+"px;";var legend=$('<div class="legend">'+table.replace('style="','style="position:absolute;'+pos+";")+"</div>").appendTo(placeholder);if(options.legend.backgroundOpacity!=0){var c=options.legend.backgroundColor;if(c==null){c=options.grid.backgroundColor;if(c&&typeof c=="string")c=$.color.parse(c);else c=$.color.extract(legend,"background-color");c.a=1;c=c.toString()}var div=legend.children();$('<div style="position:absolute;width:'+div.width()+"px;height:"+div.height()+"px;"+pos+"background-color:"+c+';"> </div>').prependTo(legend).css("opacity",options.legend.backgroundOpacity)}}}var highlights=[],redrawTimeout=null;function findNearbyItem(mouseX,mouseY,seriesFilter){var maxDistance=options.grid.mouseActiveRadius,smallestDistance=maxDistance*maxDistance+1,item=null,foundPoint=false,i,j,ps;for(i=series.length-1;i>=0;--i){if(!seriesFilter(series[i]))continue;var s=series[i],axisx=s.xaxis,axisy=s.yaxis,points=s.datapoints.points,mx=axisx.c2p(mouseX),my=axisy.c2p(mouseY),maxx=maxDistance/axisx.scale,maxy=maxDistance/axisy.scale;ps=s.datapoints.pointsize;if(axisx.options.inverseTransform)maxx=Number.MAX_VALUE;if(axisy.options.inverseTransform)maxy=Number.MAX_VALUE;if(s.lines.show||s.points.show){for(j=0;j<points.length;j+=ps){var x=points[j],y=points[j+1];if(x==null)continue;if(x-mx>maxx||x-mx<-maxx||y-my>maxy||y-my<-maxy)continue;var dx=Math.abs(axisx.p2c(x)-mouseX),dy=Math.abs(axisy.p2c(y)-mouseY),dist=dx*dx+dy*dy;if(dist<smallestDistance){smallestDistance=dist;item=[i,j/ps]}}}if(s.bars.show&&!item){var barLeft,barRight;switch(s.bars.align){case"left":barLeft=0;break;case"right":barLeft=-s.bars.barWidth;break;default:barLeft=-s.bars.barWidth/2}barRight=barLeft+s.bars.barWidth;for(j=0;j<points.length;j+=ps){var x=points[j],y=points[j+1],b=points[j+2];if(x==null)continue;if(series[i].bars.horizontal?mx<=Math.max(b,x)&&mx>=Math.min(b,x)&&my>=y+barLeft&&my<=y+barRight:mx>=x+barLeft&&mx<=x+barRight&&my>=Math.min(b,y)&&my<=Math.max(b,y))item=[i,j/ps]}}}if(item){i=item[0];j=item[1];ps=series[i].datapoints.pointsize;return{datapoint:series[i].datapoints.points.slice(j*ps,(j+1)*ps),dataIndex:j,series:series[i],seriesIndex:i}}return null}function onMouseMove(e){if(options.grid.hoverable)triggerClickHoverEvent("plothover",e,function(s){return s["hoverable"]!=false})}function onMouseLeave(e){if(options.grid.hoverable)triggerClickHoverEvent("plothover",e,function(s){return false})}function onClick(e){triggerClickHoverEvent("plotclick",e,function(s){return s["clickable"]!=false})}function triggerClickHoverEvent(eventname,event,seriesFilter){var offset=eventHolder.offset(),canvasX=event.pageX-offset.left-plotOffset.left,canvasY=event.pageY-offset.top-plotOffset.top,pos=canvasToAxisCoords({left:canvasX,top:canvasY});pos.pageX=event.pageX;pos.pageY=event.pageY;var item=findNearbyItem(canvasX,canvasY,seriesFilter);if(item){item.pageX=parseInt(item.series.xaxis.p2c(item.datapoint[0])+offset.left+plotOffset.left,10);item.pageY=parseInt(item.series.yaxis.p2c(item.datapoint[1])+offset.top+plotOffset.top,10)}if(options.grid.autoHighlight){for(var i=0;i<highlights.length;++i){var h=highlights[i];if(h.auto==eventname&&!(item&&h.series==item.series&&h.point[0]==item.datapoint[0]&&h.point[1]==item.datapoint[1]))unhighlight(h.series,h.point)}if(item)highlight(item.series,item.datapoint,eventname)}placeholder.trigger(eventname,[pos,item])}function triggerRedrawOverlay(){var t=options.interaction.redrawOverlayInterval;if(t==-1){drawOverlay();return}if(!redrawTimeout)redrawTimeout=setTimeout(drawOverlay,t)}function drawOverlay(){redrawTimeout=null;octx.save();overlay.clear();octx.translate(plotOffset.left,plotOffset.top);var i,hi;for(i=0;i<highlights.length;++i){hi=highlights[i];if(hi.series.bars.show)drawBarHighlight(hi.series,hi.point);else drawPointHighlight(hi.series,hi.point)}octx.restore();executeHooks(hooks.drawOverlay,[octx])}function highlight(s,point,auto){if(typeof s=="number")s=series[s];if(typeof point=="number"){var ps=s.datapoints.pointsize;point=s.datapoints.points.slice(ps*point,ps*(point+1))}var i=indexOfHighlight(s,point);if(i==-1){highlights.push({series:s,point:point,auto:auto});triggerRedrawOverlay()}else if(!auto)highlights[i].auto=false}function unhighlight(s,point){if(s==null&&point==null){highlights=[];triggerRedrawOverlay();return}if(typeof s=="number")s=series[s];if(typeof point=="number"){var ps=s.datapoints.pointsize;point=s.datapoints.points.slice(ps*point,ps*(point+1))}var i=indexOfHighlight(s,point);if(i!=-1){highlights.splice(i,1);triggerRedrawOverlay()}}function indexOfHighlight(s,p){for(var i=0;i<highlights.length;++i){var h=highlights[i];if(h.series==s&&h.point[0]==p[0]&&h.point[1]==p[1])return i}return-1}function drawPointHighlight(series,point){var x=point[0],y=point[1],axisx=series.xaxis,axisy=series.yaxis,highlightColor=typeof series.highlightColor==="string"?series.highlightColor:$.color.parse(series.color).scale("a",.5).toString();if(x<axisx.min||x>axisx.max||y<axisy.min||y>axisy.max)return;var pointRadius=series.points.radius+series.points.lineWidth/2;octx.lineWidth=pointRadius;octx.strokeStyle=highlightColor;var radius=1.5*pointRadius;x=axisx.p2c(x);y=axisy.p2c(y);octx.beginPath();if(series.points.symbol=="circle")octx.arc(x,y,radius,0,2*Math.PI,false);else series.points.symbol(octx,x,y,radius,false);octx.closePath();octx.stroke()}function drawBarHighlight(series,point){var highlightColor=typeof series.highlightColor==="string"?series.highlightColor:$.color.parse(series.color).scale("a",.5).toString(),fillStyle=highlightColor,barLeft;switch(series.bars.align){case"left":barLeft=0;break;case"right":barLeft=-series.bars.barWidth;break;default:barLeft=-series.bars.barWidth/2}octx.lineWidth=series.bars.lineWidth;octx.strokeStyle=highlightColor;drawBar(point[0],point[1],point[2]||0,barLeft,barLeft+series.bars.barWidth,function(){return fillStyle},series.xaxis,series.yaxis,octx,series.bars.horizontal,series.bars.lineWidth)}function getColorOrGradient(spec,bottom,top,defaultColor){if(typeof spec=="string")return spec;else{var gradient=ctx.createLinearGradient(0,top,0,bottom);for(var i=0,l=spec.colors.length;i<l;++i){var c=spec.colors[i];if(typeof c!="string"){var co=$.color.parse(defaultColor);if(c.brightness!=null)co=co.scale("rgb",c.brightness);if(c.opacity!=null)co.a*=c.opacity;c=co.toString()}gradient.addColorStop(i/(l-1),c)}return gradient}}}$.plot=function(placeholder,data,options){var plot=new Plot($(placeholder),data,options,$.plot.plugins);return plot};$.plot.version="0.8.3";$.plot.plugins=[];$.fn.plot=function(data,options){return this.each(function(){$.plot(this,data,options)})};function floorInBase(n,base){return base*Math.floor(n/base)}})(jQuery);
@@ -0,0 +1,346 @@
1
+ /* Flot plugin for adding the ability to pan and zoom the plot.
2
+
3
+ Copyright (c) 2007-2014 IOLA and Ole Laursen.
4
+ Licensed under the MIT license.
5
+
6
+ The default behaviour is double click and scrollwheel up/down to zoom in, drag
7
+ to pan. The plugin defines plot.zoom({ center }), plot.zoomOut() and
8
+ plot.pan( offset ) so you easily can add custom controls. It also fires
9
+ "plotpan" and "plotzoom" events, useful for synchronizing plots.
10
+
11
+ The plugin supports these options:
12
+
13
+ zoom: {
14
+ interactive: false
15
+ trigger: "dblclick" // or "click" for single click
16
+ amount: 1.5 // 2 = 200% (zoom in), 0.5 = 50% (zoom out)
17
+ }
18
+
19
+ pan: {
20
+ interactive: false
21
+ cursor: "move" // CSS mouse cursor value used when dragging, e.g. "pointer"
22
+ frameRate: 20
23
+ }
24
+
25
+ xaxis, yaxis, x2axis, y2axis: {
26
+ zoomRange: null // or [ number, number ] (min range, max range) or false
27
+ panRange: null // or [ number, number ] (min, max) or false
28
+ }
29
+
30
+ "interactive" enables the built-in drag/click behaviour. If you enable
31
+ interactive for pan, then you'll have a basic plot that supports moving
32
+ around; the same for zoom.
33
+
34
+ "amount" specifies the default amount to zoom in (so 1.5 = 150%) relative to
35
+ the current viewport.
36
+
37
+ "cursor" is a standard CSS mouse cursor string used for visual feedback to the
38
+ user when dragging.
39
+
40
+ "frameRate" specifies the maximum number of times per second the plot will
41
+ update itself while the user is panning around on it (set to null to disable
42
+ intermediate pans, the plot will then not update until the mouse button is
43
+ released).
44
+
45
+ "zoomRange" is the interval in which zooming can happen, e.g. with zoomRange:
46
+ [1, 100] the zoom will never scale the axis so that the difference between min
47
+ and max is smaller than 1 or larger than 100. You can set either end to null
48
+ to ignore, e.g. [1, null]. If you set zoomRange to false, zooming on that axis
49
+ will be disabled.
50
+
51
+ "panRange" confines the panning to stay within a range, e.g. with panRange:
52
+ [-10, 20] panning stops at -10 in one end and at 20 in the other. Either can
53
+ be null, e.g. [-10, null]. If you set panRange to false, panning on that axis
54
+ will be disabled.
55
+
56
+ Example API usage:
57
+
58
+ plot = $.plot(...);
59
+
60
+ // zoom default amount in on the pixel ( 10, 20 )
61
+ plot.zoom({ center: { left: 10, top: 20 } });
62
+
63
+ // zoom out again
64
+ plot.zoomOut({ center: { left: 10, top: 20 } });
65
+
66
+ // zoom 200% in on the pixel (10, 20)
67
+ plot.zoom({ amount: 2, center: { left: 10, top: 20 } });
68
+
69
+ // pan 100 pixels to the left and 20 down
70
+ plot.pan({ left: -100, top: 20 })
71
+
72
+ Here, "center" specifies where the center of the zooming should happen. Note
73
+ that this is defined in pixel space, not the space of the data points (you can
74
+ use the p2c helpers on the axes in Flot to help you convert between these).
75
+
76
+ "amount" is the amount to zoom the viewport relative to the current range, so
77
+ 1 is 100% (i.e. no change), 1.5 is 150% (zoom in), 0.7 is 70% (zoom out). You
78
+ can set the default in the options.
79
+
80
+ */
81
+
82
+ // First two dependencies, jquery.event.drag.js and
83
+ // jquery.mousewheel.js, we put them inline here to save people the
84
+ // effort of downloading them.
85
+
86
+ /*
87
+ jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
88
+ Licensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt
89
+ */
90
+ (function(a){function e(h){var k,j=this,l=h.data||{};if(l.elem)j=h.dragTarget=l.elem,h.dragProxy=d.proxy||j,h.cursorOffsetX=l.pageX-l.left,h.cursorOffsetY=l.pageY-l.top,h.offsetX=h.pageX-h.cursorOffsetX,h.offsetY=h.pageY-h.cursorOffsetY;else if(d.dragging||l.which>0&&h.which!=l.which||a(h.target).is(l.not))return;switch(h.type){case"mousedown":return a.extend(l,a(j).offset(),{elem:j,target:h.target,pageX:h.pageX,pageY:h.pageY}),b.add(document,"mousemove mouseup",e,l),i(j,!1),d.dragging=null,!1;case!d.dragging&&"mousemove":if(g(h.pageX-l.pageX)+g(h.pageY-l.pageY)<l.distance)break;h.target=l.target,k=f(h,"dragstart",j),k!==!1&&(d.dragging=j,d.proxy=h.dragProxy=a(k||j)[0]);case"mousemove":if(d.dragging){if(k=f(h,"drag",j),c.drop&&(c.drop.allowed=k!==!1,c.drop.handler(h)),k!==!1)break;h.type="mouseup"}case"mouseup":b.remove(document,"mousemove mouseup",e),d.dragging&&(c.drop&&c.drop.handler(h),f(h,"dragend",j)),i(j,!0),d.dragging=d.proxy=l.elem=!1}return!0}function f(b,c,d){b.type=c;var e=a.event.dispatch.call(d,b);return e===!1?!1:e||b.result}function g(a){return Math.pow(a,2)}function h(){return d.dragging===!1}function i(a,b){a&&(a.unselectable=b?"off":"on",a.onselectstart=function(){return b},a.style&&(a.style.MozUserSelect=b?"":"none"))}a.fn.drag=function(a,b,c){return b&&this.bind("dragstart",a),c&&this.bind("dragend",c),a?this.bind("drag",b?b:a):this.trigger("drag")};var b=a.event,c=b.special,d=c.drag={not:":input",distance:0,which:1,dragging:!1,setup:function(c){c=a.extend({distance:d.distance,which:d.which,not:d.not},c||{}),c.distance=g(c.distance),b.add(this,"mousedown",e,c),this.attachEvent&&this.attachEvent("ondragstart",h)},teardown:function(){b.remove(this,"mousedown",e),this===d.dragging&&(d.dragging=d.proxy=!1),i(this,!0),this.detachEvent&&this.detachEvent("ondragstart",h)}};c.dragstart=c.dragend={setup:function(){},teardown:function(){}}})(jQuery);
91
+
92
+ /* jquery.mousewheel.min.js
93
+ * Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
94
+ * Licensed under the MIT License (LICENSE.txt).
95
+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
96
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
97
+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
98
+ *
99
+ * Version: 3.0.6
100
+ *
101
+ * Requires: 1.2.2+
102
+ */
103
+ (function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;void 0!==b.axis&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);void 0!==b.wheelDeltaY&&(g=b.wheelDeltaY/120);void 0!==b.wheelDeltaX&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]=d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,!1);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,!1);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
104
+
105
+
106
+
107
+
108
+ (function ($) {
109
+ var options = {
110
+ xaxis: {
111
+ zoomRange: null, // or [number, number] (min range, max range)
112
+ panRange: null // or [number, number] (min, max)
113
+ },
114
+ zoom: {
115
+ interactive: false,
116
+ trigger: "dblclick", // or "click" for single click
117
+ amount: 1.5 // how much to zoom relative to current position, 2 = 200% (zoom in), 0.5 = 50% (zoom out)
118
+ },
119
+ pan: {
120
+ interactive: false,
121
+ cursor: "move",
122
+ frameRate: 20
123
+ }
124
+ };
125
+
126
+ function init(plot) {
127
+ function onZoomClick(e, zoomOut) {
128
+ var c = plot.offset();
129
+ c.left = e.pageX - c.left;
130
+ c.top = e.pageY - c.top;
131
+ if (zoomOut)
132
+ plot.zoomOut({ center: c });
133
+ else
134
+ plot.zoom({ center: c });
135
+ }
136
+
137
+ function onMouseWheel(e, delta) {
138
+ e.preventDefault();
139
+ onZoomClick(e, delta < 0);
140
+ return false;
141
+ }
142
+
143
+ var prevCursor = 'default', prevPageX = 0, prevPageY = 0,
144
+ panTimeout = null;
145
+
146
+ function onDragStart(e) {
147
+ if (e.which != 1) // only accept left-click
148
+ return false;
149
+ var c = plot.getPlaceholder().css('cursor');
150
+ if (c)
151
+ prevCursor = c;
152
+ plot.getPlaceholder().css('cursor', plot.getOptions().pan.cursor);
153
+ prevPageX = e.pageX;
154
+ prevPageY = e.pageY;
155
+ }
156
+
157
+ function onDrag(e) {
158
+ var frameRate = plot.getOptions().pan.frameRate;
159
+ if (panTimeout || !frameRate)
160
+ return;
161
+
162
+ panTimeout = setTimeout(function () {
163
+ plot.pan({ left: prevPageX - e.pageX,
164
+ top: prevPageY - e.pageY });
165
+ prevPageX = e.pageX;
166
+ prevPageY = e.pageY;
167
+
168
+ panTimeout = null;
169
+ }, 1 / frameRate * 1000);
170
+ }
171
+
172
+ function onDragEnd(e) {
173
+ if (panTimeout) {
174
+ clearTimeout(panTimeout);
175
+ panTimeout = null;
176
+ }
177
+
178
+ plot.getPlaceholder().css('cursor', prevCursor);
179
+ plot.pan({ left: prevPageX - e.pageX,
180
+ top: prevPageY - e.pageY });
181
+ }
182
+
183
+ function bindEvents(plot, eventHolder) {
184
+ var o = plot.getOptions();
185
+ if (o.zoom.interactive) {
186
+ eventHolder[o.zoom.trigger](onZoomClick);
187
+ eventHolder.mousewheel(onMouseWheel);
188
+ }
189
+
190
+ if (o.pan.interactive) {
191
+ eventHolder.bind("dragstart", { distance: 10 }, onDragStart);
192
+ eventHolder.bind("drag", onDrag);
193
+ eventHolder.bind("dragend", onDragEnd);
194
+ }
195
+ }
196
+
197
+ plot.zoomOut = function (args) {
198
+ if (!args)
199
+ args = {};
200
+
201
+ if (!args.amount)
202
+ args.amount = plot.getOptions().zoom.amount;
203
+
204
+ args.amount = 1 / args.amount;
205
+ plot.zoom(args);
206
+ };
207
+
208
+ plot.zoom = function (args) {
209
+ if (!args)
210
+ args = {};
211
+
212
+ var c = args.center,
213
+ amount = args.amount || plot.getOptions().zoom.amount,
214
+ w = plot.width(), h = plot.height();
215
+
216
+ if (!c)
217
+ c = { left: w / 2, top: h / 2 };
218
+
219
+ var xf = c.left / w,
220
+ yf = c.top / h,
221
+ minmax = {
222
+ x: {
223
+ min: c.left - xf * w / amount,
224
+ max: c.left + (1 - xf) * w / amount
225
+ },
226
+ y: {
227
+ min: c.top - yf * h / amount,
228
+ max: c.top + (1 - yf) * h / amount
229
+ }
230
+ };
231
+
232
+ $.each(plot.getAxes(), function(_, axis) {
233
+ var opts = axis.options,
234
+ min = minmax[axis.direction].min,
235
+ max = minmax[axis.direction].max,
236
+ zr = opts.zoomRange,
237
+ pr = opts.panRange;
238
+
239
+ if (zr === false) // no zooming on this axis
240
+ return;
241
+
242
+ min = axis.c2p(min);
243
+ max = axis.c2p(max);
244
+ if (min > max) {
245
+ // make sure min < max
246
+ var tmp = min;
247
+ min = max;
248
+ max = tmp;
249
+ }
250
+
251
+ //Check that we are in panRange
252
+ if (pr) {
253
+ if (pr[0] != null && min < pr[0]) {
254
+ min = pr[0];
255
+ }
256
+ if (pr[1] != null && max > pr[1]) {
257
+ max = pr[1];
258
+ }
259
+ }
260
+
261
+ var range = max - min;
262
+ if (zr &&
263
+ ((zr[0] != null && range < zr[0] && amount >1) ||
264
+ (zr[1] != null && range > zr[1] && amount <1)))
265
+ return;
266
+
267
+ opts.min = min;
268
+ opts.max = max;
269
+ });
270
+
271
+ plot.setupGrid();
272
+ plot.draw();
273
+
274
+ if (!args.preventEvent)
275
+ plot.getPlaceholder().trigger("plotzoom", [ plot, args ]);
276
+ };
277
+
278
+ plot.pan = function (args) {
279
+ var delta = {
280
+ x: +args.left,
281
+ y: +args.top
282
+ };
283
+
284
+ if (isNaN(delta.x))
285
+ delta.x = 0;
286
+ if (isNaN(delta.y))
287
+ delta.y = 0;
288
+
289
+ $.each(plot.getAxes(), function (_, axis) {
290
+ var opts = axis.options,
291
+ min, max, d = delta[axis.direction];
292
+
293
+ min = axis.c2p(axis.p2c(axis.min) + d),
294
+ max = axis.c2p(axis.p2c(axis.max) + d);
295
+
296
+ var pr = opts.panRange;
297
+ if (pr === false) // no panning on this axis
298
+ return;
299
+
300
+ if (pr) {
301
+ // check whether we hit the wall
302
+ if (pr[0] != null && pr[0] > min) {
303
+ d = pr[0] - min;
304
+ min += d;
305
+ max += d;
306
+ }
307
+
308
+ if (pr[1] != null && pr[1] < max) {
309
+ d = pr[1] - max;
310
+ min += d;
311
+ max += d;
312
+ }
313
+ }
314
+
315
+ opts.min = min;
316
+ opts.max = max;
317
+ });
318
+
319
+ plot.setupGrid();
320
+ plot.draw();
321
+
322
+ if (!args.preventEvent)
323
+ plot.getPlaceholder().trigger("plotpan", [ plot, args ]);
324
+ };
325
+
326
+ function shutdown(plot, eventHolder) {
327
+ eventHolder.unbind(plot.getOptions().zoom.trigger, onZoomClick);
328
+ eventHolder.unbind("mousewheel", onMouseWheel);
329
+ eventHolder.unbind("dragstart", onDragStart);
330
+ eventHolder.unbind("drag", onDrag);
331
+ eventHolder.unbind("dragend", onDragEnd);
332
+ if (panTimeout)
333
+ clearTimeout(panTimeout);
334
+ }
335
+
336
+ plot.hooks.bindEvents.push(bindEvents);
337
+ plot.hooks.shutdown.push(shutdown);
338
+ }
339
+
340
+ $.plot.plugins.push({
341
+ init: init,
342
+ options: options,
343
+ name: 'navigate',
344
+ version: '1.3'
345
+ });
346
+ })(jQuery);
@@ -0,0 +1,7 @@
1
+ /* Javascript plotting library for jQuery, version 0.8.3.
2
+
3
+ Copyright (c) 2007-2014 IOLA and Ole Laursen.
4
+ Licensed under the MIT license.
5
+
6
+ */
7
+ (function(a){function e(h){var k,j=this,l=h.data||{};if(l.elem)j=h.dragTarget=l.elem,h.dragProxy=d.proxy||j,h.cursorOffsetX=l.pageX-l.left,h.cursorOffsetY=l.pageY-l.top,h.offsetX=h.pageX-h.cursorOffsetX,h.offsetY=h.pageY-h.cursorOffsetY;else if(d.dragging||l.which>0&&h.which!=l.which||a(h.target).is(l.not))return;switch(h.type){case"mousedown":return a.extend(l,a(j).offset(),{elem:j,target:h.target,pageX:h.pageX,pageY:h.pageY}),b.add(document,"mousemove mouseup",e,l),i(j,!1),d.dragging=null,!1;case!d.dragging&&"mousemove":if(g(h.pageX-l.pageX)+g(h.pageY-l.pageY)<l.distance)break;h.target=l.target,k=f(h,"dragstart",j),k!==!1&&(d.dragging=j,d.proxy=h.dragProxy=a(k||j)[0]);case"mousemove":if(d.dragging){if(k=f(h,"drag",j),c.drop&&(c.drop.allowed=k!==!1,c.drop.handler(h)),k!==!1)break;h.type="mouseup"}case"mouseup":b.remove(document,"mousemove mouseup",e),d.dragging&&(c.drop&&c.drop.handler(h),f(h,"dragend",j)),i(j,!0),d.dragging=d.proxy=l.elem=!1}return!0}function f(b,c,d){b.type=c;var e=a.event.dispatch.call(d,b);return e===!1?!1:e||b.result}function g(a){return Math.pow(a,2)}function h(){return d.dragging===!1}function i(a,b){a&&(a.unselectable=b?"off":"on",a.onselectstart=function(){return b},a.style&&(a.style.MozUserSelect=b?"":"none"))}a.fn.drag=function(a,b,c){return b&&this.bind("dragstart",a),c&&this.bind("dragend",c),a?this.bind("drag",b?b:a):this.trigger("drag")};var b=a.event,c=b.special,d=c.drag={not:":input",distance:0,which:1,dragging:!1,setup:function(c){c=a.extend({distance:d.distance,which:d.which,not:d.not},c||{}),c.distance=g(c.distance),b.add(this,"mousedown",e,c),this.attachEvent&&this.attachEvent("ondragstart",h)},teardown:function(){b.remove(this,"mousedown",e),this===d.dragging&&(d.dragging=d.proxy=!1),i(this,!0),this.detachEvent&&this.detachEvent("ondragstart",h)}};c.dragstart=c.dragend={setup:function(){},teardown:function(){}}})(jQuery);(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;void 0!==b.axis&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);void 0!==b.wheelDeltaY&&(g=b.wheelDeltaY/120);void 0!==b.wheelDeltaX&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]=d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,!1);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,!1);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);(function($){var options={xaxis:{zoomRange:null,panRange:null},zoom:{interactive:false,trigger:"dblclick",amount:1.5},pan:{interactive:false,cursor:"move",frameRate:20}};function init(plot){function onZoomClick(e,zoomOut){var c=plot.offset();c.left=e.pageX-c.left;c.top=e.pageY-c.top;if(zoomOut)plot.zoomOut({center:c});else plot.zoom({center:c})}function onMouseWheel(e,delta){e.preventDefault();onZoomClick(e,delta<0);return false}var prevCursor="default",prevPageX=0,prevPageY=0,panTimeout=null;function onDragStart(e){if(e.which!=1)return false;var c=plot.getPlaceholder().css("cursor");if(c)prevCursor=c;plot.getPlaceholder().css("cursor",plot.getOptions().pan.cursor);prevPageX=e.pageX;prevPageY=e.pageY}function onDrag(e){var frameRate=plot.getOptions().pan.frameRate;if(panTimeout||!frameRate)return;panTimeout=setTimeout(function(){plot.pan({left:prevPageX-e.pageX,top:prevPageY-e.pageY});prevPageX=e.pageX;prevPageY=e.pageY;panTimeout=null},1/frameRate*1e3)}function onDragEnd(e){if(panTimeout){clearTimeout(panTimeout);panTimeout=null}plot.getPlaceholder().css("cursor",prevCursor);plot.pan({left:prevPageX-e.pageX,top:prevPageY-e.pageY})}function bindEvents(plot,eventHolder){var o=plot.getOptions();if(o.zoom.interactive){eventHolder[o.zoom.trigger](onZoomClick);eventHolder.mousewheel(onMouseWheel)}if(o.pan.interactive){eventHolder.bind("dragstart",{distance:10},onDragStart);eventHolder.bind("drag",onDrag);eventHolder.bind("dragend",onDragEnd)}}plot.zoomOut=function(args){if(!args)args={};if(!args.amount)args.amount=plot.getOptions().zoom.amount;args.amount=1/args.amount;plot.zoom(args)};plot.zoom=function(args){if(!args)args={};var c=args.center,amount=args.amount||plot.getOptions().zoom.amount,w=plot.width(),h=plot.height();if(!c)c={left:w/2,top:h/2};var xf=c.left/w,yf=c.top/h,minmax={x:{min:c.left-xf*w/amount,max:c.left+(1-xf)*w/amount},y:{min:c.top-yf*h/amount,max:c.top+(1-yf)*h/amount}};$.each(plot.getAxes(),function(_,axis){var opts=axis.options,min=minmax[axis.direction].min,max=minmax[axis.direction].max,zr=opts.zoomRange,pr=opts.panRange;if(zr===false)return;min=axis.c2p(min);max=axis.c2p(max);if(min>max){var tmp=min;min=max;max=tmp}if(pr){if(pr[0]!=null&&min<pr[0]){min=pr[0]}if(pr[1]!=null&&max>pr[1]){max=pr[1]}}var range=max-min;if(zr&&(zr[0]!=null&&range<zr[0]&&amount>1||zr[1]!=null&&range>zr[1]&&amount<1))return;opts.min=min;opts.max=max});plot.setupGrid();plot.draw();if(!args.preventEvent)plot.getPlaceholder().trigger("plotzoom",[plot,args])};plot.pan=function(args){var delta={x:+args.left,y:+args.top};if(isNaN(delta.x))delta.x=0;if(isNaN(delta.y))delta.y=0;$.each(plot.getAxes(),function(_,axis){var opts=axis.options,min,max,d=delta[axis.direction];min=axis.c2p(axis.p2c(axis.min)+d),max=axis.c2p(axis.p2c(axis.max)+d);var pr=opts.panRange;if(pr===false)return;if(pr){if(pr[0]!=null&&pr[0]>min){d=pr[0]-min;min+=d;max+=d}if(pr[1]!=null&&pr[1]<max){d=pr[1]-max;min+=d;max+=d}}opts.min=min;opts.max=max});plot.setupGrid();plot.draw();if(!args.preventEvent)plot.getPlaceholder().trigger("plotpan",[plot,args])};function shutdown(plot,eventHolder){eventHolder.unbind(plot.getOptions().zoom.trigger,onZoomClick);eventHolder.unbind("mousewheel",onMouseWheel);eventHolder.unbind("dragstart",onDragStart);eventHolder.unbind("drag",onDrag);eventHolder.unbind("dragend",onDragEnd);if(panTimeout)clearTimeout(panTimeout)}plot.hooks.bindEvents.push(bindEvents);plot.hooks.shutdown.push(shutdown)}$.plot.plugins.push({init:init,options:options,name:"navigate",version:"1.3"})})(jQuery);