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.
- checksums.yaml +4 -4
- data/lib/postrunner/ActivityView.rb +26 -0
- data/lib/postrunner/version.rb +1 -1
- data/misc/flot/API.md +1498 -0
- data/misc/flot/CONTRIBUTING.md +98 -0
- data/misc/flot/FAQ.md +75 -0
- data/misc/flot/LICENSE.txt +22 -0
- data/misc/flot/Makefile +12 -0
- data/misc/flot/NEWS.md +1026 -0
- data/misc/flot/PLUGINS.md +143 -0
- data/misc/flot/README.md +110 -0
- data/misc/flot/examples/.DS_Store +0 -0
- data/misc/flot/examples/ajax/data-eu-gdp-growth-1.json +4 -0
- data/misc/flot/examples/ajax/data-eu-gdp-growth-2.json +4 -0
- data/misc/flot/examples/ajax/data-eu-gdp-growth-3.json +4 -0
- data/misc/flot/examples/ajax/data-eu-gdp-growth-4.json +4 -0
- data/misc/flot/examples/ajax/data-eu-gdp-growth-5.json +4 -0
- data/misc/flot/examples/ajax/data-eu-gdp-growth.json +4 -0
- data/misc/flot/examples/ajax/data-japan-gdp-growth.json +4 -0
- data/misc/flot/examples/ajax/data-usa-gdp-growth.json +4 -0
- data/misc/flot/examples/ajax/index.html +173 -0
- data/misc/flot/examples/annotating/index.html +87 -0
- data/misc/flot/examples/axes-interacting/index.html +97 -0
- data/misc/flot/examples/axes-multiple/index.html +77 -0
- data/misc/flot/examples/axes-time/index.html +137 -0
- data/misc/flot/examples/axes-time-zones/date.js +893 -0
- data/misc/flot/examples/axes-time-zones/index.html +114 -0
- data/misc/flot/examples/axes-time-zones/tz/africa +1181 -0
- data/misc/flot/examples/axes-time-zones/tz/antarctica +413 -0
- data/misc/flot/examples/axes-time-zones/tz/asia +2717 -0
- data/misc/flot/examples/axes-time-zones/tz/australasia +1719 -0
- data/misc/flot/examples/axes-time-zones/tz/backward +117 -0
- data/misc/flot/examples/axes-time-zones/tz/etcetera +81 -0
- data/misc/flot/examples/axes-time-zones/tz/europe +2856 -0
- data/misc/flot/examples/axes-time-zones/tz/factory +10 -0
- data/misc/flot/examples/axes-time-zones/tz/iso3166.tab +276 -0
- data/misc/flot/examples/axes-time-zones/tz/leapseconds +100 -0
- data/misc/flot/examples/axes-time-zones/tz/northamerica +3235 -0
- data/misc/flot/examples/axes-time-zones/tz/pacificnew +28 -0
- data/misc/flot/examples/axes-time-zones/tz/solar87 +390 -0
- data/misc/flot/examples/axes-time-zones/tz/solar88 +390 -0
- data/misc/flot/examples/axes-time-zones/tz/solar89 +395 -0
- data/misc/flot/examples/axes-time-zones/tz/southamerica +1711 -0
- data/misc/flot/examples/axes-time-zones/tz/systemv +38 -0
- data/misc/flot/examples/axes-time-zones/tz/yearistype.sh +38 -0
- data/misc/flot/examples/axes-time-zones/tz/zone.tab +441 -0
- data/misc/flot/examples/background.png +0 -0
- data/misc/flot/examples/basic-options/index.html +91 -0
- data/misc/flot/examples/basic-usage/index.html +57 -0
- data/misc/flot/examples/canvas/index.html +75 -0
- data/misc/flot/examples/categories/index.html +64 -0
- data/misc/flot/examples/examples.css +97 -0
- data/misc/flot/examples/image/hs-2004-27-a-large-web.jpg +0 -0
- data/misc/flot/examples/image/index.html +69 -0
- data/misc/flot/examples/index.html +80 -0
- data/misc/flot/examples/interacting/index.html +118 -0
- data/misc/flot/examples/navigate/arrow-down.gif +0 -0
- data/misc/flot/examples/navigate/arrow-left.gif +0 -0
- data/misc/flot/examples/navigate/arrow-right.gif +0 -0
- data/misc/flot/examples/navigate/arrow-up.gif +0 -0
- data/misc/flot/examples/navigate/index.html +153 -0
- data/misc/flot/examples/percentiles/index.html +79 -0
- data/misc/flot/examples/realtime/index.html +122 -0
- data/misc/flot/examples/resize/index.html +76 -0
- data/misc/flot/examples/selection/index.html +152 -0
- data/misc/flot/examples/series-errorbars/index.html +150 -0
- data/misc/flot/examples/series-pie/index.html +818 -0
- data/misc/flot/examples/series-toggle/index.html +121 -0
- data/misc/flot/examples/series-types/index.html +90 -0
- data/misc/flot/examples/shared/jquery-ui/jquery-ui.min.css +6 -0
- data/misc/flot/examples/shared/jquery-ui/jquery-ui.min.js +6 -0
- data/misc/flot/examples/stacking/index.html +107 -0
- data/misc/flot/examples/symbols/index.html +76 -0
- data/misc/flot/examples/threshold/index.html +76 -0
- data/misc/flot/examples/tracking/index.html +135 -0
- data/misc/flot/examples/visitors/index.html +147 -0
- data/misc/flot/examples/zooming/index.html +144 -0
- data/misc/flot/excanvas.js +1428 -0
- data/misc/flot/excanvas.min.js +1 -0
- data/misc/flot/jquery.colorhelpers.js +180 -0
- data/misc/flot/jquery.colorhelpers.min.js +1 -0
- data/misc/flot/jquery.flot.canvas.js +345 -0
- data/misc/flot/jquery.flot.canvas.min.js +7 -0
- data/misc/flot/jquery.flot.categories.js +190 -0
- data/misc/flot/jquery.flot.categories.min.js +7 -0
- data/misc/flot/jquery.flot.crosshair.js +176 -0
- data/misc/flot/jquery.flot.crosshair.min.js +7 -0
- data/misc/flot/jquery.flot.errorbars.js +353 -0
- data/misc/flot/jquery.flot.errorbars.min.js +7 -0
- data/misc/flot/jquery.flot.fillbetween.js +226 -0
- data/misc/flot/jquery.flot.fillbetween.min.js +7 -0
- data/misc/flot/jquery.flot.image.js +241 -0
- data/misc/flot/jquery.flot.image.min.js +7 -0
- data/misc/flot/jquery.flot.js +3168 -0
- data/misc/flot/jquery.flot.min.js +8 -0
- data/misc/flot/jquery.flot.navigate.js +346 -0
- data/misc/flot/jquery.flot.navigate.min.js +7 -0
- data/misc/flot/jquery.flot.pie.js +820 -0
- data/misc/flot/jquery.flot.pie.min.js +7 -0
- data/misc/flot/jquery.flot.resize.js +59 -0
- data/misc/flot/jquery.flot.resize.min.js +7 -0
- data/misc/flot/jquery.flot.selection.js +360 -0
- data/misc/flot/jquery.flot.selection.min.js +7 -0
- data/misc/flot/jquery.flot.stack.js +188 -0
- data/misc/flot/jquery.flot.stack.min.js +7 -0
- data/misc/flot/jquery.flot.symbol.js +71 -0
- data/misc/flot/jquery.flot.symbol.min.js +7 -0
- data/misc/flot/jquery.flot.threshold.js +142 -0
- data/misc/flot/jquery.flot.threshold.min.js +7 -0
- data/misc/flot/jquery.flot.time.js +432 -0
- data/misc/flot/jquery.flot.time.min.js +7 -0
- data/misc/flot/jquery.js +9472 -0
- data/misc/flot/jquery.min.js +5 -0
- data/misc/jquery/jquery-2.1.1.min.js +4 -0
- data/misc/openlayers/.gitignore +7 -0
- data/misc/openlayers/OpenLayers.debug.js +85622 -0
- data/misc/openlayers/OpenLayers.js +1443 -0
- data/misc/openlayers/OpenLayers.light.debug.js +37230 -0
- data/misc/openlayers/OpenLayers.light.js +592 -0
- data/misc/openlayers/OpenLayers.mobile.debug.js +41831 -0
- data/misc/openlayers/OpenLayers.mobile.js +681 -0
- data/misc/openlayers/apidoc_config/Languages.txt +113 -0
- data/misc/openlayers/apidoc_config/Menu.txt +520 -0
- data/misc/openlayers/apidoc_config/OL.css +20 -0
- data/misc/openlayers/apidoc_config/Topics.txt +105 -0
- data/misc/openlayers/art/arrows.svg +127 -0
- data/misc/openlayers/art/layer-switcher-maximize.svg +128 -0
- data/misc/openlayers/art/layer-switcher-minimize.svg +142 -0
- data/misc/openlayers/art/marker.svg +25 -0
- data/misc/openlayers/art/measuring-stick-off.svg +36 -0
- data/misc/openlayers/art/measuring-stick-on.svg +36 -0
- data/misc/openlayers/art/panning-hand-off.svg +44 -0
- data/misc/openlayers/art/panning-hand-on.svg +44 -0
- data/misc/openlayers/art/slider.svg +71 -0
- data/misc/openlayers/art/zoom-world.svg +193 -0
- data/misc/openlayers/art/zoombar.svg +73 -0
- data/misc/openlayers/authors.txt +56 -0
- data/misc/openlayers/build/README.txt +46 -0
- data/misc/openlayers/build/build.py +158 -0
- data/misc/openlayers/build/buildUncompressed.py +25 -0
- data/misc/openlayers/build/closure-compiler/Externs.js +50 -0
- data/misc/openlayers/build/full.cfg +14 -0
- data/misc/openlayers/build/license.txt +57 -0
- data/misc/openlayers/build/light.cfg +32 -0
- data/misc/openlayers/build/lite.cfg +17 -0
- data/misc/openlayers/build/mobile.cfg +36 -0
- data/misc/openlayers/build/tests.cfg +11 -0
- data/misc/openlayers/doc_config/Data/ClassHierarchy.nd +0 -0
- data/misc/openlayers/doc_config/Data/ConfigFileInfo.nd +0 -0
- data/misc/openlayers/doc_config/Data/FileInfo.nd +323 -0
- data/misc/openlayers/doc_config/Data/ImageFileInfo.nd +0 -0
- data/misc/openlayers/doc_config/Data/ImageReferenceTable.nd +0 -0
- data/misc/openlayers/doc_config/Data/IndexInfo.nd +0 -0
- data/misc/openlayers/doc_config/Data/PreviousMenuState.nd +0 -0
- data/misc/openlayers/doc_config/Data/PreviousSettings.nd +0 -0
- data/misc/openlayers/doc_config/Data/SymbolTable.nd +0 -0
- data/misc/openlayers/doc_config/Languages.txt +113 -0
- data/misc/openlayers/doc_config/Menu.txt +520 -0
- data/misc/openlayers/doc_config/OL.css +20 -0
- data/misc/openlayers/doc_config/Topics.txt +102 -0
- data/misc/openlayers/examples/Jugl.js +8 -0
- data/misc/openlayers/examples/KMLParser.html +57 -0
- data/misc/openlayers/examples/SLDSelect.html +202 -0
- data/misc/openlayers/examples/WMSDescribeLayerParser.html +52 -0
- data/misc/openlayers/examples/accelerometer.html +100 -0
- data/misc/openlayers/examples/accessible-click-control.html +69 -0
- data/misc/openlayers/examples/accessible-click-control.js +199 -0
- data/misc/openlayers/examples/accessible-panel.html +130 -0
- data/misc/openlayers/examples/accessible-panel.js +64 -0
- data/misc/openlayers/examples/accessible.html +167 -0
- data/misc/openlayers/examples/all-overlays-google.html +34 -0
- data/misc/openlayers/examples/all-overlays-google.js +19 -0
- data/misc/openlayers/examples/all-overlays.html +76 -0
- data/misc/openlayers/examples/anchor-permalink.html +29 -0
- data/misc/openlayers/examples/anchor-permalink.js +13 -0
- data/misc/openlayers/examples/animated_panning.html +98 -0
- data/misc/openlayers/examples/animator.js +670 -0
- data/misc/openlayers/examples/arcgis93rest.html +69 -0
- data/misc/openlayers/examples/arcgiscache_ags.html +221 -0
- data/misc/openlayers/examples/arcgiscache_direct.html +108 -0
- data/misc/openlayers/examples/arcgiscache_jsonp.html +106 -0
- data/misc/openlayers/examples/arcims-thematic.html +82 -0
- data/misc/openlayers/examples/arcims.html +57 -0
- data/misc/openlayers/examples/attribution.html +60 -0
- data/misc/openlayers/examples/behavior-fixed-http-gml.html +56 -0
- data/misc/openlayers/examples/bing-tiles-restrictedzoom.html +43 -0
- data/misc/openlayers/examples/bing-tiles-restrictedzoom.js +37 -0
- data/misc/openlayers/examples/bing-tiles.html +39 -0
- data/misc/openlayers/examples/bing-tiles.js +31 -0
- data/misc/openlayers/examples/bing.html +64 -0
- data/misc/openlayers/examples/bootstrap.html +81 -0
- data/misc/openlayers/examples/bootstrap.js +31 -0
- data/misc/openlayers/examples/boxes-vector.html +59 -0
- data/misc/openlayers/examples/boxes.html +58 -0
- data/misc/openlayers/examples/browser.html +152 -0
- data/misc/openlayers/examples/browser.js +241 -0
- data/misc/openlayers/examples/buffer.html +54 -0
- data/misc/openlayers/examples/cache-read.html +36 -0
- data/misc/openlayers/examples/cache-read.js +36 -0
- data/misc/openlayers/examples/cache-write.html +37 -0
- data/misc/openlayers/examples/cache-write.js +46 -0
- data/misc/openlayers/examples/canvas-hit-detection.html +31 -0
- data/misc/openlayers/examples/canvas-hit-detection.js +88 -0
- data/misc/openlayers/examples/canvas-inspector.html +53 -0
- data/misc/openlayers/examples/canvas-inspector.js +91 -0
- data/misc/openlayers/examples/canvas.html +35 -0
- data/misc/openlayers/examples/canvas.js +57 -0
- data/misc/openlayers/examples/cartodb-geojson.html +71 -0
- data/misc/openlayers/examples/click-handler.html +232 -0
- data/misc/openlayers/examples/click.html +91 -0
- data/misc/openlayers/examples/clientzoom.html +72 -0
- data/misc/openlayers/examples/clientzoom.js +39 -0
- data/misc/openlayers/examples/controls.html +86 -0
- data/misc/openlayers/examples/cql-format.html +54 -0
- data/misc/openlayers/examples/cql-format.js +61 -0
- data/misc/openlayers/examples/cross-origin-xml.html +32 -0
- data/misc/openlayers/examples/cross-origin-xml.js +25 -0
- data/misc/openlayers/examples/cross-origin.html +36 -0
- data/misc/openlayers/examples/cross-origin.js +39 -0
- data/misc/openlayers/examples/custom-control.html +68 -0
- data/misc/openlayers/examples/custom-style.html +66 -0
- data/misc/openlayers/examples/data/4_m_citylights_lg.gif +0 -0
- data/misc/openlayers/examples/data/line.json +10 -0
- data/misc/openlayers/examples/data/point.json +8 -0
- data/misc/openlayers/examples/data/poly.json +9 -0
- data/misc/openlayers/examples/data/roads.json +349 -0
- data/misc/openlayers/examples/data/tazdem.tiff +0 -0
- data/misc/openlayers/examples/debug.html +77 -0
- data/misc/openlayers/examples/document-drag.html +43 -0
- data/misc/openlayers/examples/donut.html +62 -0
- data/misc/openlayers/examples/donut.js +44 -0
- data/misc/openlayers/examples/drag-feature.html +114 -0
- data/misc/openlayers/examples/draw-feature.html +143 -0
- data/misc/openlayers/examples/draw-undo-redo.html +38 -0
- data/misc/openlayers/examples/draw-undo-redo.js +45 -0
- data/misc/openlayers/examples/dynamic-text-layer.html +101 -0
- data/misc/openlayers/examples/editing-methods.html +58 -0
- data/misc/openlayers/examples/editing-methods.js +83 -0
- data/misc/openlayers/examples/editingtoolbar-outside.html +56 -0
- data/misc/openlayers/examples/editingtoolbar.html +55 -0
- data/misc/openlayers/examples/encoded-polyline.html +47 -0
- data/misc/openlayers/examples/events.html +155 -0
- data/misc/openlayers/examples/example-list.html +302 -0
- data/misc/openlayers/examples/example.html +25 -0
- data/misc/openlayers/examples/example.js +23 -0
- data/misc/openlayers/examples/feature-events.html +46 -0
- data/misc/openlayers/examples/feature-events.js +67 -0
- data/misc/openlayers/examples/filter-strategy.html +54 -0
- data/misc/openlayers/examples/filter-strategy.js +84 -0
- data/misc/openlayers/examples/filter.html +107 -0
- data/misc/openlayers/examples/fractional-zoom.html +72 -0
- data/misc/openlayers/examples/fullScreen.html +53 -0
- data/misc/openlayers/examples/fullScreen.js +20 -0
- data/misc/openlayers/examples/fusiontables.html +35 -0
- data/misc/openlayers/examples/fusiontables.js +51 -0
- data/misc/openlayers/examples/game-accel-ball.html +82 -0
- data/misc/openlayers/examples/geojson-reprojected.html +46 -0
- data/misc/openlayers/examples/geojson-reprojected.js +27 -0
- data/misc/openlayers/examples/geojson-reprojected.json +1 -0
- data/misc/openlayers/examples/geojson.html +77 -0
- data/misc/openlayers/examples/geolocation.html +41 -0
- data/misc/openlayers/examples/geolocation.js +112 -0
- data/misc/openlayers/examples/georss-flickr.html +119 -0
- data/misc/openlayers/examples/georss-markers.html +45 -0
- data/misc/openlayers/examples/georss.html +63 -0
- data/misc/openlayers/examples/georss.xml +378 -0
- data/misc/openlayers/examples/getfeature-wfs.html +84 -0
- data/misc/openlayers/examples/getfeatureinfo-control.html +221 -0
- data/misc/openlayers/examples/getfeatureinfo-popup.html +96 -0
- data/misc/openlayers/examples/gml/line.xml +42 -0
- data/misc/openlayers/examples/gml/multipoint.xml +70 -0
- data/misc/openlayers/examples/gml/multipolygon.xml +106 -0
- data/misc/openlayers/examples/gml/owls.xml +156 -0
- data/misc/openlayers/examples/gml/point.xml +42 -0
- data/misc/openlayers/examples/gml/polygon.xml +89 -0
- data/misc/openlayers/examples/gml-layer.html +48 -0
- data/misc/openlayers/examples/google-static.html +39 -0
- data/misc/openlayers/examples/google-static.js +61 -0
- data/misc/openlayers/examples/google-v3-alloverlays.html +33 -0
- data/misc/openlayers/examples/google-v3-alloverlays.js +35 -0
- data/misc/openlayers/examples/google-v3.html +35 -0
- data/misc/openlayers/examples/google-v3.js +39 -0
- data/misc/openlayers/examples/google.html +69 -0
- data/misc/openlayers/examples/graphic-name.html +42 -0
- data/misc/openlayers/examples/graphic-name.js +67 -0
- data/misc/openlayers/examples/graticule.html +116 -0
- data/misc/openlayers/examples/gutter.html +55 -0
- data/misc/openlayers/examples/highlight-feature.html +88 -0
- data/misc/openlayers/examples/hover-handler.html +216 -0
- data/misc/openlayers/examples/image-layer.html +76 -0
- data/misc/openlayers/examples/img/check-round-green.png +0 -0
- data/misc/openlayers/examples/img/check-round-grey.png +0 -0
- data/misc/openlayers/examples/img/list.png +0 -0
- data/misc/openlayers/examples/img/locate.png +0 -0
- data/misc/openlayers/examples/img/marker_shadow.png +0 -0
- data/misc/openlayers/examples/img/minus1.png +0 -0
- data/misc/openlayers/examples/img/mobile-layers.png +0 -0
- data/misc/openlayers/examples/img/mobile-loc.png +0 -0
- data/misc/openlayers/examples/img/mobile-zoombar.png +0 -0
- data/misc/openlayers/examples/img/openlayers.png +0 -0
- data/misc/openlayers/examples/img/popupMatrix.jpg +0 -0
- data/misc/openlayers/examples/img/small.jpg +0 -0
- data/misc/openlayers/examples/img/thinlong.jpg +0 -0
- data/misc/openlayers/examples/img/widelong.jpg +0 -0
- data/misc/openlayers/examples/img/wideshort.jpg +0 -0
- data/misc/openlayers/examples/intersects.html +193 -0
- data/misc/openlayers/examples/kamap.html +45 -0
- data/misc/openlayers/examples/kamap.txt +508 -0
- data/misc/openlayers/examples/kinetic.html +44 -0
- data/misc/openlayers/examples/kinetic.js +27 -0
- data/misc/openlayers/examples/kml/lines.kml +275 -0
- data/misc/openlayers/examples/kml/styles.kml +21 -0
- data/misc/openlayers/examples/kml/sundials.kml +2273 -0
- data/misc/openlayers/examples/kml-layer.html +36 -0
- data/misc/openlayers/examples/kml-layer.js +22 -0
- data/misc/openlayers/examples/kml-pointtrack.html +40 -0
- data/misc/openlayers/examples/kml-pointtrack.js +52 -0
- data/misc/openlayers/examples/kml-track.html +42 -0
- data/misc/openlayers/examples/kml-track.js +40 -0
- data/misc/openlayers/examples/kml-track.kml +3359 -0
- data/misc/openlayers/examples/label-scale.html +34 -0
- data/misc/openlayers/examples/label-scale.js +72 -0
- data/misc/openlayers/examples/late-render.html +48 -0
- data/misc/openlayers/examples/layer-opacity.html +95 -0
- data/misc/openlayers/examples/layerLoadMonitoring.html +135 -0
- data/misc/openlayers/examples/layerswitcher.html +60 -0
- data/misc/openlayers/examples/light-basic.html +35 -0
- data/misc/openlayers/examples/light-basic.js +67 -0
- data/misc/openlayers/examples/lite.html +39 -0
- data/misc/openlayers/examples/mapbox.html +30 -0
- data/misc/openlayers/examples/mapbox.js +21 -0
- data/misc/openlayers/examples/mapguide.html +155 -0
- data/misc/openlayers/examples/mapquest.html +28 -0
- data/misc/openlayers/examples/mapquest.js +36 -0
- data/misc/openlayers/examples/mapserver.html +41 -0
- data/misc/openlayers/examples/mapserver_untiled.html +43 -0
- data/misc/openlayers/examples/marker-shadow.html +152 -0
- data/misc/openlayers/examples/markerResize.html +60 -0
- data/misc/openlayers/examples/markers.html +59 -0
- data/misc/openlayers/examples/markersTextLayer.html +41 -0
- data/misc/openlayers/examples/measure.html +203 -0
- data/misc/openlayers/examples/mobile-base.js +167 -0
- data/misc/openlayers/examples/mobile-drawing.html +52 -0
- data/misc/openlayers/examples/mobile-drawing.js +71 -0
- data/misc/openlayers/examples/mobile-jq.html +76 -0
- data/misc/openlayers/examples/mobile-jq.js +159 -0
- data/misc/openlayers/examples/mobile-layers.html +62 -0
- data/misc/openlayers/examples/mobile-layers.js +71 -0
- data/misc/openlayers/examples/mobile-navigation.html +52 -0
- data/misc/openlayers/examples/mobile-navigation.js +24 -0
- data/misc/openlayers/examples/mobile-sencha.html +184 -0
- data/misc/openlayers/examples/mobile-sencha.js +198 -0
- data/misc/openlayers/examples/mobile-wmts-vienna.css +205 -0
- data/misc/openlayers/examples/mobile-wmts-vienna.html +27 -0
- data/misc/openlayers/examples/mobile-wmts-vienna.js +281 -0
- data/misc/openlayers/examples/mobile.html +56 -0
- data/misc/openlayers/examples/mobile.js +39 -0
- data/misc/openlayers/examples/modify-feature.html +193 -0
- data/misc/openlayers/examples/mouse-position.html +67 -0
- data/misc/openlayers/examples/mousewheel-interval.html +63 -0
- data/misc/openlayers/examples/multiserver.html +52 -0
- data/misc/openlayers/examples/multitouch.html +28 -0
- data/misc/openlayers/examples/mvs.html +129 -0
- data/misc/openlayers/examples/navigation-control.html +44 -0
- data/misc/openlayers/examples/navigation-history.html +62 -0
- data/misc/openlayers/examples/navtoolbar-alwaysZoom.html +85 -0
- data/misc/openlayers/examples/navtoolbar-outsidemap.html +47 -0
- data/misc/openlayers/examples/navtoolbar.html +46 -0
- data/misc/openlayers/examples/offline-storage.html +44 -0
- data/misc/openlayers/examples/offline-storage.js +199 -0
- data/misc/openlayers/examples/openls.html +88 -0
- data/misc/openlayers/examples/ordering.html +221 -0
- data/misc/openlayers/examples/osm/sutton_coldfield.osm +662 -0
- data/misc/openlayers/examples/osm-google.html +32 -0
- data/misc/openlayers/examples/osm-google.js +23 -0
- data/misc/openlayers/examples/osm-grayscale.html +77 -0
- data/misc/openlayers/examples/osm-marker-popup.html +32 -0
- data/misc/openlayers/examples/osm-marker-popup.js +39 -0
- data/misc/openlayers/examples/osm.html +41 -0
- data/misc/openlayers/examples/overviewmap.html +120 -0
- data/misc/openlayers/examples/pan-zoom-panels.html +97 -0
- data/misc/openlayers/examples/panel.html +99 -0
- data/misc/openlayers/examples/point-grid.html +75 -0
- data/misc/openlayers/examples/point-grid.js +33 -0
- data/misc/openlayers/examples/point-track-markers.html +72 -0
- data/misc/openlayers/examples/polar-projections.html +41 -0
- data/misc/openlayers/examples/polar-projections.js +84 -0
- data/misc/openlayers/examples/popupMatrix.html +652 -0
- data/misc/openlayers/examples/proxy.cgi +81 -0
- data/misc/openlayers/examples/regular-polygons.html +177 -0
- data/misc/openlayers/examples/resize-features.html +101 -0
- data/misc/openlayers/examples/restricted-extent.html +77 -0
- data/misc/openlayers/examples/rotate-features.html +113 -0
- data/misc/openlayers/examples/select-feature-multilayer.html +129 -0
- data/misc/openlayers/examples/select-feature-openpopup.html +106 -0
- data/misc/openlayers/examples/select-feature.html +170 -0
- data/misc/openlayers/examples/setextent.html +39 -0
- data/misc/openlayers/examples/simplify-linestring.html +103 -0
- data/misc/openlayers/examples/simplify-linestring.js +599 -0
- data/misc/openlayers/examples/single-tile.html +33 -0
- data/misc/openlayers/examples/single-tile.js +20 -0
- data/misc/openlayers/examples/sld-parser.html +70 -0
- data/misc/openlayers/examples/sld.html +31 -0
- data/misc/openlayers/examples/sld.js +102 -0
- data/misc/openlayers/examples/snap-grid.html +78 -0
- data/misc/openlayers/examples/snap-grid.js +81 -0
- data/misc/openlayers/examples/snap-split.html +281 -0
- data/misc/openlayers/examples/snapping.html +324 -0
- data/misc/openlayers/examples/sos.html +189 -0
- data/misc/openlayers/examples/spherical-mercator.html +120 -0
- data/misc/openlayers/examples/split-feature.html +116 -0
- data/misc/openlayers/examples/strategy-bbox.html +106 -0
- data/misc/openlayers/examples/strategy-cluster-extended.html +125 -0
- data/misc/openlayers/examples/strategy-cluster-extended.js +247 -0
- data/misc/openlayers/examples/strategy-cluster-threshold.html +149 -0
- data/misc/openlayers/examples/strategy-cluster.html +238 -0
- data/misc/openlayers/examples/strategy-paging.html +115 -0
- data/misc/openlayers/examples/style-rules.html +49 -0
- data/misc/openlayers/examples/style-rules.js +99 -0
- data/misc/openlayers/examples/style.css +143 -0
- data/misc/openlayers/examples/style.mobile-jq.css +62 -0
- data/misc/openlayers/examples/stylemap.html +100 -0
- data/misc/openlayers/examples/styles-context.html +117 -0
- data/misc/openlayers/examples/styles-rotation.html +93 -0
- data/misc/openlayers/examples/styles-unique.html +109 -0
- data/misc/openlayers/examples/sundials-spherical-mercator.html +111 -0
- data/misc/openlayers/examples/sundials.html +107 -0
- data/misc/openlayers/examples/symbolizers-fill-stroke-graphic.html +141 -0
- data/misc/openlayers/examples/tasmania/TasmaniaCities.xml +40 -0
- data/misc/openlayers/examples/tasmania/TasmaniaRoads.xml +204 -0
- data/misc/openlayers/examples/tasmania/TasmaniaStateBoundaries.xml +92 -0
- data/misc/openlayers/examples/tasmania/TasmaniaWaterBodies.xml +162 -0
- data/misc/openlayers/examples/tasmania/sld-tasmania.xml +594 -0
- data/misc/openlayers/examples/teleportation.html +76 -0
- data/misc/openlayers/examples/textfile.txt +4 -0
- data/misc/openlayers/examples/tile-origin.html +38 -0
- data/misc/openlayers/examples/tile-origin.js +16 -0
- data/misc/openlayers/examples/tilecache.html +58 -0
- data/misc/openlayers/examples/tms.html +62 -0
- data/misc/openlayers/examples/transform-feature.html +123 -0
- data/misc/openlayers/examples/transition.html +70 -0
- data/misc/openlayers/examples/using-proj4js.html +109 -0
- data/misc/openlayers/examples/using-proj4js.js +132 -0
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/0.json +1 -0
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/1.json +1 -0
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/2.json +1 -0
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/0.json +1 -0
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/1.json +1 -0
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/2.json +1 -0
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/0.json +1 -0
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/1.json +1 -0
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/2.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/0/0/0.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/1/0/0.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/1/0/1.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/1/1/0.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/1/1/1.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/0/0.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/0/1.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/0/2.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/0/3.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/1/0.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/1/1.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/1/2.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/1/3.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/2/0.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/2/1.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/2/2.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/2/3.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/3/0.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/3/1.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/3/2.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/geography-class/2/3/3.grid.json +1 -0
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/0.json +1 -0
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/1.json +1 -0
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/2.json +1 -0
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/0.json +1 -0
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/1.json +1 -0
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/2.json +1 -0
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/0.json +1 -0
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/1.json +1 -0
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/2.json +1 -0
- data/misc/openlayers/examples/utfgrid-geography-class.html +51 -0
- data/misc/openlayers/examples/utfgrid-geography-class.js +62 -0
- data/misc/openlayers/examples/utfgrid.html +64 -0
- data/misc/openlayers/examples/utfgrid.js +61 -0
- data/misc/openlayers/examples/utfgrid_twogrids.html +51 -0
- data/misc/openlayers/examples/utfgrid_twogrids.js +70 -0
- data/misc/openlayers/examples/vector-features-with-text.html +138 -0
- data/misc/openlayers/examples/vector-features.html +149 -0
- data/misc/openlayers/examples/vector-formats.html +240 -0
- data/misc/openlayers/examples/web-mercator.html +50 -0
- data/misc/openlayers/examples/web-mercator.js +37 -0
- data/misc/openlayers/examples/wfs-filter.html +35 -0
- data/misc/openlayers/examples/wfs-filter.js +48 -0
- data/misc/openlayers/examples/wfs-protocol-transactions.html +104 -0
- data/misc/openlayers/examples/wfs-protocol-transactions.js +106 -0
- data/misc/openlayers/examples/wfs-protocol.html +55 -0
- data/misc/openlayers/examples/wfs-reprojection.html +42 -0
- data/misc/openlayers/examples/wfs-reprojection.js +60 -0
- data/misc/openlayers/examples/wfs-snap-split.html +292 -0
- data/misc/openlayers/examples/wfs-spatial-filter.html +37 -0
- data/misc/openlayers/examples/wfs-spatial-filter.js +36 -0
- data/misc/openlayers/examples/wfs-states.html +34 -0
- data/misc/openlayers/examples/wfs-states.js +35 -0
- data/misc/openlayers/examples/wmc.html +150 -0
- data/misc/openlayers/examples/wms-long-url.html +44 -0
- data/misc/openlayers/examples/wms-long-url.js +26 -0
- data/misc/openlayers/examples/wms-untiled.html +48 -0
- data/misc/openlayers/examples/wms-v13.html +57 -0
- data/misc/openlayers/examples/wms.html +49 -0
- data/misc/openlayers/examples/wmst.html +63 -0
- data/misc/openlayers/examples/wmts-capabilities.html +43 -0
- data/misc/openlayers/examples/wmts-capabilities.js +58 -0
- data/misc/openlayers/examples/wmts-getfeatureinfo.html +74 -0
- data/misc/openlayers/examples/wmts-getfeatureinfo.js +94 -0
- data/misc/openlayers/examples/wmts.html +41 -0
- data/misc/openlayers/examples/wmts.js +35 -0
- data/misc/openlayers/examples/wps-client.html +31 -0
- data/misc/openlayers/examples/wps-client.js +75 -0
- data/misc/openlayers/examples/wps.html +89 -0
- data/misc/openlayers/examples/wps.js +353 -0
- data/misc/openlayers/examples/wrapDateLine.html +73 -0
- data/misc/openlayers/examples/xhtml.html +42 -0
- data/misc/openlayers/examples/xml/features.xml +2 -0
- data/misc/openlayers/examples/xml/georss-flickr.xml +730 -0
- data/misc/openlayers/examples/xml/track1.xml +98 -0
- data/misc/openlayers/examples/xml/wmsdescribelayer.xml +5 -0
- data/misc/openlayers/examples/xml.html +161 -0
- data/misc/openlayers/examples/xyz-esri.html +45 -0
- data/misc/openlayers/examples/yelp-georss.xml +147 -0
- data/misc/openlayers/examples/zoom.html +68 -0
- data/misc/openlayers/examples/zoom.js +34 -0
- data/misc/openlayers/examples/zoomLevels.html +81 -0
- data/misc/openlayers/examples/zoomify.html +70 -0
- data/misc/openlayers/img/blank.gif +0 -0
- data/misc/openlayers/img/cloud-popup-relative.png +0 -0
- data/misc/openlayers/img/drag-rectangle-off.png +0 -0
- data/misc/openlayers/img/drag-rectangle-on.png +0 -0
- data/misc/openlayers/img/east-mini.png +0 -0
- data/misc/openlayers/img/layer-switcher-maximize.png +0 -0
- data/misc/openlayers/img/layer-switcher-minimize.png +0 -0
- data/misc/openlayers/img/marker-blue.png +0 -0
- data/misc/openlayers/img/marker-gold.png +0 -0
- data/misc/openlayers/img/marker-green.png +0 -0
- data/misc/openlayers/img/marker.png +0 -0
- data/misc/openlayers/img/measuring-stick-off.png +0 -0
- data/misc/openlayers/img/measuring-stick-on.png +0 -0
- data/misc/openlayers/img/north-mini.png +0 -0
- data/misc/openlayers/img/panning-hand-off.png +0 -0
- data/misc/openlayers/img/panning-hand-on.png +0 -0
- data/misc/openlayers/img/slider.png +0 -0
- data/misc/openlayers/img/south-mini.png +0 -0
- data/misc/openlayers/img/west-mini.png +0 -0
- data/misc/openlayers/img/zoom-minus-mini.png +0 -0
- data/misc/openlayers/img/zoom-plus-mini.png +0 -0
- data/misc/openlayers/img/zoom-world-mini.png +0 -0
- data/misc/openlayers/img/zoombar.png +0 -0
- data/misc/openlayers/lib/Firebug/errorIcon.png +0 -0
- data/misc/openlayers/lib/Firebug/firebug.css +209 -0
- data/misc/openlayers/lib/Firebug/firebug.html +23 -0
- data/misc/openlayers/lib/Firebug/firebug.js +674 -0
- data/misc/openlayers/lib/Firebug/firebugx.js +10 -0
- data/misc/openlayers/lib/Firebug/infoIcon.png +0 -0
- data/misc/openlayers/lib/Firebug/license.txt +30 -0
- data/misc/openlayers/lib/Firebug/readme.txt +13 -0
- data/misc/openlayers/lib/Firebug/warningIcon.png +0 -0
- data/misc/openlayers/lib/OpenLayers/Animation.js +102 -0
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Bounds.js +837 -0
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Class.js +121 -0
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Date.js +123 -0
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Element.js +189 -0
- data/misc/openlayers/lib/OpenLayers/BaseTypes/LonLat.js +215 -0
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Pixel.js +143 -0
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Size.js +89 -0
- data/misc/openlayers/lib/OpenLayers/BaseTypes.js +463 -0
- data/misc/openlayers/lib/OpenLayers/Console.js +250 -0
- data/misc/openlayers/lib/OpenLayers/Control/ArgParser.js +182 -0
- data/misc/openlayers/lib/OpenLayers/Control/Attribution.js +104 -0
- data/misc/openlayers/lib/OpenLayers/Control/Button.js +44 -0
- data/misc/openlayers/lib/OpenLayers/Control/CacheRead.js +156 -0
- data/misc/openlayers/lib/OpenLayers/Control/CacheWrite.js +257 -0
- data/misc/openlayers/lib/OpenLayers/Control/DragFeature.js +366 -0
- data/misc/openlayers/lib/OpenLayers/Control/DragPan.js +156 -0
- data/misc/openlayers/lib/OpenLayers/Control/DrawFeature.js +229 -0
- data/misc/openlayers/lib/OpenLayers/Control/EditingToolbar.js +81 -0
- data/misc/openlayers/lib/OpenLayers/Control/Geolocate.js +192 -0
- data/misc/openlayers/lib/OpenLayers/Control/GetFeature.js +597 -0
- data/misc/openlayers/lib/OpenLayers/Control/Graticule.js +377 -0
- data/misc/openlayers/lib/OpenLayers/Control/KeyboardDefaults.js +142 -0
- data/misc/openlayers/lib/OpenLayers/Control/LayerSwitcher.js +521 -0
- data/misc/openlayers/lib/OpenLayers/Control/Measure.js +379 -0
- data/misc/openlayers/lib/OpenLayers/Control/ModifyFeature.js +835 -0
- data/misc/openlayers/lib/OpenLayers/Control/MousePosition.js +227 -0
- data/misc/openlayers/lib/OpenLayers/Control/NavToolbar.js +57 -0
- data/misc/openlayers/lib/OpenLayers/Control/Navigation.js +345 -0
- data/misc/openlayers/lib/OpenLayers/Control/NavigationHistory.js +423 -0
- data/misc/openlayers/lib/OpenLayers/Control/OverviewMap.js +750 -0
- data/misc/openlayers/lib/OpenLayers/Control/Pan.js +95 -0
- data/misc/openlayers/lib/OpenLayers/Control/PanPanel.js +73 -0
- data/misc/openlayers/lib/OpenLayers/Control/PanZoom.js +233 -0
- data/misc/openlayers/lib/OpenLayers/Control/PanZoomBar.js +408 -0
- data/misc/openlayers/lib/OpenLayers/Control/Panel.js +431 -0
- data/misc/openlayers/lib/OpenLayers/Control/Permalink.js +257 -0
- data/misc/openlayers/lib/OpenLayers/Control/PinchZoom.js +157 -0
- data/misc/openlayers/lib/OpenLayers/Control/SLDSelect.js +567 -0
- data/misc/openlayers/lib/OpenLayers/Control/Scale.js +100 -0
- data/misc/openlayers/lib/OpenLayers/Control/ScaleLine.js +220 -0
- data/misc/openlayers/lib/OpenLayers/Control/SelectFeature.js +643 -0
- data/misc/openlayers/lib/OpenLayers/Control/Snapping.js +560 -0
- data/misc/openlayers/lib/OpenLayers/Control/Split.js +494 -0
- data/misc/openlayers/lib/OpenLayers/Control/TouchNavigation.js +182 -0
- data/misc/openlayers/lib/OpenLayers/Control/TransformFeature.js +624 -0
- data/misc/openlayers/lib/OpenLayers/Control/UTFGrid.js +240 -0
- data/misc/openlayers/lib/OpenLayers/Control/WMSGetFeatureInfo.js +532 -0
- data/misc/openlayers/lib/OpenLayers/Control/WMTSGetFeatureInfo.js +400 -0
- data/misc/openlayers/lib/OpenLayers/Control/Zoom.js +138 -0
- data/misc/openlayers/lib/OpenLayers/Control/ZoomBox.js +129 -0
- data/misc/openlayers/lib/OpenLayers/Control/ZoomIn.js +29 -0
- data/misc/openlayers/lib/OpenLayers/Control/ZoomOut.js +29 -0
- data/misc/openlayers/lib/OpenLayers/Control/ZoomPanel.js +54 -0
- data/misc/openlayers/lib/OpenLayers/Control/ZoomToMaxExtent.js +35 -0
- data/misc/openlayers/lib/OpenLayers/Control.js +371 -0
- data/misc/openlayers/lib/OpenLayers/Events/buttonclick.js +206 -0
- data/misc/openlayers/lib/OpenLayers/Events/featureclick.js +321 -0
- data/misc/openlayers/lib/OpenLayers/Events.js +1170 -0
- data/misc/openlayers/lib/OpenLayers/Feature/Vector.js +510 -0
- data/misc/openlayers/lib/OpenLayers/Feature.js +225 -0
- data/misc/openlayers/lib/OpenLayers/Filter/Comparison.js +267 -0
- data/misc/openlayers/lib/OpenLayers/Filter/FeatureId.js +87 -0
- data/misc/openlayers/lib/OpenLayers/Filter/Function.js +49 -0
- data/misc/openlayers/lib/OpenLayers/Filter/Logical.js +121 -0
- data/misc/openlayers/lib/OpenLayers/Filter/Spatial.js +122 -0
- data/misc/openlayers/lib/OpenLayers/Filter.js +87 -0
- data/misc/openlayers/lib/OpenLayers/Format/ArcXML/Features.js +46 -0
- data/misc/openlayers/lib/OpenLayers/Format/ArcXML.js +1028 -0
- data/misc/openlayers/lib/OpenLayers/Format/Atom.js +712 -0
- data/misc/openlayers/lib/OpenLayers/Format/CQL.js +452 -0
- data/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js +240 -0
- data/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain.js +34 -0
- data/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js +457 -0
- data/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords.js +34 -0
- data/misc/openlayers/lib/OpenLayers/Format/Context.js +334 -0
- data/misc/openlayers/lib/OpenLayers/Format/EncodedPolyline.js +557 -0
- data/misc/openlayers/lib/OpenLayers/Format/Filter/v1.js +504 -0
- data/misc/openlayers/lib/OpenLayers/Format/Filter/v1_0_0.js +184 -0
- data/misc/openlayers/lib/OpenLayers/Format/Filter/v1_1_0.js +222 -0
- data/misc/openlayers/lib/OpenLayers/Format/Filter.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Format/GML/Base.js +645 -0
- data/misc/openlayers/lib/OpenLayers/Format/GML/v2.js +193 -0
- data/misc/openlayers/lib/OpenLayers/Format/GML/v3.js +477 -0
- data/misc/openlayers/lib/OpenLayers/Format/GML.js +923 -0
- data/misc/openlayers/lib/OpenLayers/Format/GPX.js +385 -0
- data/misc/openlayers/lib/OpenLayers/Format/GeoJSON.js +716 -0
- data/misc/openlayers/lib/OpenLayers/Format/GeoRSS.js +409 -0
- data/misc/openlayers/lib/OpenLayers/Format/JSON.js +398 -0
- data/misc/openlayers/lib/OpenLayers/Format/KML.js +1517 -0
- data/misc/openlayers/lib/OpenLayers/Format/OGCExceptionReport.js +108 -0
- data/misc/openlayers/lib/OpenLayers/Format/OSM.js +465 -0
- data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1.js +318 -0
- data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_0_0.js +62 -0
- data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_1_0.js +116 -0
- data/misc/openlayers/lib/OpenLayers/Format/OWSCommon.js +78 -0
- data/misc/openlayers/lib/OpenLayers/Format/OWSContext/v0_3_1.js +595 -0
- data/misc/openlayers/lib/OpenLayers/Format/OWSContext.js +86 -0
- data/misc/openlayers/lib/OpenLayers/Format/QueryStringFilter.js +183 -0
- data/misc/openlayers/lib/OpenLayers/Format/SLD/v1.js +1309 -0
- data/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0.js +46 -0
- data/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js +149 -0
- data/misc/openlayers/lib/OpenLayers/Format/SLD.js +81 -0
- data/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js +158 -0
- data/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities.js +48 -0
- data/misc/openlayers/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js +190 -0
- data/misc/openlayers/lib/OpenLayers/Format/SOSGetObservation.js +302 -0
- data/misc/openlayers/lib/OpenLayers/Format/Text.js +151 -0
- data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1.js +55 -0
- data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_0_0.js +170 -0
- data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_1_0.js +109 -0
- data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities.js +47 -0
- data/misc/openlayers/lib/OpenLayers/Format/WCSGetCoverage.js +199 -0
- data/misc/openlayers/lib/OpenLayers/Format/WFS.js +223 -0
- data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1.js +129 -0
- data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js +115 -0
- data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js +63 -0
- data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities.js +47 -0
- data/misc/openlayers/lib/OpenLayers/Format/WFSDescribeFeatureType.js +234 -0
- data/misc/openlayers/lib/OpenLayers/Format/WFST/v1.js +446 -0
- data/misc/openlayers/lib/OpenLayers/Format/WFST/v1_0_0.js +174 -0
- data/misc/openlayers/lib/OpenLayers/Format/WFST/v1_1_0.js +189 -0
- data/misc/openlayers/lib/OpenLayers/Format/WFST.js +34 -0
- data/misc/openlayers/lib/OpenLayers/Format/WKT.js +392 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMC/v1.js +1267 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMC/v1_0_0.js +104 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js +149 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMC.js +182 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1.js +368 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js +122 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js +57 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js +60 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js +85 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3.js +128 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js +30 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities.js +56 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js +122 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js +296 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js +251 -0
- data/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities.js +230 -0
- data/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js +119 -0
- data/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities.js +48 -0
- data/misc/openlayers/lib/OpenLayers/Format/WPSDescribeProcess.js +185 -0
- data/misc/openlayers/lib/OpenLayers/Format/WPSExecute.js +395 -0
- data/misc/openlayers/lib/OpenLayers/Format/XLS/v1.js +304 -0
- data/misc/openlayers/lib/OpenLayers/Format/XLS/v1_1_0.js +48 -0
- data/misc/openlayers/lib/OpenLayers/Format/XLS.js +68 -0
- data/misc/openlayers/lib/OpenLayers/Format/XML/VersionedOGC.js +212 -0
- data/misc/openlayers/lib/OpenLayers/Format/XML.js +897 -0
- data/misc/openlayers/lib/OpenLayers/Format.js +123 -0
- data/misc/openlayers/lib/OpenLayers/Geometry/Collection.js +563 -0
- data/misc/openlayers/lib/OpenLayers/Geometry/Curve.js +89 -0
- data/misc/openlayers/lib/OpenLayers/Geometry/LineString.js +646 -0
- data/misc/openlayers/lib/OpenLayers/Geometry/LinearRing.js +433 -0
- data/misc/openlayers/lib/OpenLayers/Geometry/MultiLineString.js +258 -0
- data/misc/openlayers/lib/OpenLayers/Geometry/MultiPoint.js +66 -0
- data/misc/openlayers/lib/OpenLayers/Geometry/MultiPolygon.js +42 -0
- data/misc/openlayers/lib/OpenLayers/Geometry/Point.js +283 -0
- data/misc/openlayers/lib/OpenLayers/Geometry/Polygon.js +255 -0
- data/misc/openlayers/lib/OpenLayers/Geometry.js +500 -0
- data/misc/openlayers/lib/OpenLayers/Handler/Box.js +244 -0
- data/misc/openlayers/lib/OpenLayers/Handler/Click.js +505 -0
- data/misc/openlayers/lib/OpenLayers/Handler/Drag.js +547 -0
- data/misc/openlayers/lib/OpenLayers/Handler/Feature.js +434 -0
- data/misc/openlayers/lib/OpenLayers/Handler/Hover.js +180 -0
- data/misc/openlayers/lib/OpenLayers/Handler/Keyboard.js +117 -0
- data/misc/openlayers/lib/OpenLayers/Handler/MouseWheel.js +264 -0
- data/misc/openlayers/lib/OpenLayers/Handler/Path.js +543 -0
- data/misc/openlayers/lib/OpenLayers/Handler/Pinch.js +239 -0
- data/misc/openlayers/lib/OpenLayers/Handler/Point.js +556 -0
- data/misc/openlayers/lib/OpenLayers/Handler/Polygon.js +305 -0
- data/misc/openlayers/lib/OpenLayers/Handler/RegularPolygon.js +429 -0
- data/misc/openlayers/lib/OpenLayers/Handler.js +325 -0
- data/misc/openlayers/lib/OpenLayers/Icon.js +243 -0
- data/misc/openlayers/lib/OpenLayers/Kinetic.js +178 -0
- data/misc/openlayers/lib/OpenLayers/Lang/ar.js +32 -0
- data/misc/openlayers/lib/OpenLayers/Lang/be-tarask.js +54 -0
- data/misc/openlayers/lib/OpenLayers/Lang/bg.js +25 -0
- data/misc/openlayers/lib/OpenLayers/Lang/br.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Lang/ca.js +89 -0
- data/misc/openlayers/lib/OpenLayers/Lang/cs-CZ.js +45 -0
- data/misc/openlayers/lib/OpenLayers/Lang/da-DK.js +80 -0
- data/misc/openlayers/lib/OpenLayers/Lang/de.js +55 -0
- data/misc/openlayers/lib/OpenLayers/Lang/el.js +19 -0
- data/misc/openlayers/lib/OpenLayers/Lang/en-CA.js +21 -0
- data/misc/openlayers/lib/OpenLayers/Lang/en.js +89 -0
- data/misc/openlayers/lib/OpenLayers/Lang/es.js +90 -0
- data/misc/openlayers/lib/OpenLayers/Lang/fi.js +32 -0
- data/misc/openlayers/lib/OpenLayers/Lang/fr.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Lang/fur.js +35 -0
- data/misc/openlayers/lib/OpenLayers/Lang/gl.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Lang/gsw.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Lang/hr.js +37 -0
- data/misc/openlayers/lib/OpenLayers/Lang/hsb.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Lang/hu.js +54 -0
- data/misc/openlayers/lib/OpenLayers/Lang/ia.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Lang/id.js +54 -0
- data/misc/openlayers/lib/OpenLayers/Lang/io.js +19 -0
- data/misc/openlayers/lib/OpenLayers/Lang/is.js +27 -0
- data/misc/openlayers/lib/OpenLayers/Lang/it.js +80 -0
- data/misc/openlayers/lib/OpenLayers/Lang/ja.js +54 -0
- data/misc/openlayers/lib/OpenLayers/Lang/km.js +23 -0
- data/misc/openlayers/lib/OpenLayers/Lang/ksh.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Lang/lt.js +47 -0
- data/misc/openlayers/lib/OpenLayers/Lang/nb.js +82 -0
- data/misc/openlayers/lib/OpenLayers/Lang/nds.js +37 -0
- data/misc/openlayers/lib/OpenLayers/Lang/nl.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Lang/nn.js +19 -0
- data/misc/openlayers/lib/OpenLayers/Lang/oc.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Lang/pl.js +89 -0
- data/misc/openlayers/lib/OpenLayers/Lang/pt-BR.js +54 -0
- data/misc/openlayers/lib/OpenLayers/Lang/pt.js +55 -0
- data/misc/openlayers/lib/OpenLayers/Lang/ro.js +69 -0
- data/misc/openlayers/lib/OpenLayers/Lang/ru.js +56 -0
- data/misc/openlayers/lib/OpenLayers/Lang/sk.js +44 -0
- data/misc/openlayers/lib/OpenLayers/Lang/sv-SE.js +45 -0
- data/misc/openlayers/lib/OpenLayers/Lang/te.js +27 -0
- data/misc/openlayers/lib/OpenLayers/Lang/vi.js +53 -0
- data/misc/openlayers/lib/OpenLayers/Lang/zh-CN.js +80 -0
- data/misc/openlayers/lib/OpenLayers/Lang/zh-TW.js +81 -0
- data/misc/openlayers/lib/OpenLayers/Lang.js +134 -0
- data/misc/openlayers/lib/OpenLayers/Layer/ArcGIS93Rest.js +225 -0
- data/misc/openlayers/lib/OpenLayers/Layer/ArcGISCache.js +480 -0
- data/misc/openlayers/lib/OpenLayers/Layer/ArcIMS.js +425 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Bing.js +333 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Boxes.js +76 -0
- data/misc/openlayers/lib/OpenLayers/Layer/EventPane.js +441 -0
- data/misc/openlayers/lib/OpenLayers/Layer/FixedZoomLevels.js +319 -0
- data/misc/openlayers/lib/OpenLayers/Layer/GeoRSS.js +265 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Google/v3.js +351 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Google.js +809 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Grid.js +1343 -0
- data/misc/openlayers/lib/OpenLayers/Layer/HTTPRequest.js +230 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Image.js +259 -0
- data/misc/openlayers/lib/OpenLayers/Layer/KaMap.js +192 -0
- data/misc/openlayers/lib/OpenLayers/Layer/KaMapCache.js +143 -0
- data/misc/openlayers/lib/OpenLayers/Layer/MapGuide.js +443 -0
- data/misc/openlayers/lib/OpenLayers/Layer/MapServer.js +181 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Markers.js +187 -0
- data/misc/openlayers/lib/OpenLayers/Layer/OSM.js +123 -0
- data/misc/openlayers/lib/OpenLayers/Layer/PointGrid.js +299 -0
- data/misc/openlayers/lib/OpenLayers/Layer/PointTrack.js +125 -0
- data/misc/openlayers/lib/OpenLayers/Layer/SphericalMercator.js +146 -0
- data/misc/openlayers/lib/OpenLayers/Layer/TMS.js +202 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Text.js +267 -0
- data/misc/openlayers/lib/OpenLayers/Layer/TileCache.js +140 -0
- data/misc/openlayers/lib/OpenLayers/Layer/UTFGrid.js +184 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Vector/RootContainer.js +154 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Vector.js +1007 -0
- data/misc/openlayers/lib/OpenLayers/Layer/WMS.js +267 -0
- data/misc/openlayers/lib/OpenLayers/Layer/WMTS.js +510 -0
- data/misc/openlayers/lib/OpenLayers/Layer/WorldWind.js +105 -0
- data/misc/openlayers/lib/OpenLayers/Layer/XYZ.js +172 -0
- data/misc/openlayers/lib/OpenLayers/Layer/Zoomify.js +260 -0
- data/misc/openlayers/lib/OpenLayers/Layer.js +1377 -0
- data/misc/openlayers/lib/OpenLayers/Map.js +2867 -0
- data/misc/openlayers/lib/OpenLayers/Marker/Box.js +120 -0
- data/misc/openlayers/lib/OpenLayers/Marker.js +241 -0
- data/misc/openlayers/lib/OpenLayers/Popup/Anchored.js +195 -0
- data/misc/openlayers/lib/OpenLayers/Popup/Framed.js +343 -0
- data/misc/openlayers/lib/OpenLayers/Popup/FramedCloud.js +227 -0
- data/misc/openlayers/lib/OpenLayers/Popup.js +1065 -0
- data/misc/openlayers/lib/OpenLayers/Projection.js +322 -0
- data/misc/openlayers/lib/OpenLayers/Protocol/CSW/v2_0_2.js +127 -0
- data/misc/openlayers/lib/OpenLayers/Protocol/CSW.js +30 -0
- data/misc/openlayers/lib/OpenLayers/Protocol/HTTP.js +580 -0
- data/misc/openlayers/lib/OpenLayers/Protocol/SOS/v1_0_0.js +133 -0
- data/misc/openlayers/lib/OpenLayers/Protocol/SOS.js +33 -0
- data/misc/openlayers/lib/OpenLayers/Protocol/Script.js +377 -0
- data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1.js +453 -0
- data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1_0_0.js +44 -0
- data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1_1_0.js +68 -0
- data/misc/openlayers/lib/OpenLayers/Protocol/WFS.js +86 -0
- data/misc/openlayers/lib/OpenLayers/Protocol.js +291 -0
- data/misc/openlayers/lib/OpenLayers/Renderer/Canvas.js +906 -0
- data/misc/openlayers/lib/OpenLayers/Renderer/Elements.js +1053 -0
- data/misc/openlayers/lib/OpenLayers/Renderer/SVG.js +1012 -0
- data/misc/openlayers/lib/OpenLayers/Renderer/VML.js +985 -0
- data/misc/openlayers/lib/OpenLayers/Renderer.js +432 -0
- data/misc/openlayers/lib/OpenLayers/Request/XMLHttpRequest.js +458 -0
- data/misc/openlayers/lib/OpenLayers/Request.js +429 -0
- data/misc/openlayers/lib/OpenLayers/Rule.js +236 -0
- data/misc/openlayers/lib/OpenLayers/SingleFile.js +78 -0
- data/misc/openlayers/lib/OpenLayers/Spherical.js +67 -0
- data/misc/openlayers/lib/OpenLayers/Strategy/BBOX.js +290 -0
- data/misc/openlayers/lib/OpenLayers/Strategy/Cluster.js +283 -0
- data/misc/openlayers/lib/OpenLayers/Strategy/Filter.js +159 -0
- data/misc/openlayers/lib/OpenLayers/Strategy/Fixed.js +135 -0
- data/misc/openlayers/lib/OpenLayers/Strategy/Paging.js +233 -0
- data/misc/openlayers/lib/OpenLayers/Strategy/Refresh.js +141 -0
- data/misc/openlayers/lib/OpenLayers/Strategy/Save.js +231 -0
- data/misc/openlayers/lib/OpenLayers/Strategy.js +121 -0
- data/misc/openlayers/lib/OpenLayers/Style.js +448 -0
- data/misc/openlayers/lib/OpenLayers/Style2.js +112 -0
- data/misc/openlayers/lib/OpenLayers/StyleMap.js +161 -0
- data/misc/openlayers/lib/OpenLayers/Symbolizer/Line.js +74 -0
- data/misc/openlayers/lib/OpenLayers/Symbolizer/Point.js +157 -0
- data/misc/openlayers/lib/OpenLayers/Symbolizer/Polygon.js +88 -0
- data/misc/openlayers/lib/OpenLayers/Symbolizer/Raster.js +34 -0
- data/misc/openlayers/lib/OpenLayers/Symbolizer/Text.js +70 -0
- data/misc/openlayers/lib/OpenLayers/Symbolizer.js +55 -0
- data/misc/openlayers/lib/OpenLayers/Tile/Image/IFrame.js +233 -0
- data/misc/openlayers/lib/OpenLayers/Tile/Image.js +510 -0
- data/misc/openlayers/lib/OpenLayers/Tile/UTFGrid.js +252 -0
- data/misc/openlayers/lib/OpenLayers/Tile.js +292 -0
- data/misc/openlayers/lib/OpenLayers/TileManager.js +462 -0
- data/misc/openlayers/lib/OpenLayers/Tween.js +361 -0
- data/misc/openlayers/lib/OpenLayers/Util/vendorPrefix.js +131 -0
- data/misc/openlayers/lib/OpenLayers/Util.js +1773 -0
- data/misc/openlayers/lib/OpenLayers/WPSClient.js +223 -0
- data/misc/openlayers/lib/OpenLayers/WPSProcess.js +501 -0
- data/misc/openlayers/lib/OpenLayers.js +429 -0
- data/misc/openlayers/lib/Rico/Color.js +253 -0
- data/misc/openlayers/lib/Rico/Corner.js +339 -0
- data/misc/openlayers/lib/Rico/license.js +19 -0
- data/misc/openlayers/lib/deprecated.js +5842 -0
- data/misc/openlayers/license.txt +27 -0
- data/misc/openlayers/licenses/APACHE-2.0.txt +202 -0
- data/misc/openlayers/licenses/BSD-LICENSE.txt +28 -0
- data/misc/openlayers/licenses/MIT-LICENSE.txt +18 -0
- data/misc/openlayers/notes/2.12.md +391 -0
- data/misc/openlayers/notes/2.13.md +159 -0
- data/misc/openlayers/readme.md +79 -0
- data/misc/openlayers/tests/Animation.html +96 -0
- data/misc/openlayers/tests/BaseTypes/Bounds.html +738 -0
- data/misc/openlayers/tests/BaseTypes/Class.html +350 -0
- data/misc/openlayers/tests/BaseTypes/Date.html +191 -0
- data/misc/openlayers/tests/BaseTypes/Element.html +195 -0
- data/misc/openlayers/tests/BaseTypes/LonLat.html +241 -0
- data/misc/openlayers/tests/BaseTypes/Pixel.html +123 -0
- data/misc/openlayers/tests/BaseTypes/Size.html +67 -0
- data/misc/openlayers/tests/BaseTypes.html +387 -0
- data/misc/openlayers/tests/Console.html +39 -0
- data/misc/openlayers/tests/Control/ArgParser.html +26 -0
- data/misc/openlayers/tests/Control/Attribution.html +60 -0
- data/misc/openlayers/tests/Control/Button.html +17 -0
- data/misc/openlayers/tests/Control/CacheRead.html +108 -0
- data/misc/openlayers/tests/Control/CacheWrite.html +90 -0
- data/misc/openlayers/tests/Control/DragFeature.html +383 -0
- data/misc/openlayers/tests/Control/DragPan.html +104 -0
- data/misc/openlayers/tests/Control/DrawFeature.html +160 -0
- data/misc/openlayers/tests/Control/EditingToolbar.html +33 -0
- data/misc/openlayers/tests/Control/Geolocate.html +129 -0
- data/misc/openlayers/tests/Control/GetFeature.html +177 -0
- data/misc/openlayers/tests/Control/Graticule.html +66 -0
- data/misc/openlayers/tests/Control/KeyboardDefaults.html +173 -0
- data/misc/openlayers/tests/Control/LayerSwitcher.html +249 -0
- data/misc/openlayers/tests/Control/Measure.html +386 -0
- data/misc/openlayers/tests/Control/ModifyFeature.html +828 -0
- data/misc/openlayers/tests/Control/MousePosition.html +109 -0
- data/misc/openlayers/tests/Control/NavToolbar.html +45 -0
- data/misc/openlayers/tests/Control/Navigation.html +200 -0
- data/misc/openlayers/tests/Control/NavigationHistory.html +245 -0
- data/misc/openlayers/tests/Control/OverviewMap.html +266 -0
- data/misc/openlayers/tests/Control/Pan.html +201 -0
- data/misc/openlayers/tests/Control/PanPanel.html +61 -0
- data/misc/openlayers/tests/Control/PanZoom.html +244 -0
- data/misc/openlayers/tests/Control/PanZoomBar.html +245 -0
- data/misc/openlayers/tests/Control/Panel.html +382 -0
- data/misc/openlayers/tests/Control/Permalink.html +453 -0
- data/misc/openlayers/tests/Control/PinchZoom.html +134 -0
- data/misc/openlayers/tests/Control/SLDSelect.html +239 -0
- data/misc/openlayers/tests/Control/Scale.html +54 -0
- data/misc/openlayers/tests/Control/ScaleLine.html +187 -0
- data/misc/openlayers/tests/Control/SelectFeature.html +632 -0
- data/misc/openlayers/tests/Control/Snapping.html +448 -0
- data/misc/openlayers/tests/Control/Split.html +319 -0
- data/misc/openlayers/tests/Control/TouchNavigation.html +155 -0
- data/misc/openlayers/tests/Control/TransformFeature.html +129 -0
- data/misc/openlayers/tests/Control/UTFGrid.html +120 -0
- data/misc/openlayers/tests/Control/WMSGetFeatureInfo.html +644 -0
- data/misc/openlayers/tests/Control/WMTSGetFeatureInfo.html +334 -0
- data/misc/openlayers/tests/Control/Zoom.html +83 -0
- data/misc/openlayers/tests/Control/ZoomBox.html +54 -0
- data/misc/openlayers/tests/Control/ZoomIn.html +101 -0
- data/misc/openlayers/tests/Control/ZoomOut.html +100 -0
- data/misc/openlayers/tests/Control/ZoomToMaxExtent.html +102 -0
- data/misc/openlayers/tests/Control.html +107 -0
- data/misc/openlayers/tests/Events/buttonclick.html +214 -0
- data/misc/openlayers/tests/Events/featureclick.html +91 -0
- data/misc/openlayers/tests/Events.html +487 -0
- data/misc/openlayers/tests/Extras.html +21 -0
- data/misc/openlayers/tests/Feature/Vector.html +170 -0
- data/misc/openlayers/tests/Feature.html +205 -0
- data/misc/openlayers/tests/Filter/Comparison.html +373 -0
- data/misc/openlayers/tests/Filter/FeatureId.html +67 -0
- data/misc/openlayers/tests/Filter/Logical.html +144 -0
- data/misc/openlayers/tests/Filter/Spatial.html +112 -0
- data/misc/openlayers/tests/Filter.html +31 -0
- data/misc/openlayers/tests/Format/ArcXML/Features.html +69 -0
- data/misc/openlayers/tests/Format/ArcXML.html +277 -0
- data/misc/openlayers/tests/Format/Atom.html +450 -0
- data/misc/openlayers/tests/Format/CQL.html +364 -0
- data/misc/openlayers/tests/Format/CSWGetDomain/v2_0_2.html +56 -0
- data/misc/openlayers/tests/Format/CSWGetDomain/v2_0_2.js +18 -0
- data/misc/openlayers/tests/Format/CSWGetDomain.html +23 -0
- data/misc/openlayers/tests/Format/CSWGetRecords/v2_0_2.html +88 -0
- data/misc/openlayers/tests/Format/CSWGetRecords/v2_0_2.js +50 -0
- data/misc/openlayers/tests/Format/CSWGetRecords.html +23 -0
- data/misc/openlayers/tests/Format/EncodedPolyline.html +372 -0
- data/misc/openlayers/tests/Format/Filter/v1.html +404 -0
- data/misc/openlayers/tests/Format/Filter/v1_0_0.html +295 -0
- data/misc/openlayers/tests/Format/Filter/v1_1_0.html +402 -0
- data/misc/openlayers/tests/Format/Filter.html +21 -0
- data/misc/openlayers/tests/Format/GML/cases.js +232 -0
- data/misc/openlayers/tests/Format/GML/v2.html +684 -0
- data/misc/openlayers/tests/Format/GML/v3.html +828 -0
- data/misc/openlayers/tests/Format/GML.html +462 -0
- data/misc/openlayers/tests/Format/GPX.html +179 -0
- data/misc/openlayers/tests/Format/GeoJSON.html +468 -0
- data/misc/openlayers/tests/Format/GeoRSS.html +122 -0
- data/misc/openlayers/tests/Format/JSON.html +53 -0
- data/misc/openlayers/tests/Format/KML.html +1437 -0
- data/misc/openlayers/tests/Format/OGCExceptionReport.html +100 -0
- data/misc/openlayers/tests/Format/OSM.html +115 -0
- data/misc/openlayers/tests/Format/OWSCommon/v1_0_0.html +34 -0
- data/misc/openlayers/tests/Format/OWSCommon/v1_1_0.html +34 -0
- data/misc/openlayers/tests/Format/OWSContext/v0_3_1.html +278 -0
- data/misc/openlayers/tests/Format/QueryStringFilter.html +306 -0
- data/misc/openlayers/tests/Format/SLD/v1_0_0.html +1028 -0
- data/misc/openlayers/tests/Format/SLD/v1_0_0_GeoServer.html +228 -0
- data/misc/openlayers/tests/Format/SLD.html +36 -0
- data/misc/openlayers/tests/Format/SOSCapabilities/v1_0_0.html +80 -0
- data/misc/openlayers/tests/Format/SOSCapabilities/v1_0_0.js +484 -0
- data/misc/openlayers/tests/Format/SOSGetFeatureOfInterest.html +80 -0
- data/misc/openlayers/tests/Format/SOSGetObservation.html +183 -0
- data/misc/openlayers/tests/Format/Text.html +49 -0
- data/misc/openlayers/tests/Format/WCSCapabilities/v1.html +87 -0
- data/misc/openlayers/tests/Format/WCSCapabilities.html +43 -0
- data/misc/openlayers/tests/Format/WCSGetCoverage.html +80 -0
- data/misc/openlayers/tests/Format/WFS.html +81 -0
- data/misc/openlayers/tests/Format/WFSCapabilities/v1.html +179 -0
- data/misc/openlayers/tests/Format/WFSCapabilities.html +43 -0
- data/misc/openlayers/tests/Format/WFSDescribeFeatureType.html +436 -0
- data/misc/openlayers/tests/Format/WFST/v1.html +455 -0
- data/misc/openlayers/tests/Format/WFST/v1_0_0.html +135 -0
- data/misc/openlayers/tests/Format/WFST/v1_1_0.html +236 -0
- data/misc/openlayers/tests/Format/WFST.html +23 -0
- data/misc/openlayers/tests/Format/WKT.html +297 -0
- data/misc/openlayers/tests/Format/WMC/v1.html +266 -0
- data/misc/openlayers/tests/Format/WMC/v1_1_0.html +86 -0
- data/misc/openlayers/tests/Format/WMC.html +315 -0
- data/misc/openlayers/tests/Format/WMSCapabilities/v1_1_1.html +5209 -0
- data/misc/openlayers/tests/Format/WMSCapabilities/v1_1_1_WMSC.html +348 -0
- data/misc/openlayers/tests/Format/WMSCapabilities/v1_3_0.html +614 -0
- data/misc/openlayers/tests/Format/WMSCapabilities.html +20 -0
- data/misc/openlayers/tests/Format/WMSDescribeLayer.html +65 -0
- data/misc/openlayers/tests/Format/WMSGetFeatureInfo.html +319 -0
- data/misc/openlayers/tests/Format/WMTSCapabilities/v1_0_0.html +1042 -0
- data/misc/openlayers/tests/Format/WMTSCapabilities.html +20 -0
- data/misc/openlayers/tests/Format/WPSCapabilities/v1_0_0.html +30 -0
- data/misc/openlayers/tests/Format/WPSCapabilities/v1_0_0.js +112 -0
- data/misc/openlayers/tests/Format/WPSDescribeProcess.html +206 -0
- data/misc/openlayers/tests/Format/WPSExecute.html +549 -0
- data/misc/openlayers/tests/Format/XLS/v1_1_0.html +98 -0
- data/misc/openlayers/tests/Format/XML/VersionedOGC.html +51 -0
- data/misc/openlayers/tests/Format/XML.html +900 -0
- data/misc/openlayers/tests/Format.html +23 -0
- data/misc/openlayers/tests/Geometry/Collection.html +431 -0
- data/misc/openlayers/tests/Geometry/Curve.html +157 -0
- data/misc/openlayers/tests/Geometry/LineString.html +443 -0
- data/misc/openlayers/tests/Geometry/LinearRing.html +362 -0
- data/misc/openlayers/tests/Geometry/MultiLineString.html +267 -0
- data/misc/openlayers/tests/Geometry/MultiPoint.html +130 -0
- data/misc/openlayers/tests/Geometry/MultiPolygon.html +34 -0
- data/misc/openlayers/tests/Geometry/Point.html +244 -0
- data/misc/openlayers/tests/Geometry/Polygon.html +420 -0
- data/misc/openlayers/tests/Geometry.html +356 -0
- data/misc/openlayers/tests/Handler/Box.html +106 -0
- data/misc/openlayers/tests/Handler/Click.html +735 -0
- data/misc/openlayers/tests/Handler/Drag.html +603 -0
- data/misc/openlayers/tests/Handler/Feature.html +698 -0
- data/misc/openlayers/tests/Handler/Hover.html +136 -0
- data/misc/openlayers/tests/Handler/Keyboard.html +150 -0
- data/misc/openlayers/tests/Handler/MouseWheel.html +182 -0
- data/misc/openlayers/tests/Handler/Path.html +1464 -0
- data/misc/openlayers/tests/Handler/Pinch.html +285 -0
- data/misc/openlayers/tests/Handler/Point.html +600 -0
- data/misc/openlayers/tests/Handler/Polygon.html +1161 -0
- data/misc/openlayers/tests/Handler/RegularPolygon.html +235 -0
- data/misc/openlayers/tests/Handler.html +265 -0
- data/misc/openlayers/tests/Icon.html +68 -0
- data/misc/openlayers/tests/Kinetic.html +132 -0
- data/misc/openlayers/tests/Lang.html +106 -0
- data/misc/openlayers/tests/Layer/ArcGIS93Rest.html +324 -0
- data/misc/openlayers/tests/Layer/ArcGISCache.html +256 -0
- data/misc/openlayers/tests/Layer/ArcGISCache.json +334 -0
- data/misc/openlayers/tests/Layer/ArcIMS.html +123 -0
- data/misc/openlayers/tests/Layer/Bing.html +200 -0
- data/misc/openlayers/tests/Layer/EventPane.html +172 -0
- data/misc/openlayers/tests/Layer/FixedZoomLevels.html +137 -0
- data/misc/openlayers/tests/Layer/GeoRSS.html +210 -0
- data/misc/openlayers/tests/Layer/Google/v3.html +337 -0
- data/misc/openlayers/tests/Layer/Google.html +369 -0
- data/misc/openlayers/tests/Layer/Grid.html +1593 -0
- data/misc/openlayers/tests/Layer/HTTPRequest.html +229 -0
- data/misc/openlayers/tests/Layer/Image.html +164 -0
- data/misc/openlayers/tests/Layer/KaMap.html +287 -0
- data/misc/openlayers/tests/Layer/MapGuide.html +177 -0
- data/misc/openlayers/tests/Layer/MapServer.html +238 -0
- data/misc/openlayers/tests/Layer/Markers.html +156 -0
- data/misc/openlayers/tests/Layer/OSM.html +16 -0
- data/misc/openlayers/tests/Layer/PointGrid.html +232 -0
- data/misc/openlayers/tests/Layer/PointTrack.html +79 -0
- data/misc/openlayers/tests/Layer/SphericalMercator.html +126 -0
- data/misc/openlayers/tests/Layer/TMS.html +262 -0
- data/misc/openlayers/tests/Layer/Text.html +211 -0
- data/misc/openlayers/tests/Layer/TileCache.html +203 -0
- data/misc/openlayers/tests/Layer/UTFGrid.html +131 -0
- data/misc/openlayers/tests/Layer/Vector/RootContainer.html +63 -0
- data/misc/openlayers/tests/Layer/Vector.html +879 -0
- data/misc/openlayers/tests/Layer/WMS.html +583 -0
- data/misc/openlayers/tests/Layer/WMTS.html +1491 -0
- data/misc/openlayers/tests/Layer/WrapDateLine.html +188 -0
- data/misc/openlayers/tests/Layer/XYZ.html +266 -0
- data/misc/openlayers/tests/Layer/atom-1.0.xml +34 -0
- data/misc/openlayers/tests/Layer/data_Layer_Text_textfile.txt +3 -0
- data/misc/openlayers/tests/Layer/data_Layer_Text_textfile_2.txt +3 -0
- data/misc/openlayers/tests/Layer/data_Layer_Text_textfile_overflow.txt +3 -0
- data/misc/openlayers/tests/Layer/georss.txt +378 -0
- data/misc/openlayers/tests/Layer.html +910 -0
- data/misc/openlayers/tests/Map.html +2255 -0
- data/misc/openlayers/tests/Marker/Box.html +183 -0
- data/misc/openlayers/tests/Marker.html +163 -0
- data/misc/openlayers/tests/OLLoader.js +26 -0
- data/misc/openlayers/tests/OpenLayers1.html +18 -0
- data/misc/openlayers/tests/OpenLayers2.html +19 -0
- data/misc/openlayers/tests/OpenLayers3.html +19 -0
- data/misc/openlayers/tests/OpenLayers4.html +18 -0
- data/misc/openlayers/tests/OpenLayersJsFiles.html +27 -0
- data/misc/openlayers/tests/Popup/Anchored.html +37 -0
- data/misc/openlayers/tests/Popup/FramedCloud.html +18 -0
- data/misc/openlayers/tests/Popup.html +219 -0
- data/misc/openlayers/tests/Projection.html +87 -0
- data/misc/openlayers/tests/Protocol/CSW.html +90 -0
- data/misc/openlayers/tests/Protocol/HTTP.html +842 -0
- data/misc/openlayers/tests/Protocol/SOS.html +57 -0
- data/misc/openlayers/tests/Protocol/Script.html +282 -0
- data/misc/openlayers/tests/Protocol/WFS.html +471 -0
- data/misc/openlayers/tests/Protocol.html +63 -0
- data/misc/openlayers/tests/README.txt +16 -0
- data/misc/openlayers/tests/Renderer/Canvas.html +501 -0
- data/misc/openlayers/tests/Renderer/Elements.html +651 -0
- data/misc/openlayers/tests/Renderer/SVG.html +441 -0
- data/misc/openlayers/tests/Renderer/VML.html +454 -0
- data/misc/openlayers/tests/Renderer.html +96 -0
- data/misc/openlayers/tests/Request/XMLHttpRequest.html +59 -0
- data/misc/openlayers/tests/Request.html +524 -0
- data/misc/openlayers/tests/Rule.html +123 -0
- data/misc/openlayers/tests/SingleFile1.html +15 -0
- data/misc/openlayers/tests/SingleFile2.html +15 -0
- data/misc/openlayers/tests/SingleFile3.html +15 -0
- data/misc/openlayers/tests/Strategy/BBOX.html +361 -0
- data/misc/openlayers/tests/Strategy/Cluster.html +148 -0
- data/misc/openlayers/tests/Strategy/Filter.html +135 -0
- data/misc/openlayers/tests/Strategy/Fixed.html +253 -0
- data/misc/openlayers/tests/Strategy/Paging.html +113 -0
- data/misc/openlayers/tests/Strategy/Refresh.html +177 -0
- data/misc/openlayers/tests/Strategy/Save.html +127 -0
- data/misc/openlayers/tests/Strategy.html +94 -0
- data/misc/openlayers/tests/Style.html +426 -0
- data/misc/openlayers/tests/Style2.html +56 -0
- data/misc/openlayers/tests/StyleMap.html +44 -0
- data/misc/openlayers/tests/Symbolizer/Line.html +42 -0
- data/misc/openlayers/tests/Symbolizer/Point.html +52 -0
- data/misc/openlayers/tests/Symbolizer/Polygon.html +44 -0
- data/misc/openlayers/tests/Symbolizer/Raster.html +32 -0
- data/misc/openlayers/tests/Symbolizer/Text.html +42 -0
- data/misc/openlayers/tests/Symbolizer.html +31 -0
- data/misc/openlayers/tests/Test.AnotherWay.baseadditions.js +191 -0
- data/misc/openlayers/tests/Test.AnotherWay.css +243 -0
- data/misc/openlayers/tests/Test.AnotherWay.geom_eq.js +139 -0
- data/misc/openlayers/tests/Test.AnotherWay.js +2498 -0
- data/misc/openlayers/tests/Test.AnotherWay.xml_eq.js +311 -0
- data/misc/openlayers/tests/Tile/Image/IFrame.html +183 -0
- data/misc/openlayers/tests/Tile/Image.html +490 -0
- data/misc/openlayers/tests/Tile/UTFGrid.html +306 -0
- data/misc/openlayers/tests/Tile.html +130 -0
- data/misc/openlayers/tests/TileManager.html +137 -0
- data/misc/openlayers/tests/Tween.html +116 -0
- data/misc/openlayers/tests/Util/vendorPrefix.html +117 -0
- data/misc/openlayers/tests/Util.html +1180 -0
- data/misc/openlayers/tests/Util_common.js +64 -0
- data/misc/openlayers/tests/Util_w3c.html +35 -0
- data/misc/openlayers/tests/WPSClient.html +108 -0
- data/misc/openlayers/tests/WPSProcess.html +188 -0
- data/misc/openlayers/tests/atom-1.0.xml +34 -0
- data/misc/openlayers/tests/auto-tests.html +2447 -0
- data/misc/openlayers/tests/data/geos_wkt_intersects.js +495 -0
- data/misc/openlayers/tests/data/osm.js +14 -0
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/0.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/1.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/2.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/0.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/1.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/2.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/0.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/1.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/2.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/demo-1.1.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/0.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/1.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/2.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/0.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/1.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/2.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/0.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/1.json +1 -0
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/2.json +1 -0
- data/misc/openlayers/tests/data_Layer_Text_textfile.txt +3 -0
- data/misc/openlayers/tests/data_Layer_Text_textfile_2.txt +3 -0
- data/misc/openlayers/tests/data_Layer_Text_textfile_overflow.txt +3 -0
- data/misc/openlayers/tests/deprecated/Ajax.html +28 -0
- data/misc/openlayers/tests/deprecated/BaseTypes/Class.html +142 -0
- data/misc/openlayers/tests/deprecated/BaseTypes/Element.html +56 -0
- data/misc/openlayers/tests/deprecated/Control/MouseToolbar.html +60 -0
- data/misc/openlayers/tests/deprecated/Geometry/Rectangle.html +77 -0
- data/misc/openlayers/tests/deprecated/Layer/GML.html +61 -0
- data/misc/openlayers/tests/deprecated/Layer/MapServer/Untiled.html +158 -0
- data/misc/openlayers/tests/deprecated/Layer/MapServer.html +59 -0
- data/misc/openlayers/tests/deprecated/Layer/WFS.html +178 -0
- data/misc/openlayers/tests/deprecated/Layer/WMS/Post.html +89 -0
- data/misc/openlayers/tests/deprecated/Layer/WMS.html +60 -0
- data/misc/openlayers/tests/deprecated/Layer/Yahoo.html +121 -0
- data/misc/openlayers/tests/deprecated/Layer/mice.xml +156 -0
- data/misc/openlayers/tests/deprecated/Layer/owls.xml +156 -0
- data/misc/openlayers/tests/deprecated/Popup/AnchoredBubble.html +61 -0
- data/misc/openlayers/tests/deprecated/Protocol/SQL/Gears.html +474 -0
- data/misc/openlayers/tests/deprecated/Protocol/SQL.html +24 -0
- data/misc/openlayers/tests/deprecated/Renderer/SVG2.html +399 -0
- data/misc/openlayers/tests/deprecated/Tile/WFS.html +215 -0
- data/misc/openlayers/tests/deprecated/Util.html +20 -0
- data/misc/openlayers/tests/georss.txt +378 -0
- data/misc/openlayers/tests/grid_inittiles.html +30 -0
- data/misc/openlayers/tests/index.html +6 -0
- data/misc/openlayers/tests/list-tests.html +260 -0
- data/misc/openlayers/tests/manual/ajax.html +49 -0
- data/misc/openlayers/tests/manual/ajax.txt +1 -0
- data/misc/openlayers/tests/manual/alloverlays-mixed.html +55 -0
- data/misc/openlayers/tests/manual/arcims-2117.html +103 -0
- data/misc/openlayers/tests/manual/arkansas.rss +9 -0
- data/misc/openlayers/tests/manual/big-georss.html +33 -0
- data/misc/openlayers/tests/manual/box-quirks.html +52 -0
- data/misc/openlayers/tests/manual/box-strict.html +46 -0
- data/misc/openlayers/tests/manual/clip-features-svg.html +128 -0
- data/misc/openlayers/tests/manual/dateline-sketch.html +66 -0
- data/misc/openlayers/tests/manual/dateline-smallextent.html +61 -0
- data/misc/openlayers/tests/manual/draw-feature.html +73 -0
- data/misc/openlayers/tests/manual/feature-handler.html +126 -0
- data/misc/openlayers/tests/manual/geodesic.html +160 -0
- data/misc/openlayers/tests/manual/geojson-geomcoll-reprojection.html +74 -0
- data/misc/openlayers/tests/manual/google-fullscreen-overlay.html +54 -0
- data/misc/openlayers/tests/manual/google-panning.html +122 -0
- data/misc/openlayers/tests/manual/google-resize.html +55 -0
- data/misc/openlayers/tests/manual/google-tilt.html +37 -0
- data/misc/openlayers/tests/manual/google-v3-resize.html +54 -0
- data/misc/openlayers/tests/manual/loadend.html +73 -0
- data/misc/openlayers/tests/manual/map-events.html +38 -0
- data/misc/openlayers/tests/manual/memory/Marker-2258.html +60 -0
- data/misc/openlayers/tests/manual/memory/PanZoom-2323.html +41 -0
- data/misc/openlayers/tests/manual/memory/RemoveChild-2170.html +56 -0
- data/misc/openlayers/tests/manual/memory/VML-2170.html +49 -0
- data/misc/openlayers/tests/manual/multiple-google-layers.html +135 -0
- data/misc/openlayers/tests/manual/overviewmap-projection.html +70 -0
- data/misc/openlayers/tests/manual/page-position.html +103 -0
- data/misc/openlayers/tests/manual/pan-redraw-svg.html +58 -0
- data/misc/openlayers/tests/manual/popup-keepInMap.html +100 -0
- data/misc/openlayers/tests/manual/reflow.html +59 -0
- data/misc/openlayers/tests/manual/renderedDimensions.html +113 -0
- data/misc/openlayers/tests/manual/select-feature-right-click.html +86 -0
- data/misc/openlayers/tests/manual/select-feature.html +75 -0
- data/misc/openlayers/tests/manual/tiles-loading.html +122 -0
- data/misc/openlayers/tests/manual/tween.html +82 -0
- data/misc/openlayers/tests/manual/vector-features-performance.html +149 -0
- data/misc/openlayers/tests/manual/vector-layer-zindex.html +143 -0
- data/misc/openlayers/tests/mice.xml +156 -0
- data/misc/openlayers/tests/node.js/mockdom.js +104 -0
- data/misc/openlayers/tests/node.js/node-tests.cfg +12 -0
- data/misc/openlayers/tests/node.js/node.js +1 -0
- data/misc/openlayers/tests/node.js/run-test.js +26 -0
- data/misc/openlayers/tests/node.js/run.sh +10 -0
- data/misc/openlayers/tests/owls.xml +156 -0
- data/misc/openlayers/tests/run-tests.html +155 -0
- data/misc/openlayers/tests/selenium/remotecontrol/config.cfg +48 -0
- data/misc/openlayers/tests/selenium/remotecontrol/selenium.py +1846 -0
- data/misc/openlayers/tests/selenium/remotecontrol/setup.txt +8 -0
- data/misc/openlayers/tests/selenium/remotecontrol/test_ol.py +95 -0
- data/misc/openlayers/tests/speed/geometry.html +43 -0
- data/misc/openlayers/tests/speed/string_format.html +29 -0
- data/misc/openlayers/tests/speed/vector-renderers.html +25 -0
- data/misc/openlayers/tests/speed/vector-renderers.js +70 -0
- data/misc/openlayers/tests/speed/wmc_speed.html +30 -0
- data/misc/openlayers/tests/speed/wmscaps.html +52 -0
- data/misc/openlayers/tests/speed/wmscaps.js +4956 -0
- data/misc/openlayers/tests/speed/wmscaps.xml +4954 -0
- data/misc/openlayers/tests/throws.js +82 -0
- data/misc/openlayers/theme/default/google.css +9 -0
- data/misc/openlayers/theme/default/google.tidy.css +1 -0
- data/misc/openlayers/theme/default/ie6-style.css +10 -0
- data/misc/openlayers/theme/default/ie6-style.tidy.css +1 -0
- data/misc/openlayers/theme/default/img/add_point_off.png +0 -0
- data/misc/openlayers/theme/default/img/add_point_on.png +0 -0
- data/misc/openlayers/theme/default/img/blank.gif +0 -0
- data/misc/openlayers/theme/default/img/close.gif +0 -0
- data/misc/openlayers/theme/default/img/drag-rectangle-off.png +0 -0
- data/misc/openlayers/theme/default/img/drag-rectangle-on.png +0 -0
- data/misc/openlayers/theme/default/img/draw_line_off.png +0 -0
- data/misc/openlayers/theme/default/img/draw_line_on.png +0 -0
- data/misc/openlayers/theme/default/img/draw_point_off.png +0 -0
- data/misc/openlayers/theme/default/img/draw_point_on.png +0 -0
- data/misc/openlayers/theme/default/img/draw_polygon_off.png +0 -0
- data/misc/openlayers/theme/default/img/draw_polygon_on.png +0 -0
- data/misc/openlayers/theme/default/img/editing_tool_bar.png +0 -0
- data/misc/openlayers/theme/default/img/move_feature_off.png +0 -0
- data/misc/openlayers/theme/default/img/move_feature_on.png +0 -0
- data/misc/openlayers/theme/default/img/navigation_history.png +0 -0
- data/misc/openlayers/theme/default/img/overview_replacement.gif +0 -0
- data/misc/openlayers/theme/default/img/pan-panel-NOALPHA.png +0 -0
- data/misc/openlayers/theme/default/img/pan-panel.png +0 -0
- data/misc/openlayers/theme/default/img/pan_off.png +0 -0
- data/misc/openlayers/theme/default/img/pan_on.png +0 -0
- data/misc/openlayers/theme/default/img/panning-hand-off.png +0 -0
- data/misc/openlayers/theme/default/img/panning-hand-on.png +0 -0
- data/misc/openlayers/theme/default/img/remove_point_off.png +0 -0
- data/misc/openlayers/theme/default/img/remove_point_on.png +0 -0
- data/misc/openlayers/theme/default/img/ruler.png +0 -0
- data/misc/openlayers/theme/default/img/save_features_off.png +0 -0
- data/misc/openlayers/theme/default/img/save_features_on.png +0 -0
- data/misc/openlayers/theme/default/img/view_next_off.png +0 -0
- data/misc/openlayers/theme/default/img/view_next_on.png +0 -0
- data/misc/openlayers/theme/default/img/view_previous_off.png +0 -0
- data/misc/openlayers/theme/default/img/view_previous_on.png +0 -0
- data/misc/openlayers/theme/default/img/zoom-panel-NOALPHA.png +0 -0
- data/misc/openlayers/theme/default/img/zoom-panel.png +0 -0
- data/misc/openlayers/theme/default/style.css +516 -0
- data/misc/openlayers/theme/default/style.mobile.css +70 -0
- data/misc/openlayers/theme/default/style.mobile.tidy.css +1 -0
- data/misc/openlayers/theme/default/style.tidy.css +1 -0
- data/misc/openlayers/tools/BeautifulSoup.py +1767 -0
- data/misc/openlayers/tools/README.txt +14 -0
- data/misc/openlayers/tools/closure_library_jscompiler.py +71 -0
- data/misc/openlayers/tools/closure_ws.py +28 -0
- data/misc/openlayers/tools/exampleparser.py +251 -0
- data/misc/openlayers/tools/jsmin.c +272 -0
- data/misc/openlayers/tools/jsmin.py +216 -0
- data/misc/openlayers/tools/mergejs.py +287 -0
- data/misc/openlayers/tools/minimize.py +47 -0
- data/misc/openlayers/tools/oldot.py +43 -0
- data/misc/openlayers/tools/release.sh +71 -0
- data/misc/openlayers/tools/shrinksafe.py +54 -0
- data/misc/openlayers/tools/toposort.py +35 -0
- data/misc/openlayers/tools/uglify_js.py +35 -0
- data/misc/openlayers/tools/update_dev_dir.sh +103 -0
- metadata +1320 -2
|
@@ -0,0 +1,893 @@
|
|
|
1
|
+
// -----
|
|
2
|
+
// The `timezoneJS.Date` object gives you full-blown timezone support, independent from the timezone set on the end-user's machine running the browser. It uses the Olson zoneinfo files for its timezone data.
|
|
3
|
+
//
|
|
4
|
+
// The constructor function and setter methods use proxy JavaScript Date objects behind the scenes, so you can use strings like '10/22/2006' with the constructor. You also get the same sensible wraparound behavior with numeric parameters (like setting a value of 14 for the month wraps around to the next March).
|
|
5
|
+
//
|
|
6
|
+
// The other significant difference from the built-in JavaScript Date is that `timezoneJS.Date` also has named properties that store the values of year, month, date, etc., so it can be directly serialized to JSON and used for data transfer.
|
|
7
|
+
|
|
8
|
+
/*
|
|
9
|
+
* Copyright 2010 Matthew Eernisse (mde@fleegix.org)
|
|
10
|
+
* and Open Source Applications Foundation
|
|
11
|
+
*
|
|
12
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
* you may not use this file except in compliance with the License.
|
|
14
|
+
* You may obtain a copy of the License at
|
|
15
|
+
*
|
|
16
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
*
|
|
18
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
* See the License for the specific language governing permissions and
|
|
22
|
+
* limitations under the License.
|
|
23
|
+
*
|
|
24
|
+
* Credits: Ideas included from incomplete JS implementation of Olson
|
|
25
|
+
* parser, "XMLDAte" by Philippe Goetz (philippe.goetz@wanadoo.fr)
|
|
26
|
+
*
|
|
27
|
+
* Contributions:
|
|
28
|
+
* Jan Niehusmann
|
|
29
|
+
* Ricky Romero
|
|
30
|
+
* Preston Hunt (prestonhunt@gmail.com)
|
|
31
|
+
* Dov. B Katz (dov.katz@morganstanley.com)
|
|
32
|
+
* Peter Bergström (pbergstr@mac.com)
|
|
33
|
+
* Long Ho
|
|
34
|
+
*/
|
|
35
|
+
(function () {
|
|
36
|
+
// Standard initialization stuff to make sure the library is
|
|
37
|
+
// usable on both client and server (node) side.
|
|
38
|
+
|
|
39
|
+
var root = this;
|
|
40
|
+
|
|
41
|
+
var timezoneJS;
|
|
42
|
+
if (typeof exports !== 'undefined') {
|
|
43
|
+
timezoneJS = exports;
|
|
44
|
+
} else {
|
|
45
|
+
timezoneJS = root.timezoneJS = {};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
timezoneJS.VERSION = '1.0.0';
|
|
49
|
+
|
|
50
|
+
// Grab the ajax library from global context.
|
|
51
|
+
// This can be jQuery, Zepto or fleegix.
|
|
52
|
+
// You can also specify your own transport mechanism by declaring
|
|
53
|
+
// `timezoneJS.timezone.transport` to a `function`. More details will follow
|
|
54
|
+
var $ = root.$ || root.jQuery || root.Zepto
|
|
55
|
+
, fleegix = root.fleegix
|
|
56
|
+
// Declare constant list of days and months. Unfortunately this doesn't leave room for i18n due to the Olson data being in English itself
|
|
57
|
+
, DAYS = timezoneJS.Days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
|
|
58
|
+
, MONTHS = timezoneJS.Months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
|
|
59
|
+
, SHORT_MONTHS = {}
|
|
60
|
+
, SHORT_DAYS = {}
|
|
61
|
+
, EXACT_DATE_TIME = {}
|
|
62
|
+
, TZ_REGEXP = new RegExp('^[a-zA-Z]+/');
|
|
63
|
+
|
|
64
|
+
//`{ "Jan": 0, "Feb": 1, "Mar": 2, "Apr": 3, "May": 4, "Jun": 5, "Jul": 6, "Aug": 7, "Sep": 8, "Oct": 9, "Nov": 10, "Dec": 11 }`
|
|
65
|
+
for (var i = 0; i < MONTHS.length; i++) {
|
|
66
|
+
SHORT_MONTHS[MONTHS[i].substr(0, 3)] = i;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
//`{ "Sun": 0, "Mon": 1, "Tue": 2, "Wed": 3, "Thu": 4, "Fri": 5, "Sat": 6 }`
|
|
70
|
+
for (i = 0; i < DAYS.length; i++) {
|
|
71
|
+
SHORT_DAYS[DAYS[i].substr(0, 3)] = i;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
//Handle array indexOf in IE
|
|
76
|
+
if (!Array.prototype.indexOf) {
|
|
77
|
+
Array.prototype.indexOf = function (el) {
|
|
78
|
+
for (var i = 0; i < this.length; i++ ) {
|
|
79
|
+
if (el === this[i]) return i;
|
|
80
|
+
}
|
|
81
|
+
return -1;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Format a number to the length = digits. For ex:
|
|
86
|
+
//
|
|
87
|
+
// `_fixWidth(2, 2) = '02'`
|
|
88
|
+
//
|
|
89
|
+
// `_fixWidth(1998, 2) = '98'`
|
|
90
|
+
//
|
|
91
|
+
// This is used to pad numbers in converting date to string in ISO standard.
|
|
92
|
+
var _fixWidth = function (number, digits) {
|
|
93
|
+
if (typeof number !== "number") { throw "not a number: " + number; }
|
|
94
|
+
var s = number.toString();
|
|
95
|
+
if (number.length > digits) {
|
|
96
|
+
return number.substr(number.length - digits, number.length);
|
|
97
|
+
}
|
|
98
|
+
while (s.length < digits) {
|
|
99
|
+
s = '0' + s;
|
|
100
|
+
}
|
|
101
|
+
return s;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
// Abstraction layer for different transport layers, including fleegix/jQuery/Zepto
|
|
105
|
+
//
|
|
106
|
+
// Object `opts` include
|
|
107
|
+
//
|
|
108
|
+
// - `url`: url to ajax query
|
|
109
|
+
//
|
|
110
|
+
// - `async`: true for asynchronous, false otherwise. If false, return value will be response from URL. This is true by default
|
|
111
|
+
//
|
|
112
|
+
// - `success`: success callback function
|
|
113
|
+
//
|
|
114
|
+
// - `error`: error callback function
|
|
115
|
+
// Returns response from URL if async is false, otherwise the AJAX request object itself
|
|
116
|
+
var _transport = function (opts) {
|
|
117
|
+
if ((!fleegix || typeof fleegix.xhr === 'undefined') && (!$ || typeof $.ajax === 'undefined')) {
|
|
118
|
+
throw new Error('Please use the Fleegix.js XHR module, jQuery ajax, Zepto ajax, or define your own transport mechanism for downloading zone files.');
|
|
119
|
+
}
|
|
120
|
+
if (!opts) return;
|
|
121
|
+
if (!opts.url) throw new Error ('URL must be specified');
|
|
122
|
+
if (!('async' in opts)) opts.async = true;
|
|
123
|
+
if (!opts.async) {
|
|
124
|
+
return fleegix && fleegix.xhr
|
|
125
|
+
? fleegix.xhr.doReq({ url: opts.url, async: false })
|
|
126
|
+
: $.ajax({ url : opts.url, async : false }).responseText;
|
|
127
|
+
}
|
|
128
|
+
return fleegix && fleegix.xhr
|
|
129
|
+
? fleegix.xhr.send({
|
|
130
|
+
url : opts.url,
|
|
131
|
+
method : 'get',
|
|
132
|
+
handleSuccess : opts.success,
|
|
133
|
+
handleErr : opts.error
|
|
134
|
+
})
|
|
135
|
+
: $.ajax({
|
|
136
|
+
url : opts.url,
|
|
137
|
+
dataType: 'text',
|
|
138
|
+
method : 'GET',
|
|
139
|
+
error : opts.error,
|
|
140
|
+
success : opts.success
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
// Constructor, which is similar to that of the native Date object itself
|
|
145
|
+
timezoneJS.Date = function () {
|
|
146
|
+
var args = Array.prototype.slice.apply(arguments)
|
|
147
|
+
, dt = null
|
|
148
|
+
, tz = null
|
|
149
|
+
, arr = [];
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
//We support several different constructors, including all the ones from `Date` object
|
|
153
|
+
// with a timezone string at the end.
|
|
154
|
+
//
|
|
155
|
+
//- `[tz]`: Returns object with time in `tz` specified.
|
|
156
|
+
//
|
|
157
|
+
// - `utcMillis`, `[tz]`: Return object with UTC time = `utcMillis`, in `tz`.
|
|
158
|
+
//
|
|
159
|
+
// - `Date`, `[tz]`: Returns object with UTC time = `Date.getTime()`, in `tz`.
|
|
160
|
+
//
|
|
161
|
+
// - `year, month, [date,] [hours,] [minutes,] [seconds,] [millis,] [tz]: Same as `Date` object
|
|
162
|
+
// with tz.
|
|
163
|
+
//
|
|
164
|
+
// - `Array`: Can be any combo of the above.
|
|
165
|
+
//
|
|
166
|
+
//If 1st argument is an array, we can use it as a list of arguments itself
|
|
167
|
+
if (Object.prototype.toString.call(args[0]) === '[object Array]') {
|
|
168
|
+
args = args[0];
|
|
169
|
+
}
|
|
170
|
+
if (typeof args[args.length - 1] === 'string' && TZ_REGEXP.test(args[args.length - 1])) {
|
|
171
|
+
tz = args.pop();
|
|
172
|
+
}
|
|
173
|
+
switch (args.length) {
|
|
174
|
+
case 0:
|
|
175
|
+
dt = new Date();
|
|
176
|
+
break;
|
|
177
|
+
case 1:
|
|
178
|
+
dt = new Date(args[0]);
|
|
179
|
+
break;
|
|
180
|
+
default:
|
|
181
|
+
for (var i = 0; i < 7; i++) {
|
|
182
|
+
arr[i] = args[i] || 0;
|
|
183
|
+
}
|
|
184
|
+
dt = new Date(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6]);
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
this._useCache = false;
|
|
189
|
+
this._tzInfo = {};
|
|
190
|
+
this._day = 0;
|
|
191
|
+
this.year = 0;
|
|
192
|
+
this.month = 0;
|
|
193
|
+
this.date = 0;
|
|
194
|
+
this.hours = 0;
|
|
195
|
+
this.minutes = 0;
|
|
196
|
+
this.seconds = 0;
|
|
197
|
+
this.milliseconds = 0;
|
|
198
|
+
this.timezone = tz || null;
|
|
199
|
+
//Tricky part:
|
|
200
|
+
// For the cases where there are 1/2 arguments: `timezoneJS.Date(millis, [tz])` and `timezoneJS.Date(Date, [tz])`. The
|
|
201
|
+
// Date `dt` created should be in UTC. Thus the way I detect such cases is to determine if `arr` is not populated & `tz`
|
|
202
|
+
// is specified. Because if `tz` is not specified, `dt` can be in local time.
|
|
203
|
+
if (arr.length) {
|
|
204
|
+
this.setFromDateObjProxy(dt);
|
|
205
|
+
} else {
|
|
206
|
+
this.setFromTimeProxy(dt.getTime(), tz);
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
// Implements most of the native Date object
|
|
211
|
+
timezoneJS.Date.prototype = {
|
|
212
|
+
getDate: function () { return this.date; },
|
|
213
|
+
getDay: function () { return this._day; },
|
|
214
|
+
getFullYear: function () { return this.year; },
|
|
215
|
+
getMonth: function () { return this.month; },
|
|
216
|
+
getYear: function () { return this.year; },
|
|
217
|
+
getHours: function () { return this.hours; },
|
|
218
|
+
getMilliseconds: function () { return this.milliseconds; },
|
|
219
|
+
getMinutes: function () { return this.minutes; },
|
|
220
|
+
getSeconds: function () { return this.seconds; },
|
|
221
|
+
getUTCDate: function () { return this.getUTCDateProxy().getUTCDate(); },
|
|
222
|
+
getUTCDay: function () { return this.getUTCDateProxy().getUTCDay(); },
|
|
223
|
+
getUTCFullYear: function () { return this.getUTCDateProxy().getUTCFullYear(); },
|
|
224
|
+
getUTCHours: function () { return this.getUTCDateProxy().getUTCHours(); },
|
|
225
|
+
getUTCMilliseconds: function () { return this.getUTCDateProxy().getUTCMilliseconds(); },
|
|
226
|
+
getUTCMinutes: function () { return this.getUTCDateProxy().getUTCMinutes(); },
|
|
227
|
+
getUTCMonth: function () { return this.getUTCDateProxy().getUTCMonth(); },
|
|
228
|
+
getUTCSeconds: function () { return this.getUTCDateProxy().getUTCSeconds(); },
|
|
229
|
+
// Time adjusted to user-specified timezone
|
|
230
|
+
getTime: function () {
|
|
231
|
+
return this._timeProxy + (this.getTimezoneOffset() * 60 * 1000);
|
|
232
|
+
},
|
|
233
|
+
getTimezone: function () { return this.timezone; },
|
|
234
|
+
getTimezoneOffset: function () { return this.getTimezoneInfo().tzOffset; },
|
|
235
|
+
getTimezoneAbbreviation: function () { return this.getTimezoneInfo().tzAbbr; },
|
|
236
|
+
getTimezoneInfo: function () {
|
|
237
|
+
if (this._useCache) return this._tzInfo;
|
|
238
|
+
var res;
|
|
239
|
+
// If timezone is specified, get the correct timezone info based on the Date given
|
|
240
|
+
if (this.timezone) {
|
|
241
|
+
res = this.timezone === 'Etc/UTC' || this.timezone === 'Etc/GMT'
|
|
242
|
+
? { tzOffset: 0, tzAbbr: 'UTC' }
|
|
243
|
+
: timezoneJS.timezone.getTzInfo(this._timeProxy, this.timezone);
|
|
244
|
+
}
|
|
245
|
+
// If no timezone was specified, use the local browser offset
|
|
246
|
+
else {
|
|
247
|
+
res = { tzOffset: this.getLocalOffset(), tzAbbr: null };
|
|
248
|
+
}
|
|
249
|
+
this._tzInfo = res;
|
|
250
|
+
this._useCache = true;
|
|
251
|
+
return res
|
|
252
|
+
},
|
|
253
|
+
getUTCDateProxy: function () {
|
|
254
|
+
var dt = new Date(this._timeProxy);
|
|
255
|
+
dt.setUTCMinutes(dt.getUTCMinutes() + this.getTimezoneOffset());
|
|
256
|
+
return dt;
|
|
257
|
+
},
|
|
258
|
+
setDate: function (n) { this.setAttribute('date', n); },
|
|
259
|
+
setFullYear: function (n) { this.setAttribute('year', n); },
|
|
260
|
+
setMonth: function (n) { this.setAttribute('month', n); },
|
|
261
|
+
setYear: function (n) { this.setUTCAttribute('year', n); },
|
|
262
|
+
setHours: function (n) { this.setAttribute('hours', n); },
|
|
263
|
+
setMilliseconds: function (n) { this.setAttribute('milliseconds', n); },
|
|
264
|
+
setMinutes: function (n) { this.setAttribute('minutes', n); },
|
|
265
|
+
setSeconds: function (n) { this.setAttribute('seconds', n); },
|
|
266
|
+
setTime: function (n) {
|
|
267
|
+
if (isNaN(n)) { throw new Error('Units must be a number.'); }
|
|
268
|
+
this.setFromTimeProxy(n, this.timezone);
|
|
269
|
+
},
|
|
270
|
+
setUTCDate: function (n) { this.setUTCAttribute('date', n); },
|
|
271
|
+
setUTCFullYear: function (n) { this.setUTCAttribute('year', n); },
|
|
272
|
+
setUTCHours: function (n) { this.setUTCAttribute('hours', n); },
|
|
273
|
+
setUTCMilliseconds: function (n) { this.setUTCAttribute('milliseconds', n); },
|
|
274
|
+
setUTCMinutes: function (n) { this.setUTCAttribute('minutes', n); },
|
|
275
|
+
setUTCMonth: function (n) { this.setUTCAttribute('month', n); },
|
|
276
|
+
setUTCSeconds: function (n) { this.setUTCAttribute('seconds', n); },
|
|
277
|
+
setFromDateObjProxy: function (dt) {
|
|
278
|
+
this.year = dt.getFullYear();
|
|
279
|
+
this.month = dt.getMonth();
|
|
280
|
+
this.date = dt.getDate();
|
|
281
|
+
this.hours = dt.getHours();
|
|
282
|
+
this.minutes = dt.getMinutes();
|
|
283
|
+
this.seconds = dt.getSeconds();
|
|
284
|
+
this.milliseconds = dt.getMilliseconds();
|
|
285
|
+
this._day = dt.getDay();
|
|
286
|
+
this._dateProxy = dt;
|
|
287
|
+
this._timeProxy = Date.UTC(this.year, this.month, this.date, this.hours, this.minutes, this.seconds, this.milliseconds);
|
|
288
|
+
this._useCache = false;
|
|
289
|
+
},
|
|
290
|
+
setFromTimeProxy: function (utcMillis, tz) {
|
|
291
|
+
var dt = new Date(utcMillis);
|
|
292
|
+
var tzOffset;
|
|
293
|
+
tzOffset = tz ? timezoneJS.timezone.getTzInfo(dt, tz).tzOffset : dt.getTimezoneOffset();
|
|
294
|
+
dt.setTime(utcMillis + (dt.getTimezoneOffset() - tzOffset) * 60000);
|
|
295
|
+
this.setFromDateObjProxy(dt);
|
|
296
|
+
},
|
|
297
|
+
setAttribute: function (unit, n) {
|
|
298
|
+
if (isNaN(n)) { throw new Error('Units must be a number.'); }
|
|
299
|
+
var dt = this._dateProxy;
|
|
300
|
+
var meth = unit === 'year' ? 'FullYear' : unit.substr(0, 1).toUpperCase() + unit.substr(1);
|
|
301
|
+
dt['set' + meth](n);
|
|
302
|
+
this.setFromDateObjProxy(dt);
|
|
303
|
+
},
|
|
304
|
+
setUTCAttribute: function (unit, n) {
|
|
305
|
+
if (isNaN(n)) { throw new Error('Units must be a number.'); }
|
|
306
|
+
var meth = unit === 'year' ? 'FullYear' : unit.substr(0, 1).toUpperCase() + unit.substr(1);
|
|
307
|
+
var dt = this.getUTCDateProxy();
|
|
308
|
+
dt['setUTC' + meth](n);
|
|
309
|
+
dt.setUTCMinutes(dt.getUTCMinutes() - this.getTimezoneOffset());
|
|
310
|
+
this.setFromTimeProxy(dt.getTime() + this.getTimezoneOffset() * 60000, this.timezone);
|
|
311
|
+
},
|
|
312
|
+
setTimezone: function (tz) {
|
|
313
|
+
var previousOffset = this.getTimezoneInfo().tzOffset;
|
|
314
|
+
this.timezone = tz;
|
|
315
|
+
this._useCache = false;
|
|
316
|
+
// Set UTC minutes offsets by the delta of the two timezones
|
|
317
|
+
this.setUTCMinutes(this.getUTCMinutes() - this.getTimezoneInfo().tzOffset + previousOffset);
|
|
318
|
+
},
|
|
319
|
+
removeTimezone: function () {
|
|
320
|
+
this.timezone = null;
|
|
321
|
+
this._useCache = false;
|
|
322
|
+
},
|
|
323
|
+
valueOf: function () { return this.getTime(); },
|
|
324
|
+
clone: function () {
|
|
325
|
+
return this.timezone ? new timezoneJS.Date(this.getTime(), this.timezone) : new timezoneJS.Date(this.getTime());
|
|
326
|
+
},
|
|
327
|
+
toGMTString: function () { return this.toString('EEE, dd MMM yyyy HH:mm:ss Z', 'Etc/GMT'); },
|
|
328
|
+
toLocaleString: function () {},
|
|
329
|
+
toLocaleDateString: function () {},
|
|
330
|
+
toLocaleTimeString: function () {},
|
|
331
|
+
toSource: function () {},
|
|
332
|
+
toISOString: function () { return this.toString('yyyy-MM-ddTHH:mm:ss.SSS', 'Etc/UTC') + 'Z'; },
|
|
333
|
+
toJSON: function () { return this.toISOString(); },
|
|
334
|
+
// Allows different format following ISO8601 format:
|
|
335
|
+
toString: function (format, tz) {
|
|
336
|
+
// Default format is the same as toISOString
|
|
337
|
+
if (!format) format = 'yyyy-MM-dd HH:mm:ss';
|
|
338
|
+
var result = format;
|
|
339
|
+
var tzInfo = tz ? timezoneJS.timezone.getTzInfo(this.getTime(), tz) : this.getTimezoneInfo();
|
|
340
|
+
var _this = this;
|
|
341
|
+
// If timezone is specified, get a clone of the current Date object and modify it
|
|
342
|
+
if (tz) {
|
|
343
|
+
_this = this.clone();
|
|
344
|
+
_this.setTimezone(tz);
|
|
345
|
+
}
|
|
346
|
+
var hours = _this.getHours();
|
|
347
|
+
return result
|
|
348
|
+
// fix the same characters in Month names
|
|
349
|
+
.replace(/a+/g, function () { return 'k'; })
|
|
350
|
+
// `y`: year
|
|
351
|
+
.replace(/y+/g, function (token) { return _fixWidth(_this.getFullYear(), token.length); })
|
|
352
|
+
// `d`: date
|
|
353
|
+
.replace(/d+/g, function (token) { return _fixWidth(_this.getDate(), token.length); })
|
|
354
|
+
// `m`: minute
|
|
355
|
+
.replace(/m+/g, function (token) { return _fixWidth(_this.getMinutes(), token.length); })
|
|
356
|
+
// `s`: second
|
|
357
|
+
.replace(/s+/g, function (token) { return _fixWidth(_this.getSeconds(), token.length); })
|
|
358
|
+
// `S`: millisecond
|
|
359
|
+
.replace(/S+/g, function (token) { return _fixWidth(_this.getMilliseconds(), token.length); })
|
|
360
|
+
// `M`: month. Note: `MM` will be the numeric representation (e.g February is 02) but `MMM` will be text representation (e.g February is Feb)
|
|
361
|
+
.replace(/M+/g, function (token) {
|
|
362
|
+
var _month = _this.getMonth(),
|
|
363
|
+
_len = token.length;
|
|
364
|
+
if (_len > 3) {
|
|
365
|
+
return timezoneJS.Months[_month];
|
|
366
|
+
} else if (_len > 2) {
|
|
367
|
+
return timezoneJS.Months[_month].substring(0, _len);
|
|
368
|
+
}
|
|
369
|
+
return _fixWidth(_month + 1, _len);
|
|
370
|
+
})
|
|
371
|
+
// `k`: AM/PM
|
|
372
|
+
.replace(/k+/g, function () {
|
|
373
|
+
if (hours >= 12) {
|
|
374
|
+
if (hours > 12) {
|
|
375
|
+
hours -= 12;
|
|
376
|
+
}
|
|
377
|
+
return 'PM';
|
|
378
|
+
}
|
|
379
|
+
return 'AM';
|
|
380
|
+
})
|
|
381
|
+
// `H`: hour
|
|
382
|
+
.replace(/H+/g, function (token) { return _fixWidth(hours, token.length); })
|
|
383
|
+
// `E`: day
|
|
384
|
+
.replace(/E+/g, function (token) { return DAYS[_this.getDay()].substring(0, token.length); })
|
|
385
|
+
// `Z`: timezone abbreviation
|
|
386
|
+
.replace(/Z+/gi, function () { return tzInfo.tzAbbr; });
|
|
387
|
+
},
|
|
388
|
+
toUTCString: function () { return this.toGMTString(); },
|
|
389
|
+
civilToJulianDayNumber: function (y, m, d) {
|
|
390
|
+
var a;
|
|
391
|
+
// Adjust for zero-based JS-style array
|
|
392
|
+
m++;
|
|
393
|
+
if (m > 12) {
|
|
394
|
+
a = parseInt(m/12, 10);
|
|
395
|
+
m = m % 12;
|
|
396
|
+
y += a;
|
|
397
|
+
}
|
|
398
|
+
if (m <= 2) {
|
|
399
|
+
y -= 1;
|
|
400
|
+
m += 12;
|
|
401
|
+
}
|
|
402
|
+
a = Math.floor(y / 100);
|
|
403
|
+
var b = 2 - a + Math.floor(a / 4)
|
|
404
|
+
, jDt = Math.floor(365.25 * (y + 4716)) + Math.floor(30.6001 * (m + 1)) + d + b - 1524;
|
|
405
|
+
return jDt;
|
|
406
|
+
},
|
|
407
|
+
getLocalOffset: function () {
|
|
408
|
+
return this._dateProxy.getTimezoneOffset();
|
|
409
|
+
}
|
|
410
|
+
};
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
timezoneJS.timezone = new function () {
|
|
414
|
+
var _this = this
|
|
415
|
+
, regionMap = {'Etc':'etcetera','EST':'northamerica','MST':'northamerica','HST':'northamerica','EST5EDT':'northamerica','CST6CDT':'northamerica','MST7MDT':'northamerica','PST8PDT':'northamerica','America':'northamerica','Pacific':'australasia','Atlantic':'europe','Africa':'africa','Indian':'africa','Antarctica':'antarctica','Asia':'asia','Australia':'australasia','Europe':'europe','WET':'europe','CET':'europe','MET':'europe','EET':'europe'}
|
|
416
|
+
, regionExceptions = {'Pacific/Honolulu':'northamerica','Atlantic/Bermuda':'northamerica','Atlantic/Cape_Verde':'africa','Atlantic/St_Helena':'africa','Indian/Kerguelen':'antarctica','Indian/Chagos':'asia','Indian/Maldives':'asia','Indian/Christmas':'australasia','Indian/Cocos':'australasia','America/Danmarkshavn':'europe','America/Scoresbysund':'europe','America/Godthab':'europe','America/Thule':'europe','Asia/Yekaterinburg':'europe','Asia/Omsk':'europe','Asia/Novosibirsk':'europe','Asia/Krasnoyarsk':'europe','Asia/Irkutsk':'europe','Asia/Yakutsk':'europe','Asia/Vladivostok':'europe','Asia/Sakhalin':'europe','Asia/Magadan':'europe','Asia/Kamchatka':'europe','Asia/Anadyr':'europe','Africa/Ceuta':'europe','America/Argentina/Buenos_Aires':'southamerica','America/Argentina/Cordoba':'southamerica','America/Argentina/Tucuman':'southamerica','America/Argentina/La_Rioja':'southamerica','America/Argentina/San_Juan':'southamerica','America/Argentina/Jujuy':'southamerica','America/Argentina/Catamarca':'southamerica','America/Argentina/Mendoza':'southamerica','America/Argentina/Rio_Gallegos':'southamerica','America/Argentina/Ushuaia':'southamerica','America/Aruba':'southamerica','America/La_Paz':'southamerica','America/Noronha':'southamerica','America/Belem':'southamerica','America/Fortaleza':'southamerica','America/Recife':'southamerica','America/Araguaina':'southamerica','America/Maceio':'southamerica','America/Bahia':'southamerica','America/Sao_Paulo':'southamerica','America/Campo_Grande':'southamerica','America/Cuiaba':'southamerica','America/Porto_Velho':'southamerica','America/Boa_Vista':'southamerica','America/Manaus':'southamerica','America/Eirunepe':'southamerica','America/Rio_Branco':'southamerica','America/Santiago':'southamerica','Pacific/Easter':'southamerica','America/Bogota':'southamerica','America/Curacao':'southamerica','America/Guayaquil':'southamerica','Pacific/Galapagos':'southamerica','Atlantic/Stanley':'southamerica','America/Cayenne':'southamerica','America/Guyana':'southamerica','America/Asuncion':'southamerica','America/Lima':'southamerica','Atlantic/South_Georgia':'southamerica','America/Paramaribo':'southamerica','America/Port_of_Spain':'southamerica','America/Montevideo':'southamerica','America/Caracas':'southamerica'};
|
|
417
|
+
function invalidTZError(t) { throw new Error('Timezone "' + t + '" is either incorrect, or not loaded in the timezone registry.'); }
|
|
418
|
+
function builtInLoadZoneFile(fileName, opts) {
|
|
419
|
+
var url = _this.zoneFileBasePath + '/' + fileName;
|
|
420
|
+
return !opts || !opts.async
|
|
421
|
+
? _this.parseZones(_this.transport({ url : url, async : false }))
|
|
422
|
+
: _this.transport({
|
|
423
|
+
async: true,
|
|
424
|
+
url : url,
|
|
425
|
+
success : function (str) {
|
|
426
|
+
if (_this.parseZones(str) && typeof opts.callback === 'function') {
|
|
427
|
+
opts.callback();
|
|
428
|
+
}
|
|
429
|
+
return true;
|
|
430
|
+
},
|
|
431
|
+
error : function () {
|
|
432
|
+
throw new Error('Error retrieving "' + url + '" zoneinfo files');
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
function getRegionForTimezone(tz) {
|
|
437
|
+
var exc = regionExceptions[tz]
|
|
438
|
+
, reg
|
|
439
|
+
, ret;
|
|
440
|
+
if (exc) return exc;
|
|
441
|
+
reg = tz.split('/')[0];
|
|
442
|
+
ret = regionMap[reg];
|
|
443
|
+
// If there's nothing listed in the main regions for this TZ, check the 'backward' links
|
|
444
|
+
if (ret) return ret;
|
|
445
|
+
var link = _this.zones[tz];
|
|
446
|
+
if (typeof link === 'string') {
|
|
447
|
+
return getRegionForTimezone(link);
|
|
448
|
+
}
|
|
449
|
+
// Backward-compat file hasn't loaded yet, try looking in there
|
|
450
|
+
if (!_this.loadedZones.backward) {
|
|
451
|
+
// This is for obvious legacy zones (e.g., Iceland) that don't even have a prefix like "America/" that look like normal zones
|
|
452
|
+
_this.loadZoneFile('backward');
|
|
453
|
+
return getRegionForTimezone(tz);
|
|
454
|
+
}
|
|
455
|
+
invalidTZError(tz);
|
|
456
|
+
}
|
|
457
|
+
function parseTimeString(str) {
|
|
458
|
+
var pat = /(\d+)(?::0*(\d*))?(?::0*(\d*))?([wsugz])?$/;
|
|
459
|
+
var hms = str.match(pat);
|
|
460
|
+
hms[1] = parseInt(hms[1], 10);
|
|
461
|
+
hms[2] = hms[2] ? parseInt(hms[2], 10) : 0;
|
|
462
|
+
hms[3] = hms[3] ? parseInt(hms[3], 10) : 0;
|
|
463
|
+
|
|
464
|
+
return hms;
|
|
465
|
+
}
|
|
466
|
+
function processZone(z) {
|
|
467
|
+
if (!z[3]) { return; }
|
|
468
|
+
var yea = parseInt(z[3], 10);
|
|
469
|
+
var mon = 11;
|
|
470
|
+
var dat = 31;
|
|
471
|
+
if (z[4]) {
|
|
472
|
+
mon = SHORT_MONTHS[z[4].substr(0, 3)];
|
|
473
|
+
dat = parseInt(z[5], 10) || 1;
|
|
474
|
+
}
|
|
475
|
+
var string = z[6] ? z[6] : '00:00:00'
|
|
476
|
+
, t = parseTimeString(string);
|
|
477
|
+
return [yea, mon, dat, t[1], t[2], t[3]];
|
|
478
|
+
}
|
|
479
|
+
function getZone(dt, tz) {
|
|
480
|
+
var utcMillis = typeof dt === 'number' ? dt : new Date(dt).getTime();
|
|
481
|
+
var t = tz;
|
|
482
|
+
var zoneList = _this.zones[t];
|
|
483
|
+
// Follow links to get to an actual zone
|
|
484
|
+
while (typeof zoneList === "string") {
|
|
485
|
+
t = zoneList;
|
|
486
|
+
zoneList = _this.zones[t];
|
|
487
|
+
}
|
|
488
|
+
if (!zoneList) {
|
|
489
|
+
// Backward-compat file hasn't loaded yet, try looking in there
|
|
490
|
+
if (!_this.loadedZones.backward) {
|
|
491
|
+
//This is for backward entries like "America/Fort_Wayne" that
|
|
492
|
+
// getRegionForTimezone *thinks* it has a region file and zone
|
|
493
|
+
// for (e.g., America => 'northamerica'), but in reality it's a
|
|
494
|
+
// legacy zone we need the backward file for.
|
|
495
|
+
_this.loadZoneFile('backward');
|
|
496
|
+
return getZone(dt, tz);
|
|
497
|
+
}
|
|
498
|
+
invalidTZError(t);
|
|
499
|
+
}
|
|
500
|
+
if (zoneList.length === 0) {
|
|
501
|
+
throw new Error('No Zone found for "' + tz + '" on ' + dt);
|
|
502
|
+
}
|
|
503
|
+
//Do backwards lookup since most use cases deal with newer dates.
|
|
504
|
+
for (var i = zoneList.length - 1; i >= 0; i--) {
|
|
505
|
+
var z = zoneList[i];
|
|
506
|
+
if (z[3] && utcMillis > z[3]) break;
|
|
507
|
+
}
|
|
508
|
+
return zoneList[i+1];
|
|
509
|
+
}
|
|
510
|
+
function getBasicOffset(time) {
|
|
511
|
+
var off = parseTimeString(time)
|
|
512
|
+
, adj = time.indexOf('-') === 0 ? -1 : 1;
|
|
513
|
+
off = adj * (((off[1] * 60 + off[2]) * 60 + off[3]) * 1000);
|
|
514
|
+
return off/60/1000;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
//if isUTC is true, date is given in UTC, otherwise it's given
|
|
518
|
+
// in local time (ie. date.getUTC*() returns local time components)
|
|
519
|
+
function getRule(dt, zone, isUTC) {
|
|
520
|
+
var date = typeof dt === 'number' ? new Date(dt) : dt;
|
|
521
|
+
var ruleset = zone[1];
|
|
522
|
+
var basicOffset = zone[0];
|
|
523
|
+
|
|
524
|
+
//Convert a date to UTC. Depending on the 'type' parameter, the date
|
|
525
|
+
// parameter may be:
|
|
526
|
+
//
|
|
527
|
+
// - `u`, `g`, `z`: already UTC (no adjustment).
|
|
528
|
+
//
|
|
529
|
+
// - `s`: standard time (adjust for time zone offset but not for DST)
|
|
530
|
+
//
|
|
531
|
+
// - `w`: wall clock time (adjust for both time zone and DST offset).
|
|
532
|
+
//
|
|
533
|
+
// DST adjustment is done using the rule given as third argument.
|
|
534
|
+
var convertDateToUTC = function (date, type, rule) {
|
|
535
|
+
var offset = 0;
|
|
536
|
+
|
|
537
|
+
if (type === 'u' || type === 'g' || type === 'z') { // UTC
|
|
538
|
+
offset = 0;
|
|
539
|
+
} else if (type === 's') { // Standard Time
|
|
540
|
+
offset = basicOffset;
|
|
541
|
+
} else if (type === 'w' || !type) { // Wall Clock Time
|
|
542
|
+
offset = getAdjustedOffset(basicOffset, rule);
|
|
543
|
+
} else {
|
|
544
|
+
throw("unknown type " + type);
|
|
545
|
+
}
|
|
546
|
+
offset *= 60 * 1000; // to millis
|
|
547
|
+
|
|
548
|
+
return new Date(date.getTime() + offset);
|
|
549
|
+
};
|
|
550
|
+
|
|
551
|
+
//Step 1: Find applicable rules for this year.
|
|
552
|
+
//
|
|
553
|
+
//Step 2: Sort the rules by effective date.
|
|
554
|
+
//
|
|
555
|
+
//Step 3: Check requested date to see if a rule has yet taken effect this year. If not,
|
|
556
|
+
//
|
|
557
|
+
//Step 4: Get the rules for the previous year. If there isn't an applicable rule for last year, then
|
|
558
|
+
// there probably is no current time offset since they seem to explicitly turn off the offset
|
|
559
|
+
// when someone stops observing DST.
|
|
560
|
+
//
|
|
561
|
+
// FIXME if this is not the case and we'll walk all the way back (ugh).
|
|
562
|
+
//
|
|
563
|
+
//Step 5: Sort the rules by effective date.
|
|
564
|
+
//Step 6: Apply the most recent rule before the current time.
|
|
565
|
+
var convertRuleToExactDateAndTime = function (yearAndRule, prevRule) {
|
|
566
|
+
var year = yearAndRule[0]
|
|
567
|
+
, rule = yearAndRule[1];
|
|
568
|
+
// Assume that the rule applies to the year of the given date.
|
|
569
|
+
|
|
570
|
+
var hms = rule[5];
|
|
571
|
+
var effectiveDate;
|
|
572
|
+
|
|
573
|
+
if (!EXACT_DATE_TIME[year])
|
|
574
|
+
EXACT_DATE_TIME[year] = {};
|
|
575
|
+
|
|
576
|
+
// Result for given parameters is already stored
|
|
577
|
+
if (EXACT_DATE_TIME[year][rule])
|
|
578
|
+
effectiveDate = EXACT_DATE_TIME[year][rule];
|
|
579
|
+
else {
|
|
580
|
+
//If we have a specific date, use that!
|
|
581
|
+
if (!isNaN(rule[4])) {
|
|
582
|
+
effectiveDate = new Date(Date.UTC(year, SHORT_MONTHS[rule[3]], rule[4], hms[1], hms[2], hms[3], 0));
|
|
583
|
+
}
|
|
584
|
+
//Let's hunt for the date.
|
|
585
|
+
else {
|
|
586
|
+
var targetDay
|
|
587
|
+
, operator;
|
|
588
|
+
//Example: `lastThu`
|
|
589
|
+
if (rule[4].substr(0, 4) === "last") {
|
|
590
|
+
// Start at the last day of the month and work backward.
|
|
591
|
+
effectiveDate = new Date(Date.UTC(year, SHORT_MONTHS[rule[3]] + 1, 1, hms[1] - 24, hms[2], hms[3], 0));
|
|
592
|
+
targetDay = SHORT_DAYS[rule[4].substr(4, 3)];
|
|
593
|
+
operator = "<=";
|
|
594
|
+
}
|
|
595
|
+
//Example: `Sun>=15`
|
|
596
|
+
else {
|
|
597
|
+
//Start at the specified date.
|
|
598
|
+
effectiveDate = new Date(Date.UTC(year, SHORT_MONTHS[rule[3]], rule[4].substr(5), hms[1], hms[2], hms[3], 0));
|
|
599
|
+
targetDay = SHORT_DAYS[rule[4].substr(0, 3)];
|
|
600
|
+
operator = rule[4].substr(3, 2);
|
|
601
|
+
}
|
|
602
|
+
var ourDay = effectiveDate.getUTCDay();
|
|
603
|
+
//Go forwards.
|
|
604
|
+
if (operator === ">=") {
|
|
605
|
+
effectiveDate.setUTCDate(effectiveDate.getUTCDate() + (targetDay - ourDay + ((targetDay < ourDay) ? 7 : 0)));
|
|
606
|
+
}
|
|
607
|
+
//Go backwards. Looking for the last of a certain day, or operator is "<=" (less likely).
|
|
608
|
+
else {
|
|
609
|
+
effectiveDate.setUTCDate(effectiveDate.getUTCDate() + (targetDay - ourDay - ((targetDay > ourDay) ? 7 : 0)));
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
EXACT_DATE_TIME[year][rule] = effectiveDate;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
|
|
616
|
+
//If previous rule is given, correct for the fact that the starting time of the current
|
|
617
|
+
// rule may be specified in local time.
|
|
618
|
+
if (prevRule) {
|
|
619
|
+
effectiveDate = convertDateToUTC(effectiveDate, hms[4], prevRule);
|
|
620
|
+
}
|
|
621
|
+
return effectiveDate;
|
|
622
|
+
};
|
|
623
|
+
|
|
624
|
+
var findApplicableRules = function (year, ruleset) {
|
|
625
|
+
var applicableRules = [];
|
|
626
|
+
for (var i = 0; ruleset && i < ruleset.length; i++) {
|
|
627
|
+
//Exclude future rules.
|
|
628
|
+
if (ruleset[i][0] <= year &&
|
|
629
|
+
(
|
|
630
|
+
// Date is in a set range.
|
|
631
|
+
ruleset[i][1] >= year ||
|
|
632
|
+
// Date is in an "only" year.
|
|
633
|
+
(ruleset[i][0] === year && ruleset[i][1] === "only") ||
|
|
634
|
+
//We're in a range from the start year to infinity.
|
|
635
|
+
ruleset[i][1] === "max"
|
|
636
|
+
)
|
|
637
|
+
) {
|
|
638
|
+
//It's completely okay to have any number of matches here.
|
|
639
|
+
// Normally we should only see two, but that doesn't preclude other numbers of matches.
|
|
640
|
+
// These matches are applicable to this year.
|
|
641
|
+
applicableRules.push([year, ruleset[i]]);
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
return applicableRules;
|
|
645
|
+
};
|
|
646
|
+
|
|
647
|
+
var compareDates = function (a, b, prev) {
|
|
648
|
+
var year, rule;
|
|
649
|
+
if (a.constructor !== Date) {
|
|
650
|
+
year = a[0];
|
|
651
|
+
rule = a[1];
|
|
652
|
+
a = (!prev && EXACT_DATE_TIME[year] && EXACT_DATE_TIME[year][rule])
|
|
653
|
+
? EXACT_DATE_TIME[year][rule]
|
|
654
|
+
: convertRuleToExactDateAndTime(a, prev);
|
|
655
|
+
} else if (prev) {
|
|
656
|
+
a = convertDateToUTC(a, isUTC ? 'u' : 'w', prev);
|
|
657
|
+
}
|
|
658
|
+
if (b.constructor !== Date) {
|
|
659
|
+
year = b[0];
|
|
660
|
+
rule = b[1];
|
|
661
|
+
b = (!prev && EXACT_DATE_TIME[year] && EXACT_DATE_TIME[year][rule]) ? EXACT_DATE_TIME[year][rule]
|
|
662
|
+
: convertRuleToExactDateAndTime(b, prev);
|
|
663
|
+
} else if (prev) {
|
|
664
|
+
b = convertDateToUTC(b, isUTC ? 'u' : 'w', prev);
|
|
665
|
+
}
|
|
666
|
+
a = Number(a);
|
|
667
|
+
b = Number(b);
|
|
668
|
+
return a - b;
|
|
669
|
+
};
|
|
670
|
+
|
|
671
|
+
var year = date.getUTCFullYear();
|
|
672
|
+
var applicableRules;
|
|
673
|
+
|
|
674
|
+
applicableRules = findApplicableRules(year, _this.rules[ruleset]);
|
|
675
|
+
applicableRules.push(date);
|
|
676
|
+
//While sorting, the time zone in which the rule starting time is specified
|
|
677
|
+
// is ignored. This is ok as long as the timespan between two DST changes is
|
|
678
|
+
// larger than the DST offset, which is probably always true.
|
|
679
|
+
// As the given date may indeed be close to a DST change, it may get sorted
|
|
680
|
+
// to a wrong position (off by one), which is corrected below.
|
|
681
|
+
applicableRules.sort(compareDates);
|
|
682
|
+
|
|
683
|
+
//If there are not enough past DST rules...
|
|
684
|
+
if (applicableRules.indexOf(date) < 2) {
|
|
685
|
+
applicableRules = applicableRules.concat(findApplicableRules(year-1, _this.rules[ruleset]));
|
|
686
|
+
applicableRules.sort(compareDates);
|
|
687
|
+
}
|
|
688
|
+
var pinpoint = applicableRules.indexOf(date);
|
|
689
|
+
if (pinpoint > 1 && compareDates(date, applicableRules[pinpoint-1], applicableRules[pinpoint-2][1]) < 0) {
|
|
690
|
+
//The previous rule does not really apply, take the one before that.
|
|
691
|
+
return applicableRules[pinpoint - 2][1];
|
|
692
|
+
} else if (pinpoint > 0 && pinpoint < applicableRules.length - 1 && compareDates(date, applicableRules[pinpoint+1], applicableRules[pinpoint-1][1]) > 0) {
|
|
693
|
+
|
|
694
|
+
//The next rule does already apply, take that one.
|
|
695
|
+
return applicableRules[pinpoint + 1][1];
|
|
696
|
+
} else if (pinpoint === 0) {
|
|
697
|
+
//No applicable rule found in this and in previous year.
|
|
698
|
+
return null;
|
|
699
|
+
}
|
|
700
|
+
return applicableRules[pinpoint - 1][1];
|
|
701
|
+
}
|
|
702
|
+
function getAdjustedOffset(off, rule) {
|
|
703
|
+
return -Math.ceil(rule[6] - off);
|
|
704
|
+
}
|
|
705
|
+
function getAbbreviation(zone, rule) {
|
|
706
|
+
var res;
|
|
707
|
+
var base = zone[2];
|
|
708
|
+
if (base.indexOf('%s') > -1) {
|
|
709
|
+
var repl;
|
|
710
|
+
if (rule) {
|
|
711
|
+
repl = rule[7] === '-' ? '' : rule[7];
|
|
712
|
+
}
|
|
713
|
+
//FIXME: Right now just falling back to Standard --
|
|
714
|
+
// apparently ought to use the last valid rule,
|
|
715
|
+
// although in practice that always ought to be Standard
|
|
716
|
+
else {
|
|
717
|
+
repl = 'S';
|
|
718
|
+
}
|
|
719
|
+
res = base.replace('%s', repl);
|
|
720
|
+
}
|
|
721
|
+
else if (base.indexOf('/') > -1) {
|
|
722
|
+
//Chose one of two alternative strings.
|
|
723
|
+
res = base.split("/", 2)[rule[6] ? 1 : 0];
|
|
724
|
+
} else {
|
|
725
|
+
res = base;
|
|
726
|
+
}
|
|
727
|
+
return res;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
this.zoneFileBasePath;
|
|
731
|
+
this.zoneFiles = ['africa', 'antarctica', 'asia', 'australasia', 'backward', 'etcetera', 'europe', 'northamerica', 'pacificnew', 'southamerica'];
|
|
732
|
+
this.loadingSchemes = {
|
|
733
|
+
PRELOAD_ALL: 'preloadAll',
|
|
734
|
+
LAZY_LOAD: 'lazyLoad',
|
|
735
|
+
MANUAL_LOAD: 'manualLoad'
|
|
736
|
+
};
|
|
737
|
+
this.loadingScheme = this.loadingSchemes.LAZY_LOAD;
|
|
738
|
+
this.loadedZones = {};
|
|
739
|
+
this.zones = {};
|
|
740
|
+
this.rules = {};
|
|
741
|
+
|
|
742
|
+
this.init = function (o) {
|
|
743
|
+
var opts = { async: true }
|
|
744
|
+
, def = this.defaultZoneFile = this.loadingScheme === this.loadingSchemes.PRELOAD_ALL
|
|
745
|
+
? this.zoneFiles
|
|
746
|
+
: 'northamerica'
|
|
747
|
+
, done = 0
|
|
748
|
+
, callbackFn;
|
|
749
|
+
//Override default with any passed-in opts
|
|
750
|
+
for (var p in o) {
|
|
751
|
+
opts[p] = o[p];
|
|
752
|
+
}
|
|
753
|
+
if (typeof def === 'string') {
|
|
754
|
+
return this.loadZoneFile(def, opts);
|
|
755
|
+
}
|
|
756
|
+
//Wraps callback function in another one that makes
|
|
757
|
+
// sure all files have been loaded.
|
|
758
|
+
callbackFn = opts.callback;
|
|
759
|
+
opts.callback = function () {
|
|
760
|
+
done++;
|
|
761
|
+
(done === def.length) && typeof callbackFn === 'function' && callbackFn();
|
|
762
|
+
};
|
|
763
|
+
for (var i = 0; i < def.length; i++) {
|
|
764
|
+
this.loadZoneFile(def[i], opts);
|
|
765
|
+
}
|
|
766
|
+
};
|
|
767
|
+
|
|
768
|
+
//Get the zone files via XHR -- if the sync flag
|
|
769
|
+
// is set to true, it's being called by the lazy-loading
|
|
770
|
+
// mechanism, so the result needs to be returned inline.
|
|
771
|
+
this.loadZoneFile = function (fileName, opts) {
|
|
772
|
+
if (typeof this.zoneFileBasePath === 'undefined') {
|
|
773
|
+
throw new Error('Please define a base path to your zone file directory -- timezoneJS.timezone.zoneFileBasePath.');
|
|
774
|
+
}
|
|
775
|
+
//Ignore already loaded zones.
|
|
776
|
+
if (this.loadedZones[fileName]) {
|
|
777
|
+
return;
|
|
778
|
+
}
|
|
779
|
+
this.loadedZones[fileName] = true;
|
|
780
|
+
return builtInLoadZoneFile(fileName, opts);
|
|
781
|
+
};
|
|
782
|
+
this.loadZoneJSONData = function (url, sync) {
|
|
783
|
+
var processData = function (data) {
|
|
784
|
+
data = eval('('+ data +')');
|
|
785
|
+
for (var z in data.zones) {
|
|
786
|
+
_this.zones[z] = data.zones[z];
|
|
787
|
+
}
|
|
788
|
+
for (var r in data.rules) {
|
|
789
|
+
_this.rules[r] = data.rules[r];
|
|
790
|
+
}
|
|
791
|
+
};
|
|
792
|
+
return sync
|
|
793
|
+
? processData(_this.transport({ url : url, async : false }))
|
|
794
|
+
: _this.transport({ url : url, success : processData });
|
|
795
|
+
};
|
|
796
|
+
this.loadZoneDataFromObject = function (data) {
|
|
797
|
+
if (!data) { return; }
|
|
798
|
+
for (var z in data.zones) {
|
|
799
|
+
_this.zones[z] = data.zones[z];
|
|
800
|
+
}
|
|
801
|
+
for (var r in data.rules) {
|
|
802
|
+
_this.rules[r] = data.rules[r];
|
|
803
|
+
}
|
|
804
|
+
};
|
|
805
|
+
this.getAllZones = function () {
|
|
806
|
+
var arr = [];
|
|
807
|
+
for (var z in this.zones) { arr.push(z); }
|
|
808
|
+
return arr.sort();
|
|
809
|
+
};
|
|
810
|
+
this.parseZones = function (str) {
|
|
811
|
+
var lines = str.split('\n')
|
|
812
|
+
, arr = []
|
|
813
|
+
, chunk = ''
|
|
814
|
+
, l
|
|
815
|
+
, zone = null
|
|
816
|
+
, rule = null;
|
|
817
|
+
for (var i = 0; i < lines.length; i++) {
|
|
818
|
+
l = lines[i];
|
|
819
|
+
if (l.match(/^\s/)) {
|
|
820
|
+
l = "Zone " + zone + l;
|
|
821
|
+
}
|
|
822
|
+
l = l.split("#")[0];
|
|
823
|
+
if (l.length > 3) {
|
|
824
|
+
arr = l.split(/\s+/);
|
|
825
|
+
chunk = arr.shift();
|
|
826
|
+
//Ignore Leap.
|
|
827
|
+
switch (chunk) {
|
|
828
|
+
case 'Zone':
|
|
829
|
+
zone = arr.shift();
|
|
830
|
+
if (!_this.zones[zone]) {
|
|
831
|
+
_this.zones[zone] = [];
|
|
832
|
+
}
|
|
833
|
+
if (arr.length < 3) break;
|
|
834
|
+
//Process zone right here and replace 3rd element with the processed array.
|
|
835
|
+
arr.splice(3, arr.length, processZone(arr));
|
|
836
|
+
if (arr[3]) arr[3] = Date.UTC.apply(null, arr[3]);
|
|
837
|
+
arr[0] = -getBasicOffset(arr[0]);
|
|
838
|
+
_this.zones[zone].push(arr);
|
|
839
|
+
break;
|
|
840
|
+
case 'Rule':
|
|
841
|
+
rule = arr.shift();
|
|
842
|
+
if (!_this.rules[rule]) {
|
|
843
|
+
_this.rules[rule] = [];
|
|
844
|
+
}
|
|
845
|
+
//Parse int FROM year and TO year
|
|
846
|
+
arr[0] = parseInt(arr[0], 10);
|
|
847
|
+
arr[1] = parseInt(arr[1], 10) || arr[1];
|
|
848
|
+
//Parse time string AT
|
|
849
|
+
arr[5] = parseTimeString(arr[5]);
|
|
850
|
+
//Parse offset SAVE
|
|
851
|
+
arr[6] = getBasicOffset(arr[6]);
|
|
852
|
+
_this.rules[rule].push(arr);
|
|
853
|
+
break;
|
|
854
|
+
case 'Link':
|
|
855
|
+
//No zones for these should already exist.
|
|
856
|
+
if (_this.zones[arr[1]]) {
|
|
857
|
+
throw new Error('Error with Link ' + arr[1] + '. Cannot create link of a preexisted zone.');
|
|
858
|
+
}
|
|
859
|
+
//Create the link.
|
|
860
|
+
_this.zones[arr[1]] = arr[0];
|
|
861
|
+
break;
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
return true;
|
|
866
|
+
};
|
|
867
|
+
//Expose transport mechanism and allow overwrite.
|
|
868
|
+
this.transport = _transport;
|
|
869
|
+
this.getTzInfo = function (dt, tz, isUTC) {
|
|
870
|
+
//Lazy-load any zones not yet loaded.
|
|
871
|
+
if (this.loadingScheme === this.loadingSchemes.LAZY_LOAD) {
|
|
872
|
+
//Get the correct region for the zone.
|
|
873
|
+
var zoneFile = getRegionForTimezone(tz);
|
|
874
|
+
if (!zoneFile) {
|
|
875
|
+
throw new Error('Not a valid timezone ID.');
|
|
876
|
+
}
|
|
877
|
+
if (!this.loadedZones[zoneFile]) {
|
|
878
|
+
//Get the file and parse it -- use synchronous XHR.
|
|
879
|
+
this.loadZoneFile(zoneFile);
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
var z = getZone(dt, tz);
|
|
883
|
+
var off = z[0];
|
|
884
|
+
//See if the offset needs adjustment.
|
|
885
|
+
var rule = getRule(dt, z, isUTC);
|
|
886
|
+
if (rule) {
|
|
887
|
+
off = getAdjustedOffset(off, rule);
|
|
888
|
+
}
|
|
889
|
+
var abbr = getAbbreviation(z, rule);
|
|
890
|
+
return { tzOffset: off, tzAbbr: abbr };
|
|
891
|
+
};
|
|
892
|
+
};
|
|
893
|
+
}).call(this);
|